Hamish Ivey-Law
574a3d4847
FFT improvements ( #81 )
...
* Use built-in `reverse_bits`; remove duplicate `reverse_index_bits`.
* Reduce precomputation time/space complexity from quadratic to linear.
* Several working cache-friendly FFTs.
* Fix to allow FFT of constant polynomial.
* Simplify FFT strategy choice.
* Add PrimeField and CHARACTERISTIC properties to Fields.
* Add faster method for inverse of 2^m.
* Pre-compute some of the roots; tidy up loop iteration.
* Precomputation for both FFT variants.
* Refactor precomputation; add optional parameters; rename some things.
* Unrolled version with zero tail.
* Iterative version of Unrolled precomputation.
* Test zero tail algo.
* Restore default degree.
* Address comments from @dlubarov and @wborgeaud.
2021-07-01 14:55:41 +10:00
wborgeaud
a017e79f65
Merge branch 'main' into add_routed_wires
...
# Conflicts:
# src/gadgets/arithmetic.rs
2021-06-30 08:30:10 +02:00
wborgeaud
42db0a31c1
Clippy
2021-06-25 16:49:29 +02:00
wborgeaud
fc4738869d
Rearrange files
2021-06-25 16:45:02 +02:00
wborgeaud
8602ae1549
Typo
2021-06-25 16:35:58 +02:00
wborgeaud
b62c2e6990
Supplant ArithmeticGate with ArithmeticExtensionGate
2021-06-25 16:31:10 +02:00
wborgeaud
beadce72fc
Add ZeroOutGenerator
2021-06-25 15:11:49 +02:00
wborgeaud
e195fe58ed
Merge branch 'main' into add_routed_wires
2021-06-25 13:53:30 +02:00
wborgeaud
31f4eee367
Fix bug with shifted x
2021-06-24 14:11:47 +02:00
wborgeaud
ff74887ab9
Use with_capacity when length is known
2021-06-23 18:06:53 +02:00
wborgeaud
8796c73362
Change MulExtensionGate to ArithmeticExtensionGate and change gadgets to use the new wires in this gate.
2021-06-23 18:04:43 +02:00
wborgeaud
cfa3d3a660
Added comments
2021-06-22 15:34:50 +02:00
wborgeaud
ad5c18b499
Comments and Clippy
2021-06-17 16:23:15 +02:00
wborgeaud
5edaab59e6
Renaming + Clippy
2021-06-16 11:37:07 +02:00
wborgeaud
89c6a6b4e6
Use repeated_frobenius in ExtensionTarget::frobenius.
2021-06-15 17:34:37 +02:00
wborgeaud
b44a01c975
Merge main
2021-06-15 09:20:00 +02:00
wborgeaud
fa229d9a27
Add comments on possible optimizations
2021-06-14 13:41:44 +02:00
wborgeaud
6132b2ad73
Use mul_extension in scalar_mul_ext since mul_extension now uses a single gate.
2021-06-14 13:30:14 +02:00
wborgeaud
445ea3771d
Remove Frobeniable trait
2021-06-14 10:28:15 +02:00
wborgeaud
5200d70cf0
Add interpolation gadgets
2021-06-11 16:22:29 +02:00
wborgeaud
4b1f368e89
Use Frobenius optimization in the circuit
2021-06-11 14:16:40 +02:00
wborgeaud
bc7f67c316
In-circuit repeated frobenius
2021-06-11 13:58:05 +02:00
wborgeaud
20741cfb4a
Implement out-of-circuit repeated_frobenius using hardcoded constants
2021-06-11 13:45:51 +02:00
wborgeaud
1ebeab2c3a
Implement Frobenius optimization discussed in #61 comments to avoid calling the Frobenius for every wires.
2021-06-11 10:27:03 +02:00
wborgeaud
4106a47ded
Test rotate gadget
2021-06-11 09:59:55 +02:00
wborgeaud
2cd99ff84c
Change ExtensionTarget::frobenius to use 4 constants instead of 1.
2021-06-11 09:35:22 +02:00
Daniel Lubarov
f929f94626
Have rustfmt group imports ( #60 )
...
* Have rustfmt group imports
See `rustfmt.toml`; the rest is automated changes.
* fmt
2021-06-10 14:10:35 -07:00
wborgeaud
dea6db00ac
Rotation gadgets
2021-06-10 17:45:45 +02:00
wborgeaud
bb551092a0
Remove mul_extension_naive
2021-06-09 21:12:15 +02:00
wborgeaud
3db6e38d26
Convert some mul_extension_naive to mul_extension
2021-06-09 18:04:58 +02:00
wborgeaud
9adf5bb43f
Use ExtensionAlgebra + new CircuitBuilder::mul_extension
2021-06-09 10:51:50 +02:00
wborgeaud
7f63276623
Merge branch 'main' into recursive_verifier
2021-06-09 10:04:45 +02:00
wborgeaud
f965211435
Use Daniel's fmt
2021-06-08 19:36:30 +02:00
wborgeaud
e1e4bb36db
Started query round
2021-06-08 19:32:23 +02:00
Daniel Lubarov
db1ef913e0
Remove quartic_quartic
2021-06-08 10:08:17 -07:00
wborgeaud
c6c71ef574
Working fri_combine_initial
2021-06-08 14:56:49 +02:00
wborgeaud
47da1ef68c
Add MLE tests for algebras
2021-06-08 14:01:47 +02:00
wborgeaud
19a38682ab
Minor tweaks
2021-06-08 12:49:45 +02:00
wborgeaud
070dc7c9f1
s/ext_ext/ext_algebra
2021-06-08 11:30:39 +02:00
wborgeaud
d727f84a56
Working test
2021-06-08 11:18:21 +02:00
wborgeaud
5678c7ebda
Added ExtensionAlgebra
2021-06-08 10:58:03 +02:00
wborgeaud
f5dfe95b2e
Added recursive powers
2021-06-04 17:36:48 +02:00
Daniel Lubarov
cb7f8c8b8c
Draw challenge points from the extension field ( #51 )
...
* Draw challenge points from the extension field
* Now building
* Misc
* Default eval_unfiltered_base
* fmt
* A few field settings
* Add to Sage
* Display tweak
* eval_filtered_base
* Quartic in bench
* Missing methods
* Fix tests
* PR feedback
2021-05-30 13:25:53 -07:00
Daniel Lubarov
9cf586274e
Fix typos
2021-05-25 15:06:05 -07:00
Daniel Lubarov
d9e828811f
Typo
2021-05-24 15:10:45 -07:00
Daniel Lubarov
e98593aa7e
Little circuit optimization
2021-05-24 15:09:43 -07:00
wborgeaud
a11d2ed36b
Fixes based on PR comments
2021-05-24 22:04:06 +02:00
wborgeaud
c9309eb27b
Minor
2021-05-24 17:40:26 +02:00
wborgeaud
4f6e9fb2e0
Recursive evaluation for interpolation gate.
2021-05-24 17:31:55 +02:00
wborgeaud
b64a5fab46
Addition and multiplication for ExtensionTarget
2021-05-24 16:36:21 +02:00