1141 Commits

Author SHA1 Message Date
Nicholas Ward
932cc812ab U32ArithmeticGate 2021-09-28 17:03:35 -07:00
Daniel Lubarov
3d39925973
Couple tweaks for Goldilocks (#274)
- impl `RichField`
- Fix missing imports (easy to miss since they're conditionally compiled)
- Have the benchmarks use Goldilocks
2021-09-28 10:03:19 -07:00
Daniel Lubarov
bd38ada0d1 Change case to get rid of warning 2021-09-27 22:39:42 -07:00
Hamish Ivey-Law
a0de564806
Implement Poseidon width 8 and 12 for Goldilocks field. (#268)
* Implement Poseidon width 8 and 12 for Goldilocks field.

* Comment on generating Poseidon implementations.

* Update Goldilocks 8 constants with corrected MDS matrix.

* Add Goldilocks test vectors and refactor tests.

* Add test vectors of all -1's.

* cargo fmt pedantry.
2021-09-28 10:51:03 +10:00
Daniel Lubarov
31b1a0a9da
Less use of ZK configs in tests (#272)
ZK circuit tests are quite slow, so I think we should use them very sparingly, and not in any tests with loops
2021-09-27 11:42:53 -07:00
Daniel Lubarov
76fcc4ee2c
Very explicit path compression (#271)
* Very explicit path compression

* fmt

* Remove `t` -- no longer needed

* Move comment

* Also remove index field
2021-09-27 10:00:44 -07:00
wborgeaud
1a508d0c19
Merge pull request #270 from mir-protocol/poseidon_8
Use `SPONGE_WIDTH` instead of hardcoded values in various places
2021-09-27 12:55:46 +02:00
wborgeaud
df9a211475 PR comments 2021-09-27 12:29:27 +02:00
Daniel Lubarov
541ad5d755 Minor 2021-09-26 16:37:35 -07:00
Daniel Lubarov
7bf257546e Minor 2021-09-26 16:28:09 -07:00
wborgeaud
747c9f894b Back to width 12 2021-09-26 20:09:26 +02:00
Daniel Lubarov
f382289896
Derive challenges from other proof fields (#262)
* Derive challenges from other proof fields

* Delete failing test

Seems really hard to get the challenges right with the new model.

* Move PoW check

* Other feedback
2021-09-25 19:41:48 -07:00
wborgeaud
1a55538e23 8->SPONGE_WIDTH in most places 2021-09-24 15:50:48 +02:00
wborgeaud
42a7ff9cc2 Working 2021-09-24 13:06:07 +02:00
Nicholas Ward
23b1161d27
Merge pull request #249 from mir-protocol/sorting_gadget
Memory sorting gadget
2021-09-23 09:28:47 -07:00
Nicholas Ward
0c0a8fd862 tweaks 2021-09-23 09:16:38 -07:00
Nicholas Ward
3b6d4cbeea
Merge pull request #267 from mir-protocol/sorting_gen_refactor
Sorting tweaks
2021-09-23 09:13:50 -07:00
Daniel Lubarov
d2dcc31a6c
Fix witness generation performance (#269)
See #266. This avoids the quadratic costs (w.r.t. partition size), as we will now only enumerate watchers the first time a representative is assigned.
2021-09-22 23:45:16 -07:00
Daniel Lubarov
202967a40b Other tweaks 2021-09-22 18:14:58 -07:00
Daniel Lubarov
d541e251ee Add a MemoryOp to simplify MemoryOpSortGenerator 2021-09-22 18:10:38 -07:00
Nicholas Ward
8aa4376360 addressed comments (set sorted values in partial witness; no more directly setting gate inputs) 2021-09-22 14:03:27 -07:00
Daniel Lubarov
e8cb2bbd22
Witness generation fix (#266)
When we went through newly-populated values, as in

    for &(watch, _) in &buffer.target_values

`watch` was not necessarily a representative, because it came from a `GeneratedValues`, whose `set_target` doesn't know about representatives.
2021-09-22 13:43:11 -07:00
Nicholas Ward
2ec3b29741 addressed comments 2021-09-22 11:49:28 -07:00
Jakub Nabaglo
7360391515
Cache FFT roots (#261) 2021-09-22 10:56:09 -07:00
Nicholas Ward
6c4173d2ec fmt 2021-09-21 18:02:56 -07:00
Nicholas Ward
644d87e495 fixes galore 2021-09-21 18:01:21 -07:00
Jakub Nabaglo
46cc27571d
Delete unrolled FFT (#258) 2021-09-21 17:32:38 -07:00
Jakub Nabaglo
2f8286ff98
Fix a few warnings (#259) 2021-09-21 13:12:46 -07:00
Daniel Lubarov
43cbb84cc9
Have verify_merkle_proof call permute_swapped (#257)
Rather than adding the gate "manually".
2021-09-21 12:29:37 -07:00
wborgeaud
a407ed5b7e
Merge pull request #256 from mir-protocol/fix_reduce
Small fixes in the `le_sum` and `reduce` gadgets
2021-09-21 18:55:54 +02:00
wborgeaud
5f3a5e6bad Add num_bits==1,2 cases in le_sum 2021-09-21 18:27:49 +02:00
wborgeaud
4305a95cdb Small fixes to the le_sum and reduce gadgets 2021-09-21 12:52:28 +02:00
wborgeaud
5d8241760f
Merge pull request #255 from mir-protocol/better_compressed_merkle_paths
Simpler Merkle paths compression
2021-09-21 08:56:34 +02:00
wborgeaud
391759479e PR feedback 2021-09-21 08:37:23 +02:00
Jakub Nabaglo
1369dd7c76
Many small optimizations to scalar Poseidon (#253)
* Many small optimizations

* Lints

* Hamish comments

* Inlining
2021-09-20 10:52:12 -07:00
wborgeaud
1f42916bfc Comments 2021-09-20 17:58:25 +02:00
wborgeaud
36e4d3608d Working (de)compression for FRI proofs 2021-09-20 17:34:52 +02:00
Daniel Lubarov
471ace6d85
Remove loop unrolling in a few more places where it doesn't seem important (#254)
LLVM will do some unrolling/inlining, but I think we should only force it in places we know it's really justified.
2021-09-20 07:50:00 -07:00
wborgeaud
422e72954c Working path (de)compression 2021-09-20 14:37:28 +02:00
Jakub Nabaglo
5e748ed76b
#[inline] add_assign in CrandallField (#252) 2021-09-19 10:03:57 -07:00
wborgeaud
92f5d39671
Merge pull request #250 from mir-protocol/poseidon_gate
Poseidon gate and global move to Poseidon
2021-09-18 18:33:37 +02:00
wborgeaud
0be8650bca PR feedback 2021-09-18 09:23:39 +02:00
wborgeaud
b8f6b3a778 Merge branch 'main' into poseidon_gate 2021-09-18 08:55:54 +02:00
wborgeaud
a105cae7fc
Merge pull request #251 from mir-protocol/jakub/fix-alignment
Fix alignment assumptions in AVX2 Poseidon
2021-09-18 08:55:13 +02:00
Nicholas Ward
3d93766cc8 test (wip) 2021-09-17 14:50:37 -07:00
Nicholas Ward
8dd00b8d41 added generator 2021-09-17 13:40:07 -07:00
Nicholas Ward
2c1c116ead fixes (addressed comments) 2021-09-17 13:09:24 -07:00
Jakub Nabaglo
d3de2b5518 Fix alignment assumptions in AVX2 Poseidon 2021-09-17 10:04:05 -07:00
wborgeaud
14bbf5ae11 Fix AVX2 conflict 2021-09-17 17:50:43 +02:00
wborgeaud
675f32835b Minor 2021-09-17 13:50:42 +02:00