extern "C" eIcicleError ${FIELD}_extension_vector_mul(
  const ${FIELD}::extension_t* vec_a, const ${FIELD}::extension_t* vec_b, uint64_t n, const VecOpsConfig& config, ${FIELD}::extension_t* result);

extern "C" eIcicleError ${FIELD}extension_vector_add(
  const ${FIELD}::extension_t* vec_a, const ${FIELD}::extension_t* vec_b, uint64_t n, const VecOpsConfig& config, ${FIELD}::extension_t* result);

extern "C" eIcicleError ${FIELD}_extension_vector_sub(
  const ${FIELD}::extension_t* vec_a, const ${FIELD}::extension_t* vec_b, uint64_t n, const VecOpsConfig& config, ${FIELD}::extension_t* result);

extern "C" eIcicleError ${FIELD}_extension_transpose_matrix(
  const ${FIELD}::extension_t* input,
  uint32_t nof_rows,
  uint32_t nof_cols,
  const VecOpsConfig& config,
  ${FIELD}::extension_t* output);

extern "C" eIcicleError ${FIELD}_extension_bit_reverse(
  const ${FIELD}::extension_t* input, uint64_t n, const VecOpsConfig& config, ${FIELD}::extension_t* output);
