constantine/tests
Mamy Ratsimbazafy bea798e27c
Field sqrt optimization (#168)
* add more Fp tests for Twisted Edwards curves

* add fused sqrt+division bench

* Significant fused sqrt+division improvement for any prime field over algorithm described in  "High-Speed High-Security Signature", Bernstein et al, p15 "Fast decompression", https://ed25519.cr.yp.to/ed25519-20110705.pdf

* Activate secp256k1 field benches + spring renaming of field multiplication

* addition chains for inversion and sqrt of Curve25519

* Make isSquare use addition chains

* add double-prec mul/square bench for <256-bit prime fields.
2022-01-01 16:19:35 +01:00
..
protocols Eth1 evm precompiles (#166) 2021-12-15 00:02:11 +01:00
support Sage constants & tests codegen (#101) 2020-10-10 16:19:23 +02:00
vectors Hash to curve - BLS12-381 (#110) 2021-08-13 22:07:26 +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 Initial support for Twisted Edwards curves (#167) 2021-12-29 01:54:17 +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 Initial support for Twisted Edwards curves (#167) 2021-12-29 01:54:17 +01:00
t_ec_twedwards_prj_add_double.nim Initial support for Twisted Edwards curves (#167) 2021-12-29 01:54:17 +01:00
t_ec_twedwards_prj_mul_distri.nim Initial support for Twisted Edwards curves (#167) 2021-12-29 01:54:17 +01:00
t_ec_twedwards_prj_mul_sanity.nim Initial support for Twisted Edwards curves (#167) 2021-12-29 01:54:17 +01:00
t_ec_twedwards_prj_mul_vs_ref.nim Initial support for Twisted Edwards curves (#167) 2021-12-29 01:54:17 +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 Field sqrt optimization (#168) 2022-01-01 16:19:35 +01:00
t_finite_fields_double_precision.nim.cfg Square ADX (#160) 2021-02-20 13:18:49 +01:00
t_finite_fields_mulsquare.nim Field sqrt optimization (#168) 2022-01-01 16:19:35 +01:00
t_finite_fields_mulsquare.nim.cfg Square ADX (#160) 2021-02-20 13:18:49 +01:00
t_finite_fields_powinv.nim Field sqrt optimization (#168) 2022-01-01 16:19:35 +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 Initial support for Twisted Edwards curves (#167) 2021-12-29 01:54:17 +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 Field sqrt optimization (#168) 2022-01-01 16:19:35 +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 hash-to-curve BLS12-381 perf (#163) 2021-08-14 21:01:50 +02: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 Hash to curve - BLS12-381 (#110) 2021-08-13 22:07:26 +02:00
t_hash_to_curve.nim Hash to curve - BLS12-381 (#110) 2021-08-13 22:07:26 +02:00
t_hash_to_field.nim Hash to curve - BLS12-381 (#110) 2021-08-13 22:07:26 +02: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_multi.nim Multipairing (#165) 2021-08-16 22:22:51 +02: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 Multipairing (#165) 2021-08-16 22:22:51 +02: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
t_sig_bls_lowlevel.nim Multipairing (#165) 2021-08-16 22:22:51 +02:00