Daniel Lubarov
079baff718
Optimize some exp methods to use ExponentiationGate ( #151 )
2021-08-04 09:55:29 -07:00
wborgeaud
fc9d64defe
Small nits for the exponentiation gate
2021-08-02 13:12:50 +02:00
Daniel Lubarov
50b07f2ceb
Special cases for extension field arithmetic ( #138 )
...
We previously checked for special cases, like arithmetic on constant Targets, in `arithmetic`. We can handle those cases without actually adding an `ArithmeticGate`.
Now that `arithmetic` just calls `arithmetic_extension`, it makes more sense to check for special cases in the latter method, so it applies to both base and extension field arithmetic.
Reduces gate count from 16149 to 15689.
2021-07-30 09:03:11 -07:00
Daniel Lubarov
018fb005f8
Move stuff around ( #135 )
...
No functional changes here. The biggest change was moving certain files into new directories like `plonk` and `iop` (for things like `Challenger` that could be used in STARKs or other IOPs). I also split a few files, renames, etc, but again nothing functional, so I don't think a careful review is necessary (just a sanity check).
2021-07-29 22:00:29 -07:00
Nicholas Ward
8440a4cbdf
fix
2021-07-29 15:15:40 -07:00
Nicholas Ward
cfda56e3d3
Merge branch 'main' into exp_gate_config
2021-07-29 14:19:24 -07:00
Nicholas Ward
a111fc3164
fixes
2021-07-29 14:18:18 -07:00
Nicholas Ward
95503ff7fa
Merge branch 'main' into exp_gate_config
2021-07-29 14:10:35 -07:00
Nicholas Ward
e46bd08f00
exponention gate takes only bits
2021-07-29 12:59:11 -07:00
Nicholas Ward
56b62f1964
new exp gate takes in CircuitConfig and determines num_bits
2021-07-29 10:26:46 -07:00
Nicholas Ward
fa06cc5509
fix
2021-07-28 17:37:26 -07:00
Nicholas Ward
17217f1143
addressed nit
2021-07-28 17:34:41 -07:00
Nicholas Ward
2fd9ce2114
fixes to exp functions
2021-07-28 13:38:41 -07:00
Nicholas Ward
247fa39386
exponentiation gadget
2021-07-28 10:56:12 -07:00
wborgeaud
f325586beb
Replace exp_from_complement_bits with simpler method
2021-07-23 14:58:41 +02:00
wborgeaud
6f8053cc37
Forgot to exponentiate from bits in computation of subgroup_x. Saves 80 gates.
2021-07-23 08:53:00 +02:00
wborgeaud
a70e97befc
Fix merge issues
2021-07-23 08:21:55 +02:00
wborgeaud
9a1c289f8e
Merge branch 'main' into remove_acc_in_gmimc
...
# Conflicts:
# src/gadgets/arithmetic.rs
2021-07-23 08:16:23 +02:00
wborgeaud
47b9936487
PR feedback
2021-07-23 08:15:13 +02:00
wborgeaud
0541956942
Remove useless clone
2021-07-22 16:22:23 +02:00
wborgeaud
1d92191227
Make exp_complement_bits take an iterator to avoid cloning.
2021-07-22 16:18:13 +02:00
wborgeaud
b65e792ff3
- Remove useless rotation gadgets
...
- rotate.rs -> select.rs
- Added `select()` and `select_ext`
- Optimize to use just one gate
2021-07-22 11:58:29 +02:00
wborgeaud
be2e870aee
PR feedback
2021-07-22 06:50:07 +02:00
wborgeaud
db0121d74a
Update comment
2021-07-21 20:38:23 +02:00
wborgeaud
a54a4e5830
Merge branch 'main' into avoid_rotating
2021-07-21 20:02:22 +02:00
wborgeaud
59494ff8d1
Merge branch 'main' into optimize_mul_many
...
# Conflicts:
# src/gates/arithmetic.rs
2021-07-21 17:47:38 +02:00
wborgeaud
6e305f0a3e
Change {add|mul}_many and cube
2021-07-21 17:41:22 +02:00
Daniel Lubarov
ac1872a8c8
FRI tweaks ( #111 )
...
- Call `exp_power_of_2` instead of manual squaring
- Replace `evaluations[i]` with `evals`
2021-07-20 12:49:02 -07:00
wborgeaud
925c0bcb5c
Replace rotation with exp in compute_evaluation
2021-07-20 15:25:03 +02:00
Daniel Lubarov
9c17a00c00
Division related changes ( #99 )
...
* Division related changes
- Simplify `div_unsafe_extension` using virtual targets
- Add methods for inversion and safe division
As a followup I'll switch some calls to safe division.
* Test safe division also
* add_virtual_extension_target
2021-07-18 23:05:57 -07:00
Daniel Lubarov
519533d4b7
Benchmark tweaks ( #83 )
...
- Configure FRI with a list of arities that's more appropriate for a 2^14 instance. The previous config resulted in a huge final polynomial.
- Log the blinding factors, and other logging tweaks.
2021-07-01 10:53:42 -07:00
wborgeaud
2f06a78cb1
Simplify exp_u64
2021-06-25 16:53:11 +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
b62c2e6990
Supplant ArithmeticGate with ArithmeticExtensionGate
2021-06-25 16:31:10 +02:00
wborgeaud
8a119f035d
Working ReducingFactorTarget
2021-06-25 16:27:20 +02:00
wborgeaud
beadce72fc
Add ZeroOutGenerator
2021-06-25 15:11:49 +02:00
wborgeaud
6652b38b99
Remove ArithmeticGate
2021-06-25 13:53:14 +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
bfd5f06384
Hardcode Plonk polynomials indices and blinding flags.
2021-06-17 11:54:31 +02:00
wborgeaud
4437012d2a
Add num_bits to exp.
2021-06-16 08:56:58 +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
1eb372326a
Add CircuitConfig::large_config() for tests.
2021-06-11 09:44:19 +02:00
wborgeaud
bb551092a0
Remove mul_extension_naive
2021-06-09 21:12:15 +02:00
wborgeaud
89761ef22a
Added in-circuit reverse_bits and exp.
2021-06-09 17:39:45 +02:00
wborgeaud
9adf5bb43f
Use ExtensionAlgebra + new CircuitBuilder::mul_extension
2021-06-09 10:51:50 +02:00
wborgeaud
8cf2758b6c
Division gadget for extension field
2021-06-07 17:55:27 +02:00
wborgeaud
a8da9b945e
Working MulExtensionGate
2021-06-07 17:09:53 +02:00
wborgeaud
6f2275bc6d
Progress
2021-06-07 11:19:54 +02:00