constantine/tests
Mamy Ratsimbazafy 83dcd988b3
FpDbl revisited (#144) - 7% perf improvement everywhere, up to 30% in double-width primitives
* reorg mul -> limbs_double_width, ConstantineASM CttASM

* Implement squaring specialized scalar path (22% faster than mul)

* Implement "portable" assembly for squaring

* stash part of the changes

* Reorg montgomery reduction - prepare to introduce Comba optimization

* Implement comba Montgomery reduce (but it's slower!)

* rename t -> a

* 30% performance improvement by avoiding toOpenArray!

* variable renaming

* Fix 32-bit imports

* slightly better assembly for sub2x

* There is an annoying bottleneck

* use out-of-place Fp assembly instead of in-place

* diffAlias is unneeded now

* cosmetic

* speedup fpDbl sub by 20%

* Fix Fp2 -> Fp6 -> Fp12 towering. It seems 5% faster

* Stash ADCX/ADOX squaring
2021-02-01 03:52:27 +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 Implement BW6-761 Endomorphism acceleration (#104) 2020-10-13 23:58:35 +02:00
t_ec_sage_bls12_377.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_sage_bls12_381.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_sage_bn254_nogami.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_sage_bn254_snarks.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_sage_bw6_761_g1.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_sage_bw6_761_g2.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_sage_template.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +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 BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_g1_add_double.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_shortw_prj_g1_mixed_add.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_g1_mul_distri.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
t_ec_shortw_prj_g1_mul_sanity.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_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_prj_g2_add_double_bls12_377.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_g2_add_double_bls12_381.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_g2_add_double_bn254_snarks.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_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_prj_g2_mixed_add_bls12_377.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_g2_mixed_add_bls12_381.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_g2_mixed_add_bn254_snarks.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_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_prj_g2_mul_distri_bls12_377.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_g2_mul_distri_bls12_381.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_g2_mul_distri_bn254_snarks.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_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_prj_g2_mul_sanity_bls12_377.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_g2_mul_sanity_bls12_381.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_g2_mul_sanity_bn254_snarks.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_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_prj_g2_mul_vs_ref_bls12_377.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_g2_mul_vs_ref_bls12_381.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_g2_mul_vs_ref_bn254_snarks.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_ec_shortw_prj_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_template.nim Implement Jacobian mixed addition (#142) 2021-01-30 14:21:55 +01:00
t_finite_fields.nim Fuzz fix - non-unique modular representation after Assembly negate (#137) 2021-01-24 12:35:27 +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_width.nim FpDbl revisited (#144) - 7% perf improvement everywhere, up to 30% in double-width primitives 2021-02-01 03:52:27 +01:00
t_finite_fields_mulsquare.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +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_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 Naive pairings + Naive cofactor clearing (#82) 2020-09-21 23:24:00 +02: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 Implement BW6-761 Endomorphism acceleration (#104) 2020-10-13 23:58:35 +02:00
t_fp_tower_template.nim Naive pairings + Naive cofactor clearing (#82) 2020-09-21 23:24:00 +02:00
t_fr.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +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 BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_pairing_bls12_377_optate.nim BLS12-377 (#91) 2020-09-27 09:15:14 +02:00
t_pairing_bls12_381_line_functions.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_pairing_bls12_381_optate.nim Pairing optim (#85) 2020-09-24 17:18:23 +02:00
t_pairing_bn254_nogami_optate.nim Pairings for BN254-Nogami and BN254-Snarks (#86) 2020-09-25 21:58:20 +02:00
t_pairing_bn254_snarks_optate.nim Pairings for BN254-Nogami and BN254-Snarks (#86) 2020-09-25 21:58:20 +02:00
t_pairing_cyclotomic_fp12.nim BLS12-377 (#91) 2020-09-27 09:15:14 +02:00
t_pairing_mul_fp12_by_lines.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02:00
t_pairing_template.nim BW6-761 part 1 (#100) 2020-10-09 07:51:47 +02: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