constantine/tests/math_extension_fields
Mamy Ratsimbazafy b1ef2682d6
Modular exponentiation (arbitrary output) and EIP-198 (#242)
* implement arbitrary precision modular exponentiation (prerequisite EIP-198)

* [modexp] implement exponentiation modulo 2ᵏ

* add inversion (mod 2ᵏ)

* [modexp] High-level wrapper for powmod with odd modulus

* [modexp] faster exponentiation (mod 2ᵏ) for even case and Euler's totient function odd case

* [modexp] implement general fast modular exponentiation

* Fix modular reduction with 64-bit modulus + fuzz powmod vs GMP

* add benchmark

* add EIP-198 support

* fixups following self review

* fix test paths
2023-06-01 23:38:41 +02:00
..
t_fp2.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp2_frobenius.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp2_sqrt.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp4.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp4_frobenius.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp6_bls12_377.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp6_bls12_381.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp6_bn254_nogami.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp6_bn254_snarks.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp6_bw6_761.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp6_frobenius.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp12_anti_regression.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp12_bls12_377.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp12_bls12_381.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp12_bn254_nogami.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp12_bn254_snarks.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp12_exponentiation.nim Modular exponentiation (arbitrary output) and EIP-198 (#242) 2023-06-01 23:38:41 +02:00
t_fp12_frobenius.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00
t_fp_tower_frobenius_template.nim Modular exponentiation (arbitrary output) and EIP-198 (#242) 2023-06-01 23:38:41 +02:00
t_fp_tower_template.nim Path reorgs (#240) 2023-05-29 20:14:30 +02:00