1184 Commits

Author SHA1 Message Date
Nicholas Ward
7be26a708b
Merge pull request #240 from mir-protocol/comparison_gate
Comparison gate
2021-09-16 11:36:28 -07:00
Nicholas Ward
8681cdec54 intermediate wires 2021-09-16 11:16:32 -07:00
wborgeaud
5d7f4de2a6 Working recursively 2021-09-16 19:17:37 +02:00
wborgeaud
c508fe4362 Minor 2021-09-16 18:16:19 +02:00
wborgeaud
49ba7ccb52 Working 2021-09-16 18:16:05 +02:00
Nicholas Ward
7abf48cd07 addressed comments (apart from intermediate wires) 2021-09-16 08:51:44 -07:00
wborgeaud
b11e54d6ed Semi-working 2021-09-16 17:51:07 +02:00
Daniel Lubarov
e1812dd797 Slighly more user friendly Sage snippet 2021-09-15 21:13:57 -07:00
Daniel Lubarov
151d1f1d84
Constants for Goldilocks & binary to generate them (#247)
* Constants for Goldilocks etc

* Fix typo
2021-09-15 19:48:30 -07:00
Nicholas Ward
0acff53e1a fixes 2021-09-15 17:55:15 -07:00
Nicholas Ward
7a7bf371eb fmt 2021-09-15 17:55:15 -07:00
Nicholas Ward
c207a02852 changes and fixes (z --> most_significant_diff) 2021-09-15 17:55:15 -07:00
Nicholas Ward
44dc1cd4ed removed z 2021-09-15 17:55:15 -07:00
Nicholas Ward
677165fda7 range check of chunks 2021-09-15 17:55:15 -07:00
Nicholas Ward
a68094d378 eval_unfiltered_recusively 2021-09-15 17:55:15 -07:00
Nicholas Ward
806f4af92c eval_unfiltered_base 2021-09-15 17:55:15 -07:00
Nicholas Ward
8a4259cc28 addressed comments 2021-09-15 17:55:15 -07:00
Nicholas Ward
1a1358c081 cleanup (using reduce_with_powers) 2021-09-15 17:55:15 -07:00
Nicholas Ward
9fe6dab045 cleanup 2021-09-15 17:55:15 -07:00
Nicholas Ward
2f0ba9f98f cleanup (references) 2021-09-15 17:55:15 -07:00
Nicholas Ward
8efa5a54b1 fixed test (first is actually smaller than second :P) 2021-09-15 17:55:15 -07:00
Nicholas Ward
26c3edf465 removed copies 2021-09-15 17:55:15 -07:00
Nicholas Ward
8a726d5a86 fmt 2021-09-15 17:55:15 -07:00
Nicholas Ward
4eda0e9e9b fix (z calculated incorrectly) 2021-09-15 17:55:15 -07:00
Nicholas Ward
63246bc2f7 fix (wires were out of order) 2021-09-15 17:55:15 -07:00
Nicholas Ward
75ff36decb fmt 2021-09-15 17:55:15 -07:00
Nicholas Ward
6807c14c41 fix 2021-09-15 17:55:15 -07:00
Nicholas Ward
4484a42d93 test_gate_constraints 2021-09-15 17:55:15 -07:00
Nicholas Ward
18738e5984 fixes 2021-09-15 17:55:15 -07:00
Nicholas Ward
8731f8136f some tests 2021-09-15 17:55:15 -07:00
Nicholas Ward
542bc6283c added num_bits 2021-09-15 17:55:15 -07:00
Nicholas Ward
ada79f7072 cleanup 2021-09-15 17:55:15 -07:00
Nicholas Ward
93e6bc626d fixed errors 2021-09-15 17:55:15 -07:00
Nicholas Ward
9fa0500390 comparison gate 2021-09-15 17:55:15 -07:00
wborgeaud
b5d35b3582
Merge pull request #246 from mir-protocol/goldilocks_ext
Goldilocks extension fields
2021-09-15 18:32:15 +02:00
wborgeaud
c14673863a Add submodule for field extension tests 2021-09-15 18:22:26 +02:00
wborgeaud
5048a3f31d Minor 2021-09-15 10:05:41 +02:00
wborgeaud
c9d884f740 Change tests for quartic extension 2021-09-15 09:55:38 +02:00
wborgeaud
1ca197840f Add a test_field_extension macro 2021-09-15 09:52:49 +02:00
wborgeaud
d9978b5897 Remove unused 2021-09-15 09:38:25 +02:00
wborgeaud
80af66c87b Test quadratic extensions of Crandall and Goldilocks 2021-09-15 09:36:56 +02:00
wborgeaud
dc4062cde7 Add quadratic and quartic extensions to Goldilocks 2021-09-15 09:10:18 +02:00
Jakub Nabaglo
a7cd1ef40b
Vectorize Poseidon constant layer with NEON (#245)
* Start work on Crandall arithmetic in NEON

* Poseidon constant layer in NEON

* its alive

Co-authored-by: Jakub Nabaglo <jakub@mirprotocol.org>
2021-09-14 21:37:07 -07:00
Jakub Nabaglo
b411a275f9
AVX2 vectorization of Poseidon S-box (#244)
* AVX2 vectorization of Poseidon S-box

* Minor doc

* Microoptimization
2021-09-14 19:26:31 -07:00
Jakub Nabaglo
2ae9e34993
AVX2 vectorization of Poseidon constant layer (#243)
* AVX2 vectorization of Poseidon constant layer

* Silence unused import warning + minor style

* Daniel comment
2021-09-13 21:18:18 -07:00
Jakub Nabaglo
b0f244f1ee
Vectorize Goldilocks with AVX2 (#241)
* Start work on vectorized Goldilocks

* Vectorized Goldilocks

* Unused import warning
2021-09-13 17:42:25 -07:00
Daniel Lubarov
b3008b9475
Some changes to generator_indices_by_watches (#234)
* Some changes to generator_indices_by_watches

- Index generators by the representatives (in disjoint-set forest terminology) of their watched targets, rather than the watched targets themselves.  Enqueuing generators based on their watch lists then works correctly, so we no longer need the step where we reenqueue all generators.
- In #195, it was pointed out that this slows down witness generation a bit. I moved the indexing code to preprocessing, so the prover is a bit faster (~7ms for me).

* Outdated comment

* Panic instead of infinite loop if we get stuck

* BTree

* fmt
2021-09-13 16:38:55 -07:00
Jakub Nabaglo
de1d5d0ad2
Minor: fix a few warnings (#239)
* Minor: fix a few warnings

* Lints
2021-09-13 15:42:59 -07:00
Jakub Nabaglo
9ef784a99d
Poseidon: vectorized MDS matrix multiplication (NEON) (#231)
* Port of AVX2 MDS impl

* Bugfixes

* Inline ASM to the rescue

* remove debug printsln + minor formatting

* Work around NEON intrinsic bug without inline ASM

* Minor error in doc

* Daniel comments

* More Daniel comments

Co-authored-by: Jakub Nabaglo <jakub@mirprotocol.org>
2021-09-13 12:36:06 -07:00
Jakub Nabaglo
6465e35e1f
Poseidon: vectorized MDS matrix multiplication (AVX2) (#229)
* Poseidon: vectorized MDS matrix multiplication

* Lints

* This is a bit cleaner

* More cleanup

* Width 12

* Replace the unaligned load trick with something nicer

* Simplify conversion between CrandallField and u64

* Make things more concise with const generics

* Minor documentation

* Minor: unused import

* Daniel comments + consistency with #230 + errors in docs

* Remove dependence on feature(stdsimd)

* Daniel comments
2021-09-13 11:46:36 -07:00