446 Commits

Author SHA1 Message Date
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
Daniel Lubarov
95a875e28d
Allow virtual targets to be routed (#84)
As in plonky1. The semantics of virtual targets in plonky1 were rather weird, but I think it's somewhat better here, since we already separate `generate_copy` and `assert_equal` methods. Users now make more of an explicit choice -- they can use a `VirtualTarget` for the witness generation only using `generate_copy`, or they can involve it in copy constraints.
2021-07-01 08:12:12 -07:00
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
Nicholas Ward
6ec99d0b58
Merge pull request #82 from mir-protocol/blinding_related_fixes
Couple fixes related to blinding
2021-06-30 13:12:32 -07:00
Daniel Lubarov
03179e5674 Couple fixes related to blinding
- `self.gates` -> `self.gate_instances`
- Some tests were using a single binary FRI reduction, which doesn't provide enough succinctness for our blinding scheme to work. This caused `blinding_counts` to continue until it overflowed.
2021-06-30 12:54:45 -07:00
wborgeaud
69fff573fe
Merge pull request #76 from mir-protocol/add_routed_wires
Increase number of routed wires to 28 and add a new `ArithmeticExtensionGate`
2021-06-30 08:32:25 +02:00
wborgeaud
a017e79f65 Merge branch 'main' into add_routed_wires
# Conflicts:
#	src/gadgets/arithmetic.rs
2021-06-30 08:30:10 +02:00
wborgeaud
b7f0352cd8 Update comment on reduce 2021-06-30 08:25:36 +02:00
Nicholas Ward
46ff079674
Merge pull request #80 from mir-protocol/blinding_factors
Blinding factors
2021-06-29 23:20:07 -07:00
wborgeaud
e44c4ff679
Merge pull request #79 from mir-protocol/lower_max_constraint_degree
Optimize max constraint degree when searching for gate trees
2021-06-30 08:16:45 +02:00
wborgeaud
eee3026eee Move shorten in find_tree 2021-06-30 08:15:56 +02:00
Daniel Lubarov
f1e3474fcb
Simple reduce (#78)
* Simple reduce

* Fix bug causing test failure
2021-06-29 12:33:11 -07:00
Nicholas Ward
ce47eac72e fix 2021-06-29 11:04:05 -07:00
Nicholas Ward
d599664f22 merge 2021-06-29 10:07:05 -07:00
wborgeaud
bae3777bcd Use max filtered degree found with the tree method in CircuitBuilder::build 2021-06-29 14:00:34 +02:00
wborgeaud
493e81d786 Merge branch 'main' into lower_max_constraint_degree
# Conflicts:
#	src/circuit_builder.rs
2021-06-29 13:48:41 +02:00
wborgeaud
9a352193ed PR feedback 2021-06-29 09:49:05 +02:00
Nicholas Ward
d5457bf414 fixed arithmetic, and added comments 2021-06-28 23:08:24 -07:00
wborgeaud
2c5c073bb1
Merge pull request #68 from mir-protocol/permutation_argument
`Z`s polynomials implementation
2021-06-29 08:07:14 +02:00
wborgeaud
f8f28a167c Merge remote-tracking branch 'origin/permutation_argument' into permutation_argument 2021-06-29 08:06:20 +02:00
wborgeaud
57c86143bc Fix mistake in comment 2021-06-29 08:06:06 +02:00
Nicholas Ward
40f5346009 cargo fmt 2021-06-28 17:07:27 -07:00
Nicholas Ward
5aa0960154 minor fixes 2021-06-28 17:07:09 -07:00
Nicholas Ward
4fb78cf7b2 fix 2021-06-28 11:34:30 -07:00
Nicholas Ward
01493303f8 blinding 2021-06-28 09:45:56 -07:00
Daniel Lubarov
7734aed62c
Performance tweaks (#77) 2021-06-28 08:56:36 -07:00
wborgeaud
12e81acccf Optimize the degree of the tree returned by Tree::from_gates to allow non-power of 2 degree. 2021-06-28 11:27:43 +02:00
wborgeaud
4649c9b72c
Merge pull request #75 from mir-protocol/merge_constant_sigma_commitments
Merge constant and sigma commitments
2021-06-28 09:48:02 +02:00
wborgeaud
c2b2ef921a PR feedback 2021-06-28 09:47:47 +02:00
wborgeaud
636d8bef07 Comments 2021-06-25 17:24:22 +02: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
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
8a119f035d Working ReducingFactorTarget 2021-06-25 16:27:20 +02:00
wborgeaud
beadce72fc Add ZeroOutGenerator 2021-06-25 15:11:49 +02:00
wborgeaud
fd3fa739a6 Fix test relying on ArithmeticGate 2021-06-25 13:56:43 +02:00
wborgeaud
e195fe58ed Merge branch 'main' into add_routed_wires 2021-06-25 13:53:30 +02:00
wborgeaud
6652b38b99 Remove ArithmeticGate 2021-06-25 13:53:14 +02:00
wborgeaud
810d1869a1 Minor improvements 2021-06-25 11:49:29 +02:00
wborgeaud
625377b4c0 Merge constant and sigma polynomials 2021-06-25 11:24:26 +02:00
wborgeaud
727919b14f Comment and test for coset_ifft 2021-06-25 10:20:20 +02:00
wborgeaud
2e9d3f768e Better error message when quotient hasn't correct degree 2021-06-25 09:56:15 +02:00
Nicholas Ward
249c8a8378 calculating number of blinding gates needed 2021-06-24 22:02:20 -07:00
wborgeaud
3ce9183970 Modify new test 2021-06-24 22:57:50 +02:00
wborgeaud
54a15c012c Fixed bug and add division test in the base field. 2021-06-24 22:38:40 +02:00
wborgeaud
21e7e8fdad Merge branch 'main' into permutation_argument
# Conflicts:
#	src/circuit_builder.rs
2021-06-24 22:35:13 +02:00
wborgeaud
19e7cb3942 into_iter -> into_par_iter 2021-06-24 22:32:52 +02:00
Daniel Lubarov
3400caa19c
Fix recursion bench (#74)
Nothing was routed in before
2021-06-24 12:12:57 -07:00