From 5f027696e57514cd363d34ffd72af517e245d5ad Mon Sep 17 00:00:00 2001 From: nonam3e Date: Thu, 29 Aug 2024 09:20:08 +0000 Subject: [PATCH] fix api --- icicle/include/icicle/api/babybear.h | 80 ++++-------- icicle/include/icicle/api/bls12_377.h | 118 ++++++------------ icicle/include/icicle/api/bls12_381.h | 118 ++++++------------ icicle/include/icicle/api/bn254.h | 107 +++++++--------- icicle/include/icicle/api/bw6_761.h | 111 +++++++--------- icicle/include/icicle/api/grumpkin.h | 49 +++----- icicle/include/icicle/api/stark252.h | 43 +++---- .../api/templates/fields/vec_ops.template | 4 +- .../api/templates/fields/vec_ops_ext.template | 4 +- 9 files changed, 226 insertions(+), 408 deletions(-) diff --git a/icicle/include/icicle/api/babybear.h b/icicle/include/icicle/api/babybear.h index 1e83d9892..5b6d6095e 100644 --- a/icicle/include/icicle/api/babybear.h +++ b/icicle/include/icicle/api/babybear.h @@ -9,48 +9,29 @@ #include "icicle/ntt.h" #include "icicle/vec_ops.h" -extern "C" void babybear_extension_generate_scalars(babybear::extension_t* scalars, int size); +extern "C" void babybear_generate_scalars(babybear::scalar_t* scalars, int size); -extern "C" eIcicleError babybear_extension_scalar_convert_montgomery( - const babybear::extension_t* input, - uint64_t size, - bool is_into, - const VecOpsConfig& config, - babybear::extension_t* output); +extern "C" void babybear_scalar_convert_montgomery( + const babybear::scalar_t* input, uint64_t size, bool is_into, const VecOpsConfig& config, babybear::scalar_t* output); -extern "C" eIcicleError babybear_ntt_init_domain(babybear::scalar_t* primitive_root, const NTTInitDomainConfig& config); +extern "C" eIcicleError babybear_ntt_init_domain( + babybear::scalar_t* primitive_root, const NTTInitDomainConfig& config); extern "C" eIcicleError babybear_ntt( - const babybear::scalar_t* input, - int size, - NTTDir dir, - const NTTConfig& config, - babybear::scalar_t* output); + const babybear::scalar_t* input, int size, NTTDir dir, const NTTConfig& config, babybear::scalar_t* output); extern "C" eIcicleError babybear_ntt_release_domain(); extern "C" eIcicleError babybear_extension_vector_mul( - const babybear::extension_t* vec_a, - const babybear::extension_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - babybear::extension_t* result); + const babybear::extension_t* vec_a, const babybear::extension_t* vec_b, uint64_t n, const VecOpsConfig& config, babybear::extension_t* result); -extern "C" eIcicleError babybearextension_vector_add( - const babybear::extension_t* vec_a, - const babybear::extension_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - babybear::extension_t* result); +extern "C" eIcicleError babybear_extension_vector_add( + const babybear::extension_t* vec_a, const babybear::extension_t* vec_b, uint64_t n, const VecOpsConfig& config, babybear::extension_t* result); extern "C" eIcicleError babybear_extension_vector_sub( - const babybear::extension_t* vec_a, - const babybear::extension_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - babybear::extension_t* result); + const babybear::extension_t* vec_a, const babybear::extension_t* vec_b, uint64_t n, const VecOpsConfig& config, babybear::extension_t* result); -extern "C" eIcicleError babybear_extension_transpose_matrix( +extern "C" eIcicleError babybear_extension_matrix_transpose( const babybear::extension_t* input, uint32_t nof_rows, uint32_t nof_cols, @@ -60,40 +41,22 @@ extern "C" eIcicleError babybear_extension_transpose_matrix( extern "C" eIcicleError babybear_extension_bit_reverse( const babybear::extension_t* input, uint64_t n, const VecOpsConfig& config, babybear::extension_t* output); -extern "C" eIcicleError babybear_extension_ntt( - const babybear::extension_t* input, - int size, - NTTDir dir, - const NTTConfig& config, - babybear::extension_t* output); -extern "C" void babybear_generate_scalars(babybear::scalar_t* scalars, int size); +extern "C" void babybear_extension_generate_scalars(babybear::extension_t* scalars, int size); -extern "C" void babybear_scalar_convert_montgomery( - const babybear::scalar_t* input, uint64_t size, bool is_into, const VecOpsConfig& config, babybear::scalar_t* output); +extern "C" eIcicleError babybear_extension_scalar_convert_montgomery( + const babybear::extension_t* input, uint64_t size, bool is_into, const VecOpsConfig& config, babybear::extension_t* output); extern "C" eIcicleError babybear_vector_mul( - const babybear::scalar_t* vec_a, - const babybear::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - babybear::scalar_t* result); + const babybear::scalar_t* vec_a, const babybear::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, babybear::scalar_t* result); -extern "C" eIcicleError babybearvector_add( - const babybear::scalar_t* vec_a, - const babybear::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - babybear::scalar_t* result); +extern "C" eIcicleError babybear_vector_add( + const babybear::scalar_t* vec_a, const babybear::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, babybear::scalar_t* result); extern "C" eIcicleError babybear_vector_sub( - const babybear::scalar_t* vec_a, - const babybear::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - babybear::scalar_t* result); + const babybear::scalar_t* vec_a, const babybear::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, babybear::scalar_t* result); -extern "C" eIcicleError babybear_transpose_matrix( +extern "C" eIcicleError babybear_matrix_transpose( const babybear::scalar_t* input, uint32_t nof_rows, uint32_t nof_cols, @@ -102,3 +65,8 @@ extern "C" eIcicleError babybear_transpose_matrix( extern "C" eIcicleError babybear_bit_reverse( const babybear::scalar_t* input, uint64_t n, const VecOpsConfig& config, babybear::scalar_t* output); + + +extern "C" eIcicleError babybear_extension_ntt( + const babybear::extension_t* input, int size, NTTDir dir, const NTTConfig& config, babybear::extension_t* output); + diff --git a/icicle/include/icicle/api/bls12_377.h b/icicle/include/icicle/api/bls12_377.h index b3298ec11..f372a22a9 100644 --- a/icicle/include/icicle/api/bls12_377.h +++ b/icicle/include/icicle/api/bls12_377.h @@ -10,37 +10,23 @@ #include "icicle/msm.h" #include "icicle/vec_ops.h" -extern "C" eIcicleError bls12_377_g2_precompute_msm_bases( - const bls12_377::g2_affine_t* bases, int nof_bases, const MSMConfig& config, bls12_377::g2_affine_t* output_bases); - -extern "C" eIcicleError bls12_377_g2_msm( - const bls12_377::scalar_t* scalars, - const bls12_377::g2_affine_t* points, - int msm_size, +extern "C" eIcicleError bls12_377_precompute_msm_bases( + const bls12_377::affine_t* bases, + int nof_bases, const MSMConfig& config, - bls12_377::g2_projective_t* out); + bls12_377::affine_t* output_bases); -extern "C" bool bls12_377_g2_eq(bls12_377::g2_projective_t* point1, bls12_377::g2_projective_t* point2); - -extern "C" void bls12_377_g2_to_affine(bls12_377::g2_projective_t* point, bls12_377::g2_affine_t* point_out); - -extern "C" void bls12_377_g2_generate_projective_points(bls12_377::g2_projective_t* points, int size); - -extern "C" void bls12_377_g2_generate_affine_points(bls12_377::g2_affine_t* points, int size); +extern "C" eIcicleError bls12_377_msm( + const bls12_377::scalar_t* scalars, const bls12_377::affine_t* points, int msm_size, const MSMConfig& config, bls12_377::projective_t* out); -extern "C" eIcicleError bls12_377_g2_affine_convert_montgomery( - const bls12_377::g2_affine_t* input, - size_t n, - bool is_into, - const VecOpsConfig& config, - bls12_377::g2_affine_t* output); +extern "C" eIcicleError bls12_377_g2_precompute_msm_bases( + const bls12_377::g2_affine_t* bases, + int nof_bases, + const MSMConfig& config, + bls12_377::g2_affine_t* output_bases); -extern "C" eIcicleError bls12_377_g2_projective_convert_montgomery( - const bls12_377::g2_projective_t* input, - size_t n, - bool is_into, - const VecOpsConfig& config, - bls12_377::g2_projective_t* output); +extern "C" eIcicleError bls12_377_g2_msm( + const bls12_377::scalar_t* scalars, const bls12_377::g2_affine_t* points, int msm_size, const MSMConfig& config, bls12_377::g2_projective_t* out); extern "C" bool bls12_377_eq(bls12_377::projective_t* point1, bls12_377::projective_t* point2); @@ -54,72 +40,48 @@ extern "C" eIcicleError bls12_377_affine_convert_montgomery( const bls12_377::affine_t* input, size_t n, bool is_into, const VecOpsConfig& config, bls12_377::affine_t* output); extern "C" eIcicleError bls12_377_projective_convert_montgomery( - const bls12_377::projective_t* input, - size_t n, - bool is_into, - const VecOpsConfig& config, - bls12_377::projective_t* output); + const bls12_377::projective_t* input, size_t n, bool is_into, const VecOpsConfig& config, bls12_377::projective_t* output); -extern "C" eIcicleError bls12_377_precompute_msm_bases( - const bls12_377::affine_t* bases, int nof_bases, const MSMConfig& config, bls12_377::affine_t* output_bases); +extern "C" bool bls12_377_g2_eq(bls12_377::g2_projective_t* point1, bls12_377::g2_projective_t* point2); -extern "C" eIcicleError bls12_377_msm( - const bls12_377::scalar_t* scalars, - const bls12_377::affine_t* points, - int msm_size, - const MSMConfig& config, - bls12_377::projective_t* out); +extern "C" void bls12_377_g2_to_affine(bls12_377::g2_projective_t* point, bls12_377::g2_affine_t* point_out); -extern "C" eIcicleError bls12_377_ecntt( - const bls12_377::projective_t* input, - int size, - NTTDir dir, - const NTTConfig& config, - bls12_377::projective_t* output); +extern "C" void bls12_377_g2_generate_projective_points(bls12_377::g2_projective_t* points, int size); -extern "C" eIcicleError -bls12_377_ntt_init_domain(bls12_377::scalar_t* primitive_root, const NTTInitDomainConfig& config); +extern "C" void bls12_377_g2_generate_affine_points(bls12_377::g2_affine_t* points, int size); -extern "C" eIcicleError bls12_377_ntt( - const bls12_377::scalar_t* input, - int size, - NTTDir dir, - const NTTConfig& config, - bls12_377::scalar_t* output); +extern "C" eIcicleError bls12_377_g2_affine_convert_montgomery( + const bls12_377::g2_affine_t* input, size_t n, bool is_into, const VecOpsConfig& config, bls12_377::g2_affine_t* output); -extern "C" eIcicleError bls12_377_ntt_release_domain(); +extern "C" eIcicleError bls12_377_g2_projective_convert_montgomery( + const bls12_377::g2_projective_t* input, size_t n, bool is_into, const VecOpsConfig& config, bls12_377::g2_projective_t* output); + +extern "C" eIcicleError bls12_377_ecntt( + const bls12_377::projective_t* input, int size, NTTDir dir, const NTTConfig& config, bls12_377::projective_t* output); extern "C" void bls12_377_generate_scalars(bls12_377::scalar_t* scalars, int size); extern "C" void bls12_377_scalar_convert_montgomery( - const bls12_377::scalar_t* input, - uint64_t size, - bool is_into, - const VecOpsConfig& config, - bls12_377::scalar_t* output); + const bls12_377::scalar_t* input, uint64_t size, bool is_into, const VecOpsConfig& config, bls12_377::scalar_t* output); + +extern "C" eIcicleError bls12_377_ntt_init_domain( + bls12_377::scalar_t* primitive_root, const NTTInitDomainConfig& config); + +extern "C" eIcicleError bls12_377_ntt( + const bls12_377::scalar_t* input, int size, NTTDir dir, const NTTConfig& config, bls12_377::scalar_t* output); + +extern "C" eIcicleError bls12_377_ntt_release_domain(); extern "C" eIcicleError bls12_377_vector_mul( - const bls12_377::scalar_t* vec_a, - const bls12_377::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - bls12_377::scalar_t* result); + const bls12_377::scalar_t* vec_a, const bls12_377::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, bls12_377::scalar_t* result); -extern "C" eIcicleError bls12_377vector_add( - const bls12_377::scalar_t* vec_a, - const bls12_377::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - bls12_377::scalar_t* result); +extern "C" eIcicleError bls12_377_vector_add( + const bls12_377::scalar_t* vec_a, const bls12_377::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, bls12_377::scalar_t* result); extern "C" eIcicleError bls12_377_vector_sub( - const bls12_377::scalar_t* vec_a, - const bls12_377::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - bls12_377::scalar_t* result); + const bls12_377::scalar_t* vec_a, const bls12_377::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, bls12_377::scalar_t* result); -extern "C" eIcicleError bls12_377_transpose_matrix( +extern "C" eIcicleError bls12_377_matrix_transpose( const bls12_377::scalar_t* input, uint32_t nof_rows, uint32_t nof_cols, @@ -128,3 +90,5 @@ extern "C" eIcicleError bls12_377_transpose_matrix( extern "C" eIcicleError bls12_377_bit_reverse( const bls12_377::scalar_t* input, uint64_t n, const VecOpsConfig& config, bls12_377::scalar_t* output); + + diff --git a/icicle/include/icicle/api/bls12_381.h b/icicle/include/icicle/api/bls12_381.h index 1c3b93241..99095931d 100644 --- a/icicle/include/icicle/api/bls12_381.h +++ b/icicle/include/icicle/api/bls12_381.h @@ -10,37 +10,23 @@ #include "icicle/msm.h" #include "icicle/vec_ops.h" -extern "C" eIcicleError bls12_381_g2_precompute_msm_bases( - const bls12_381::g2_affine_t* bases, int nof_bases, const MSMConfig& config, bls12_381::g2_affine_t* output_bases); - -extern "C" eIcicleError bls12_381_g2_msm( - const bls12_381::scalar_t* scalars, - const bls12_381::g2_affine_t* points, - int msm_size, +extern "C" eIcicleError bls12_381_precompute_msm_bases( + const bls12_381::affine_t* bases, + int nof_bases, const MSMConfig& config, - bls12_381::g2_projective_t* out); + bls12_381::affine_t* output_bases); -extern "C" bool bls12_381_g2_eq(bls12_381::g2_projective_t* point1, bls12_381::g2_projective_t* point2); - -extern "C" void bls12_381_g2_to_affine(bls12_381::g2_projective_t* point, bls12_381::g2_affine_t* point_out); - -extern "C" void bls12_381_g2_generate_projective_points(bls12_381::g2_projective_t* points, int size); - -extern "C" void bls12_381_g2_generate_affine_points(bls12_381::g2_affine_t* points, int size); +extern "C" eIcicleError bls12_381_msm( + const bls12_381::scalar_t* scalars, const bls12_381::affine_t* points, int msm_size, const MSMConfig& config, bls12_381::projective_t* out); -extern "C" eIcicleError bls12_381_g2_affine_convert_montgomery( - const bls12_381::g2_affine_t* input, - size_t n, - bool is_into, - const VecOpsConfig& config, - bls12_381::g2_affine_t* output); +extern "C" eIcicleError bls12_381_g2_precompute_msm_bases( + const bls12_381::g2_affine_t* bases, + int nof_bases, + const MSMConfig& config, + bls12_381::g2_affine_t* output_bases); -extern "C" eIcicleError bls12_381_g2_projective_convert_montgomery( - const bls12_381::g2_projective_t* input, - size_t n, - bool is_into, - const VecOpsConfig& config, - bls12_381::g2_projective_t* output); +extern "C" eIcicleError bls12_381_g2_msm( + const bls12_381::scalar_t* scalars, const bls12_381::g2_affine_t* points, int msm_size, const MSMConfig& config, bls12_381::g2_projective_t* out); extern "C" bool bls12_381_eq(bls12_381::projective_t* point1, bls12_381::projective_t* point2); @@ -54,72 +40,48 @@ extern "C" eIcicleError bls12_381_affine_convert_montgomery( const bls12_381::affine_t* input, size_t n, bool is_into, const VecOpsConfig& config, bls12_381::affine_t* output); extern "C" eIcicleError bls12_381_projective_convert_montgomery( - const bls12_381::projective_t* input, - size_t n, - bool is_into, - const VecOpsConfig& config, - bls12_381::projective_t* output); + const bls12_381::projective_t* input, size_t n, bool is_into, const VecOpsConfig& config, bls12_381::projective_t* output); -extern "C" eIcicleError bls12_381_precompute_msm_bases( - const bls12_381::affine_t* bases, int nof_bases, const MSMConfig& config, bls12_381::affine_t* output_bases); +extern "C" bool bls12_381_g2_eq(bls12_381::g2_projective_t* point1, bls12_381::g2_projective_t* point2); -extern "C" eIcicleError bls12_381_msm( - const bls12_381::scalar_t* scalars, - const bls12_381::affine_t* points, - int msm_size, - const MSMConfig& config, - bls12_381::projective_t* out); +extern "C" void bls12_381_g2_to_affine(bls12_381::g2_projective_t* point, bls12_381::g2_affine_t* point_out); -extern "C" eIcicleError bls12_381_ecntt( - const bls12_381::projective_t* input, - int size, - NTTDir dir, - const NTTConfig& config, - bls12_381::projective_t* output); +extern "C" void bls12_381_g2_generate_projective_points(bls12_381::g2_projective_t* points, int size); -extern "C" eIcicleError -bls12_381_ntt_init_domain(bls12_381::scalar_t* primitive_root, const NTTInitDomainConfig& config); +extern "C" void bls12_381_g2_generate_affine_points(bls12_381::g2_affine_t* points, int size); -extern "C" eIcicleError bls12_381_ntt( - const bls12_381::scalar_t* input, - int size, - NTTDir dir, - const NTTConfig& config, - bls12_381::scalar_t* output); +extern "C" eIcicleError bls12_381_g2_affine_convert_montgomery( + const bls12_381::g2_affine_t* input, size_t n, bool is_into, const VecOpsConfig& config, bls12_381::g2_affine_t* output); -extern "C" eIcicleError bls12_381_ntt_release_domain(); +extern "C" eIcicleError bls12_381_g2_projective_convert_montgomery( + const bls12_381::g2_projective_t* input, size_t n, bool is_into, const VecOpsConfig& config, bls12_381::g2_projective_t* output); + +extern "C" eIcicleError bls12_381_ecntt( + const bls12_381::projective_t* input, int size, NTTDir dir, const NTTConfig& config, bls12_381::projective_t* output); extern "C" void bls12_381_generate_scalars(bls12_381::scalar_t* scalars, int size); extern "C" void bls12_381_scalar_convert_montgomery( - const bls12_381::scalar_t* input, - uint64_t size, - bool is_into, - const VecOpsConfig& config, - bls12_381::scalar_t* output); + const bls12_381::scalar_t* input, uint64_t size, bool is_into, const VecOpsConfig& config, bls12_381::scalar_t* output); + +extern "C" eIcicleError bls12_381_ntt_init_domain( + bls12_381::scalar_t* primitive_root, const NTTInitDomainConfig& config); + +extern "C" eIcicleError bls12_381_ntt( + const bls12_381::scalar_t* input, int size, NTTDir dir, const NTTConfig& config, bls12_381::scalar_t* output); + +extern "C" eIcicleError bls12_381_ntt_release_domain(); extern "C" eIcicleError bls12_381_vector_mul( - const bls12_381::scalar_t* vec_a, - const bls12_381::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - bls12_381::scalar_t* result); + const bls12_381::scalar_t* vec_a, const bls12_381::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, bls12_381::scalar_t* result); -extern "C" eIcicleError bls12_381vector_add( - const bls12_381::scalar_t* vec_a, - const bls12_381::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - bls12_381::scalar_t* result); +extern "C" eIcicleError bls12_381_vector_add( + const bls12_381::scalar_t* vec_a, const bls12_381::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, bls12_381::scalar_t* result); extern "C" eIcicleError bls12_381_vector_sub( - const bls12_381::scalar_t* vec_a, - const bls12_381::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - bls12_381::scalar_t* result); + const bls12_381::scalar_t* vec_a, const bls12_381::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, bls12_381::scalar_t* result); -extern "C" eIcicleError bls12_381_transpose_matrix( +extern "C" eIcicleError bls12_381_matrix_transpose( const bls12_381::scalar_t* input, uint32_t nof_rows, uint32_t nof_cols, @@ -128,3 +90,5 @@ extern "C" eIcicleError bls12_381_transpose_matrix( extern "C" eIcicleError bls12_381_bit_reverse( const bls12_381::scalar_t* input, uint64_t n, const VecOpsConfig& config, bls12_381::scalar_t* output); + + diff --git a/icicle/include/icicle/api/bn254.h b/icicle/include/icicle/api/bn254.h index d81459825..0e01d3dde 100644 --- a/icicle/include/icicle/api/bn254.h +++ b/icicle/include/icicle/api/bn254.h @@ -10,33 +10,23 @@ #include "icicle/msm.h" #include "icicle/vec_ops.h" -extern "C" eIcicleError bn254_g2_precompute_msm_bases( - const bn254::g2_affine_t* bases, int nof_bases, const MSMConfig& config, bn254::g2_affine_t* output_bases); - -extern "C" eIcicleError bn254_g2_msm( - const bn254::scalar_t* scalars, - const bn254::g2_affine_t* points, - int msm_size, +extern "C" eIcicleError bn254_precompute_msm_bases( + const bn254::affine_t* bases, + int nof_bases, const MSMConfig& config, - bn254::g2_projective_t* out); - -extern "C" bool bn254_g2_eq(bn254::g2_projective_t* point1, bn254::g2_projective_t* point2); + bn254::affine_t* output_bases); -extern "C" void bn254_g2_to_affine(bn254::g2_projective_t* point, bn254::g2_affine_t* point_out); - -extern "C" void bn254_g2_generate_projective_points(bn254::g2_projective_t* points, int size); - -extern "C" void bn254_g2_generate_affine_points(bn254::g2_affine_t* points, int size); +extern "C" eIcicleError bn254_msm( + const bn254::scalar_t* scalars, const bn254::affine_t* points, int msm_size, const MSMConfig& config, bn254::projective_t* out); -extern "C" eIcicleError bn254_g2_affine_convert_montgomery( - const bn254::g2_affine_t* input, size_t n, bool is_into, const VecOpsConfig& config, bn254::g2_affine_t* output); +extern "C" eIcicleError bn254_g2_precompute_msm_bases( + const bn254::g2_affine_t* bases, + int nof_bases, + const MSMConfig& config, + bn254::g2_affine_t* output_bases); -extern "C" eIcicleError bn254_g2_projective_convert_montgomery( - const bn254::g2_projective_t* input, - size_t n, - bool is_into, - const VecOpsConfig& config, - bn254::g2_projective_t* output); +extern "C" eIcicleError bn254_g2_msm( + const bn254::scalar_t* scalars, const bn254::g2_affine_t* points, int msm_size, const MSMConfig& config, bn254::g2_projective_t* out); extern "C" bool bn254_eq(bn254::projective_t* point1, bn254::projective_t* point2); @@ -50,68 +40,55 @@ extern "C" eIcicleError bn254_affine_convert_montgomery( const bn254::affine_t* input, size_t n, bool is_into, const VecOpsConfig& config, bn254::affine_t* output); extern "C" eIcicleError bn254_projective_convert_montgomery( - const bn254::projective_t* input, size_t n, bool is_into, const VecOpsConfig& config, bn254::projective_t* output); + const bn254::projective_t* input, size_t n, bool is_into, const VecOpsConfig& config, bn254::projective_t* output); -extern "C" eIcicleError bn254_precompute_msm_bases( - const bn254::affine_t* bases, int nof_bases, const MSMConfig& config, bn254::affine_t* output_bases); +extern "C" bool bn254_g2_eq(bn254::g2_projective_t* point1, bn254::g2_projective_t* point2); -extern "C" eIcicleError bn254_msm( - const bn254::scalar_t* scalars, - const bn254::affine_t* points, - int msm_size, - const MSMConfig& config, - bn254::projective_t* out); +extern "C" void bn254_g2_to_affine(bn254::g2_projective_t* point, bn254::g2_affine_t* point_out); -extern "C" eIcicleError bn254_ecntt( - const bn254::projective_t* input, - int size, - NTTDir dir, - const NTTConfig& config, - bn254::projective_t* output); +extern "C" void bn254_g2_generate_projective_points(bn254::g2_projective_t* points, int size); -extern "C" eIcicleError bn254_ntt_init_domain(bn254::scalar_t* primitive_root, const NTTInitDomainConfig& config); +extern "C" void bn254_g2_generate_affine_points(bn254::g2_affine_t* points, int size); -extern "C" eIcicleError bn254_ntt( - const bn254::scalar_t* input, - int size, - NTTDir dir, - const NTTConfig& config, - bn254::scalar_t* output); +extern "C" eIcicleError bn254_g2_affine_convert_montgomery( + const bn254::g2_affine_t* input, size_t n, bool is_into, const VecOpsConfig& config, bn254::g2_affine_t* output); -extern "C" eIcicleError bn254_ntt_release_domain(); +extern "C" eIcicleError bn254_g2_projective_convert_montgomery( + const bn254::g2_projective_t* input, size_t n, bool is_into, const VecOpsConfig& config, bn254::g2_projective_t* output); + +extern "C" eIcicleError bn254_ecntt( + const bn254::projective_t* input, int size, NTTDir dir, const NTTConfig& config, bn254::projective_t* output); extern "C" void bn254_generate_scalars(bn254::scalar_t* scalars, int size); extern "C" void bn254_scalar_convert_montgomery( const bn254::scalar_t* input, uint64_t size, bool is_into, const VecOpsConfig& config, bn254::scalar_t* output); +extern "C" eIcicleError bn254_ntt_init_domain( + bn254::scalar_t* primitive_root, const NTTInitDomainConfig& config); + +extern "C" eIcicleError bn254_ntt( + const bn254::scalar_t* input, int size, NTTDir dir, const NTTConfig& config, bn254::scalar_t* output); + +extern "C" eIcicleError bn254_ntt_release_domain(); + extern "C" eIcicleError bn254_vector_mul( - const bn254::scalar_t* vec_a, - const bn254::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - bn254::scalar_t* result); + const bn254::scalar_t* vec_a, const bn254::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, bn254::scalar_t* result); -extern "C" eIcicleError bn254vector_add( - const bn254::scalar_t* vec_a, - const bn254::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - bn254::scalar_t* result); +extern "C" eIcicleError bn254_vector_add( + const bn254::scalar_t* vec_a, const bn254::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, bn254::scalar_t* result); extern "C" eIcicleError bn254_vector_sub( - const bn254::scalar_t* vec_a, - const bn254::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - bn254::scalar_t* result); + const bn254::scalar_t* vec_a, const bn254::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, bn254::scalar_t* result); -extern "C" eIcicleError bn254_transpose_matrix( +extern "C" eIcicleError bn254_matrix_transpose( const bn254::scalar_t* input, uint32_t nof_rows, uint32_t nof_cols, const VecOpsConfig& config, bn254::scalar_t* output); -extern "C" eIcicleError -bn254_bit_reverse(const bn254::scalar_t* input, uint64_t n, const VecOpsConfig& config, bn254::scalar_t* output); +extern "C" eIcicleError bn254_bit_reverse( + const bn254::scalar_t* input, uint64_t n, const VecOpsConfig& config, bn254::scalar_t* output); + + diff --git a/icicle/include/icicle/api/bw6_761.h b/icicle/include/icicle/api/bw6_761.h index 67ecc1cdb..3c26260cc 100644 --- a/icicle/include/icicle/api/bw6_761.h +++ b/icicle/include/icicle/api/bw6_761.h @@ -10,33 +10,23 @@ #include "icicle/msm.h" #include "icicle/vec_ops.h" -extern "C" eIcicleError bw6_761_g2_precompute_msm_bases( - const bw6_761::g2_affine_t* bases, int nof_bases, const MSMConfig& config, bw6_761::g2_affine_t* output_bases); - -extern "C" eIcicleError bw6_761_g2_msm( - const bw6_761::scalar_t* scalars, - const bw6_761::g2_affine_t* points, - int msm_size, +extern "C" eIcicleError bw6_761_precompute_msm_bases( + const bw6_761::affine_t* bases, + int nof_bases, const MSMConfig& config, - bw6_761::g2_projective_t* out); - -extern "C" bool bw6_761_g2_eq(bw6_761::g2_projective_t* point1, bw6_761::g2_projective_t* point2); + bw6_761::affine_t* output_bases); -extern "C" void bw6_761_g2_to_affine(bw6_761::g2_projective_t* point, bw6_761::g2_affine_t* point_out); - -extern "C" void bw6_761_g2_generate_projective_points(bw6_761::g2_projective_t* points, int size); - -extern "C" void bw6_761_g2_generate_affine_points(bw6_761::g2_affine_t* points, int size); +extern "C" eIcicleError bw6_761_msm( + const bw6_761::scalar_t* scalars, const bw6_761::affine_t* points, int msm_size, const MSMConfig& config, bw6_761::projective_t* out); -extern "C" eIcicleError bw6_761_g2_affine_convert_montgomery( - const bw6_761::g2_affine_t* input, size_t n, bool is_into, const VecOpsConfig& config, bw6_761::g2_affine_t* output); +extern "C" eIcicleError bw6_761_g2_precompute_msm_bases( + const bw6_761::g2_affine_t* bases, + int nof_bases, + const MSMConfig& config, + bw6_761::g2_affine_t* output_bases); -extern "C" eIcicleError bw6_761_g2_projective_convert_montgomery( - const bw6_761::g2_projective_t* input, - size_t n, - bool is_into, - const VecOpsConfig& config, - bw6_761::g2_projective_t* output); +extern "C" eIcicleError bw6_761_g2_msm( + const bw6_761::scalar_t* scalars, const bw6_761::g2_affine_t* points, int msm_size, const MSMConfig& config, bw6_761::g2_projective_t* out); extern "C" bool bw6_761_eq(bw6_761::projective_t* point1, bw6_761::projective_t* point2); @@ -50,72 +40,55 @@ extern "C" eIcicleError bw6_761_affine_convert_montgomery( const bw6_761::affine_t* input, size_t n, bool is_into, const VecOpsConfig& config, bw6_761::affine_t* output); extern "C" eIcicleError bw6_761_projective_convert_montgomery( - const bw6_761::projective_t* input, - size_t n, - bool is_into, - const VecOpsConfig& config, - bw6_761::projective_t* output); + const bw6_761::projective_t* input, size_t n, bool is_into, const VecOpsConfig& config, bw6_761::projective_t* output); -extern "C" eIcicleError bw6_761_precompute_msm_bases( - const bw6_761::affine_t* bases, int nof_bases, const MSMConfig& config, bw6_761::affine_t* output_bases); +extern "C" bool bw6_761_g2_eq(bw6_761::g2_projective_t* point1, bw6_761::g2_projective_t* point2); -extern "C" eIcicleError bw6_761_msm( - const bw6_761::scalar_t* scalars, - const bw6_761::affine_t* points, - int msm_size, - const MSMConfig& config, - bw6_761::projective_t* out); +extern "C" void bw6_761_g2_to_affine(bw6_761::g2_projective_t* point, bw6_761::g2_affine_t* point_out); -extern "C" eIcicleError bw6_761_ecntt( - const bw6_761::projective_t* input, - int size, - NTTDir dir, - const NTTConfig& config, - bw6_761::projective_t* output); +extern "C" void bw6_761_g2_generate_projective_points(bw6_761::g2_projective_t* points, int size); -extern "C" eIcicleError bw6_761_ntt_init_domain(bw6_761::scalar_t* primitive_root, const NTTInitDomainConfig& config); +extern "C" void bw6_761_g2_generate_affine_points(bw6_761::g2_affine_t* points, int size); -extern "C" eIcicleError bw6_761_ntt( - const bw6_761::scalar_t* input, - int size, - NTTDir dir, - const NTTConfig& config, - bw6_761::scalar_t* output); +extern "C" eIcicleError bw6_761_g2_affine_convert_montgomery( + const bw6_761::g2_affine_t* input, size_t n, bool is_into, const VecOpsConfig& config, bw6_761::g2_affine_t* output); -extern "C" eIcicleError bw6_761_ntt_release_domain(); +extern "C" eIcicleError bw6_761_g2_projective_convert_montgomery( + const bw6_761::g2_projective_t* input, size_t n, bool is_into, const VecOpsConfig& config, bw6_761::g2_projective_t* output); + +extern "C" eIcicleError bw6_761_ecntt( + const bw6_761::projective_t* input, int size, NTTDir dir, const NTTConfig& config, bw6_761::projective_t* output); extern "C" void bw6_761_generate_scalars(bw6_761::scalar_t* scalars, int size); extern "C" void bw6_761_scalar_convert_montgomery( const bw6_761::scalar_t* input, uint64_t size, bool is_into, const VecOpsConfig& config, bw6_761::scalar_t* output); +extern "C" eIcicleError bw6_761_ntt_init_domain( + bw6_761::scalar_t* primitive_root, const NTTInitDomainConfig& config); + +extern "C" eIcicleError bw6_761_ntt( + const bw6_761::scalar_t* input, int size, NTTDir dir, const NTTConfig& config, bw6_761::scalar_t* output); + +extern "C" eIcicleError bw6_761_ntt_release_domain(); + extern "C" eIcicleError bw6_761_vector_mul( - const bw6_761::scalar_t* vec_a, - const bw6_761::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - bw6_761::scalar_t* result); + const bw6_761::scalar_t* vec_a, const bw6_761::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, bw6_761::scalar_t* result); -extern "C" eIcicleError bw6_761vector_add( - const bw6_761::scalar_t* vec_a, - const bw6_761::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - bw6_761::scalar_t* result); +extern "C" eIcicleError bw6_761_vector_add( + const bw6_761::scalar_t* vec_a, const bw6_761::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, bw6_761::scalar_t* result); extern "C" eIcicleError bw6_761_vector_sub( - const bw6_761::scalar_t* vec_a, - const bw6_761::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - bw6_761::scalar_t* result); + const bw6_761::scalar_t* vec_a, const bw6_761::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, bw6_761::scalar_t* result); -extern "C" eIcicleError bw6_761_transpose_matrix( +extern "C" eIcicleError bw6_761_matrix_transpose( const bw6_761::scalar_t* input, uint32_t nof_rows, uint32_t nof_cols, const VecOpsConfig& config, bw6_761::scalar_t* output); -extern "C" eIcicleError -bw6_761_bit_reverse(const bw6_761::scalar_t* input, uint64_t n, const VecOpsConfig& config, bw6_761::scalar_t* output); +extern "C" eIcicleError bw6_761_bit_reverse( + const bw6_761::scalar_t* input, uint64_t n, const VecOpsConfig& config, bw6_761::scalar_t* output); + + diff --git a/icicle/include/icicle/api/grumpkin.h b/icicle/include/icicle/api/grumpkin.h index 4e67ecdf0..0393fb792 100644 --- a/icicle/include/icicle/api/grumpkin.h +++ b/icicle/include/icicle/api/grumpkin.h @@ -9,6 +9,15 @@ #include "icicle/msm.h" #include "icicle/vec_ops.h" +extern "C" eIcicleError grumpkin_precompute_msm_bases( + const grumpkin::affine_t* bases, + int nof_bases, + const MSMConfig& config, + grumpkin::affine_t* output_bases); + +extern "C" eIcicleError grumpkin_msm( + const grumpkin::scalar_t* scalars, const grumpkin::affine_t* points, int msm_size, const MSMConfig& config, grumpkin::projective_t* out); + extern "C" bool grumpkin_eq(grumpkin::projective_t* point1, grumpkin::projective_t* point2); extern "C" void grumpkin_to_affine(grumpkin::projective_t* point, grumpkin::affine_t* point_out); @@ -21,21 +30,7 @@ extern "C" eIcicleError grumpkin_affine_convert_montgomery( const grumpkin::affine_t* input, size_t n, bool is_into, const VecOpsConfig& config, grumpkin::affine_t* output); extern "C" eIcicleError grumpkin_projective_convert_montgomery( - const grumpkin::projective_t* input, - size_t n, - bool is_into, - const VecOpsConfig& config, - grumpkin::projective_t* output); - -extern "C" eIcicleError grumpkin_precompute_msm_bases( - const grumpkin::affine_t* bases, int nof_bases, const MSMConfig& config, grumpkin::affine_t* output_bases); - -extern "C" eIcicleError grumpkin_msm( - const grumpkin::scalar_t* scalars, - const grumpkin::affine_t* points, - int msm_size, - const MSMConfig& config, - grumpkin::projective_t* out); + const grumpkin::projective_t* input, size_t n, bool is_into, const VecOpsConfig& config, grumpkin::projective_t* output); extern "C" void grumpkin_generate_scalars(grumpkin::scalar_t* scalars, int size); @@ -43,27 +38,15 @@ extern "C" void grumpkin_scalar_convert_montgomery( const grumpkin::scalar_t* input, uint64_t size, bool is_into, const VecOpsConfig& config, grumpkin::scalar_t* output); extern "C" eIcicleError grumpkin_vector_mul( - const grumpkin::scalar_t* vec_a, - const grumpkin::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - grumpkin::scalar_t* result); + const grumpkin::scalar_t* vec_a, const grumpkin::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, grumpkin::scalar_t* result); -extern "C" eIcicleError grumpkinvector_add( - const grumpkin::scalar_t* vec_a, - const grumpkin::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - grumpkin::scalar_t* result); +extern "C" eIcicleError grumpkin_vector_add( + const grumpkin::scalar_t* vec_a, const grumpkin::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, grumpkin::scalar_t* result); extern "C" eIcicleError grumpkin_vector_sub( - const grumpkin::scalar_t* vec_a, - const grumpkin::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - grumpkin::scalar_t* result); + const grumpkin::scalar_t* vec_a, const grumpkin::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, grumpkin::scalar_t* result); -extern "C" eIcicleError grumpkin_transpose_matrix( +extern "C" eIcicleError grumpkin_matrix_transpose( const grumpkin::scalar_t* input, uint32_t nof_rows, uint32_t nof_cols, @@ -72,3 +55,5 @@ extern "C" eIcicleError grumpkin_transpose_matrix( extern "C" eIcicleError grumpkin_bit_reverse( const grumpkin::scalar_t* input, uint64_t n, const VecOpsConfig& config, grumpkin::scalar_t* output); + + diff --git a/icicle/include/icicle/api/stark252.h b/icicle/include/icicle/api/stark252.h index 39ad5d7f9..17168e221 100644 --- a/icicle/include/icicle/api/stark252.h +++ b/icicle/include/icicle/api/stark252.h @@ -9,44 +9,29 @@ #include "icicle/ntt.h" #include "icicle/vec_ops.h" -extern "C" eIcicleError stark252_ntt_init_domain(stark252::scalar_t* primitive_root, const NTTInitDomainConfig& config); - -extern "C" eIcicleError stark252_ntt( - const stark252::scalar_t* input, - int size, - NTTDir dir, - const NTTConfig& config, - stark252::scalar_t* output); - -extern "C" eIcicleError stark252_ntt_release_domain(); - extern "C" void stark252_generate_scalars(stark252::scalar_t* scalars, int size); extern "C" void stark252_scalar_convert_montgomery( const stark252::scalar_t* input, uint64_t size, bool is_into, const VecOpsConfig& config, stark252::scalar_t* output); +extern "C" eIcicleError stark252_ntt_init_domain( + stark252::scalar_t* primitive_root, const NTTInitDomainConfig& config); + +extern "C" eIcicleError stark252_ntt( + const stark252::scalar_t* input, int size, NTTDir dir, const NTTConfig& config, stark252::scalar_t* output); + +extern "C" eIcicleError stark252_ntt_release_domain(); + extern "C" eIcicleError stark252_vector_mul( - const stark252::scalar_t* vec_a, - const stark252::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - stark252::scalar_t* result); + const stark252::scalar_t* vec_a, const stark252::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, stark252::scalar_t* result); -extern "C" eIcicleError stark252vector_add( - const stark252::scalar_t* vec_a, - const stark252::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - stark252::scalar_t* result); +extern "C" eIcicleError stark252_vector_add( + const stark252::scalar_t* vec_a, const stark252::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, stark252::scalar_t* result); extern "C" eIcicleError stark252_vector_sub( - const stark252::scalar_t* vec_a, - const stark252::scalar_t* vec_b, - uint64_t n, - const VecOpsConfig& config, - stark252::scalar_t* result); + const stark252::scalar_t* vec_a, const stark252::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, stark252::scalar_t* result); -extern "C" eIcicleError stark252_transpose_matrix( +extern "C" eIcicleError stark252_matrix_transpose( const stark252::scalar_t* input, uint32_t nof_rows, uint32_t nof_cols, @@ -55,3 +40,5 @@ extern "C" eIcicleError stark252_transpose_matrix( extern "C" eIcicleError stark252_bit_reverse( const stark252::scalar_t* input, uint64_t n, const VecOpsConfig& config, stark252::scalar_t* output); + + diff --git a/icicle/include/icicle/api/templates/fields/vec_ops.template b/icicle/include/icicle/api/templates/fields/vec_ops.template index 7bbd1c00a..6f3c1483e 100644 --- a/icicle/include/icicle/api/templates/fields/vec_ops.template +++ b/icicle/include/icicle/api/templates/fields/vec_ops.template @@ -1,13 +1,13 @@ extern "C" eIcicleError ${FIELD}_vector_mul( const ${FIELD}::scalar_t* vec_a, const ${FIELD}::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, ${FIELD}::scalar_t* result); -extern "C" eIcicleError ${FIELD}vector_add( +extern "C" eIcicleError ${FIELD}_vector_add( const ${FIELD}::scalar_t* vec_a, const ${FIELD}::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, ${FIELD}::scalar_t* result); extern "C" eIcicleError ${FIELD}_vector_sub( const ${FIELD}::scalar_t* vec_a, const ${FIELD}::scalar_t* vec_b, uint64_t n, const VecOpsConfig& config, ${FIELD}::scalar_t* result); -extern "C" eIcicleError ${FIELD}_transpose_matrix( +extern "C" eIcicleError ${FIELD}_matrix_transpose( const ${FIELD}::scalar_t* input, uint32_t nof_rows, uint32_t nof_cols, diff --git a/icicle/include/icicle/api/templates/fields/vec_ops_ext.template b/icicle/include/icicle/api/templates/fields/vec_ops_ext.template index 948c4294c..6ec672862 100644 --- a/icicle/include/icicle/api/templates/fields/vec_ops_ext.template +++ b/icicle/include/icicle/api/templates/fields/vec_ops_ext.template @@ -1,13 +1,13 @@ 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( +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( +extern "C" eIcicleError ${FIELD}_extension_matrix_transpose( const ${FIELD}::extension_t* input, uint32_t nof_rows, uint32_t nof_cols,