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