Mamy Ratsimbazafy
9770b3108c
Fp12 over fp6 ( #201 )
...
* introduce sumprod for direct fp6_mul
* change curves -> constants
* forgotten constants
* Full pairing using Fp2->Fp6->Fp12 towering
2022-08-14 09:48:10 +02:00
Mamy Ratsimbazafy
a17fb3b4c1
Fix compiler hints and warnings (unused import/variables, ...)
2022-08-06 19:55:35 +02:00
Mamy Ratsimbazafy
99c9730793
Self-contained bindings generation ( #196 )
...
* First draft at bindings generation
* finite field bindings PoC
* support openarray, export NimMain
* PoC extension fields and elliptic curve bindings
* Pasta
* expose more bindings, remove nimZeroMem, remove tracer when unused, codegen name_mangling`gensym issue
* workaround bad C gensym codegen with {.inline.} pragma in non-dirty template nested in generic proc instantiated by template
2022-08-06 19:05:54 +02:00
Mamy Ratsimbazafy
ffacf61e8a
Don't dump all in "backend" ( #184 )
...
* backend -> math
* towers -> extension fields
* move ISA and compiler specific code out of math/
* fix export
2022-02-27 01:49:08 +01:00
Mamy Ratsimbazafy
fe500a6a79
Productionize: move protocols top-level vs backend ( #179 )
...
* Productionize: move protocols top-level vs backend
* fix path
* import fix
* the last one
* benches as well
2022-02-21 01:04:53 +01:00
Mamy Ratsimbazafy
f6c02fe075
Optimized subgroup checks and cofactor clearing ( #169 )
...
* Move cofactor clearing to dedicated per-curve subgroups file
* Add BLS12-381 fast subgroup checks
* Implement fast cofactor clearing for BN254_snarks
* Add fast subgroup check to BN254Snarks
* add BLS12_377 optimized cofactor and subgroup functions
* Add BN254_Nogami
* Add GT-subgroup tests
* Use the new subgroup checks for Eth1 EVM precompiles
2022-01-03 14:12:58 +01:00
Mamy Ratsimbazafy
c42e2a0251
Rename NotOnTwist/OnTwist => subgroup G1 and G2
2022-01-01 19:17:04 +01:00
Mamy André-Ratsimbazafy
5710a961a1
Rename ECP_ShortW_Proj -> ECP_ShortW_Prj
2021-02-06 16:29:53 +01:00
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
Mamy Ratsimbazafy
b91ec1cb15
Metering ( #140 )
...
* Add metering facilities
* Metering reporting
* Add example report on metering BLS12-381 pairings
2021-01-29 22:21:19 +01:00