constantine/tests
Mamy Ratsimbazafy 9ac9862401
Optimize Miller Loop and prepare Multi-pairing (#159)
* Pairing with affine: align API to BLST and Gurvy and common use-case.

* Implement multi-pairing / aggregate verif for BLS12-381 (+2% pairing perf)

* Generalize the optimized miller loop for single pairing

* Immplement the miller loop addchain for BLS12-377

* Miller addition chain for BN254-Nogami

* no Miller adchain for BN254-Snarks

* Update the line test with new tower https://github.com/mratsim/constantine/pull/153

* Somewhat sparse for Fp2 M-Twist

* Implement line by line multiplication for Fp12 D-Twist

* Somewhat sparse Mul for Fp12 D-Twist

* Finish the sparse and somewhat sparse multiplications
2021-02-14 13:06:57 +01:00
..
support Sage constants & tests codegen (#101) 2020-10-10 16:19:23 +02:00
vectors Implement BW6-761 Endomorphism acceleration (#104) 2020-10-13 23:58:35 +02:00
t_bigints.nim FpDbl revisited (#144) - 7% perf improvement everywhere, up to 30% in double-width primitives 2021-02-01 03:52:27 +01:00
t_bigints_mod_vs_gmp.nim Decimal conversion (#139) 2021-01-29 20:42:36 +01:00
t_bigints_mul_high_words_vs_gmp.nim Naive pairings + Naive cofactor clearing (#82) 2020-09-21 23:24:00 +02:00
t_bigints_mul_vs_gmp.nim Naive pairings + Naive cofactor clearing (#82) 2020-09-21 23:24:00 +02:00
t_bigints_multimod.nim SHorter test names for github display 2020-06-15 23:15:01 +02:00
t_ec_frobenius.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_sage_bls12_377.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_sage_bls12_381.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_sage_bn254_nogami.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_sage_bn254_snarks.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_sage_bw6_761_g1.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_sage_bw6_761_g2.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_sage_template.nim Drop nim-json-serialization for testing (#156) 2021-02-09 22:10:16 +01:00
t_ec_shortw_jac_g1_add_double.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_shortw_jac_g1_mixed_add.nim Implement Jacobian mixed addition (#142) 2021-01-30 14:21:55 +01:00
t_ec_shortw_jac_g1_mul_distri.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_shortw_jac_g1_mul_sanity.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g1_mul_vs_ref.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_shortw_jac_g2_add_double_bls12_377.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_add_double_bls12_381.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_add_double_bn254_snarks.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_add_double_bw6_761.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_shortw_jac_g2_mixed_add_bls12_377.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_mixed_add_bls12_381.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_mixed_add_bn254_snarks.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_mixed_add_bw6_761.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_shortw_jac_g2_mul_distri_bls12_377.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_mul_distri_bls12_381.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_mul_distri_bn254_snarks.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_mul_distri_bw6_761.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_shortw_jac_g2_mul_sanity_bls12_377.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_mul_sanity_bls12_381.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_mul_sanity_bn254_snarks.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_mul_sanity_bw6_761.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_shortw_jac_g2_mul_vs_ref_bls12_377.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_mul_vs_ref_bls12_381.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_mul_vs_ref_bn254_snarks.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_jac_g2_mul_vs_ref_bw6_761.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_shortw_prj_edge_cases.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g1_add_double.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g1_mixed_add.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g1_mul_distri.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g1_mul_sanity.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g1_mul_vs_ref.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_add_double_bls12_377.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_add_double_bls12_381.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_add_double_bn254_snarks.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_add_double_bw6_761.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mixed_add_bls12_377.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mixed_add_bls12_381.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mixed_add_bn254_snarks.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mixed_add_bw6_761.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mul_distri_bls12_377.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mul_distri_bls12_381.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mul_distri_bn254_snarks.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mul_distri_bw6_761.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mul_sanity_bls12_377.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mul_sanity_bls12_381.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mul_sanity_bn254_snarks.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mul_sanity_bw6_761.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mul_vs_ref_bls12_377.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mul_vs_ref_bls12_381.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mul_vs_ref_bn254_snarks.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_shortw_prj_g2_mul_vs_ref_bw6_761.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_ec_template.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_finite_fields.nim Rework towering (#148) 2021-02-06 16:28:38 +01:00
t_finite_fields.nim.cfg SHorter test names for github display 2020-06-15 23:15:01 +02:00
t_finite_fields_conditional_arithmetic.nim Jacobian coordinates (#95) 2020-10-02 00:01:09 +02:00
t_finite_fields_double_precision.nim Double-Precision towering (#155) 2021-02-09 22:57:45 +01:00
t_finite_fields_mulsquare.nim Double-Precision towering (#155) 2021-02-09 22:57:45 +01:00
t_finite_fields_mulsquare.nim.cfg SHorter test names for github display 2020-06-15 23:15:01 +02:00
t_finite_fields_powinv.nim forgot an import 2021-01-24 13:55:18 +01:00
t_finite_fields_powinv.nim.cfg SHorter test names for github display 2020-06-15 23:15:01 +02:00
t_finite_fields_sqrt.nim Square Root & Inversion addition chains - 20% perf increase (#132) 2021-01-23 20:55:40 +01:00
t_finite_fields_sqrt.nim.cfg SHorter test names for github display 2020-06-15 23:15:01 +02:00
t_finite_fields_vs_gmp.nim FpDbl revisited (#144) - 7% perf improvement everywhere, up to 30% in double-width primitives 2021-02-01 03:52:27 +01:00
t_fp2.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_fp2_frobenius.nim Implement BW6-761 Endomorphism acceleration (#104) 2020-10-13 23:58:35 +02:00
t_fp2_sqrt.nim Fuzz fix - non-unique modular representation after Assembly negate (#137) 2021-01-24 12:35:27 +01:00
t_fp4.nim Double-Precision towering (#155) 2021-02-09 22:57:45 +01:00
t_fp4_frobenius.nim Remove unused curves 2020-09-27 13:13:45 +02:00
t_fp6_bls12_377.nim Naive pairings + Naive cofactor clearing (#82) 2020-09-21 23:24:00 +02:00
t_fp6_bls12_381.nim Naive pairings + Naive cofactor clearing (#82) 2020-09-21 23:24:00 +02:00
t_fp6_bn254_snarks.nim Naive pairings + Naive cofactor clearing (#82) 2020-09-21 23:24:00 +02:00
t_fp6_bw6_761.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_fp6_frobenius.nim Implement BW6-761 Endomorphism acceleration (#104) 2020-10-13 23:58:35 +02:00
t_fp12_anti_regression.nim Fuzz fix - non-unique modular representation after Assembly negate (#137) 2021-01-24 12:35:27 +01:00
t_fp12_bls12_377.nim Naive pairings + Naive cofactor clearing (#82) 2020-09-21 23:24:00 +02:00
t_fp12_bls12_381.nim Naive pairings + Naive cofactor clearing (#82) 2020-09-21 23:24:00 +02:00
t_fp12_bn254_snarks.nim Naive pairings + Naive cofactor clearing (#82) 2020-09-21 23:24:00 +02:00
t_fp12_exponentiation.nim Double-precision cubic towering + pairing (#158) 2021-02-12 21:27:58 +01:00
t_fp12_frobenius.nim Remove unused curves 2020-09-27 13:13:45 +02:00
t_fp_cubic_root.nim Move pairings 2020-09-27 21:00:35 +02:00
t_fp_tower_frobenius_template.nim Tower drop concepts (#153) 2021-02-07 14:03:56 +01:00
t_fp_tower_template.nim Double-precision cubic towering + pairing (#158) 2021-02-12 21:27:58 +01:00
t_fr.nim Double-Precision towering (#155) 2021-02-09 22:57:45 +01:00
t_hash_sha256_vs_openssl.nim deal with DLL mess for OpenSSL test 2021-01-03 21:50:22 +01:00
t_io_bigints.nim Decimal conversion (#139) 2021-01-29 20:42:36 +01:00
t_io_fields.nim Assembly backend (#69) 2020-07-24 22:02:30 +02:00
t_io_fields.nim.cfg SHorter test names for github display 2020-06-15 23:15:01 +02:00
t_pairing_bls12_377_line_functions.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_pairing_bls12_377_optate.nim [WIP] Pairings for bw6 761 (#108) 2021-02-07 09:46:41 +01:00
t_pairing_bls12_381_line_functions.nim Rename ECP_ShortW_Proj -> ECP_ShortW_Prj 2021-02-06 16:29:53 +01:00
t_pairing_bls12_381_optate.nim [WIP] Pairings for bw6 761 (#108) 2021-02-07 09:46:41 +01:00
t_pairing_bn254_nogami_optate.nim [WIP] Pairings for bw6 761 (#108) 2021-02-07 09:46:41 +01:00
t_pairing_bn254_snarks_optate.nim [WIP] Pairings for bw6 761 (#108) 2021-02-07 09:46:41 +01:00
t_pairing_bw6_761_optate.nim [WIP] Pairings for bw6 761 (#108) 2021-02-07 09:46:41 +01:00
t_pairing_cyclotomic_fp12.nim BLS12-377 (#91) 2020-09-27 09:15:14 +02:00
t_pairing_mul_fp12_by_lines.nim Optimize Miller Loop and prepare Multi-pairing (#159) 2021-02-14 13:06:57 +01:00
t_pairing_template.nim Optimize Miller Loop and prepare Multi-pairing (#159) 2021-02-14 13:06:57 +01:00
t_primitives.nim SHorter test names for github display 2020-06-15 23:15:01 +02:00
t_primitives_extended_precision.nim Fuzzing campaign fixes (#58) 2020-06-23 01:27:40 +02:00