Commit Graph

336 Commits

Author SHA1 Message Date
Ramana Kumar a7eea8b533
Start on a 4844 minimal interface
The object files to implement this are not correct in the Makefile.
The files probably need to be split more carefully to separate 4844
things from the rest.
2022-09-19 23:18:42 +01:00
Ramana Kumar 63fc842d6d
Make y const in check_proof_single 2022-09-19 23:17:28 +01:00
Dankrad Feist 1e41ed4d36
Test equivalence with py_ecc 2022-09-19 19:56:43 +01:00
Ramana Kumar cc049a05ca
Fix some whitespace issues 2022-09-19 19:49:11 +01:00
Ramana Kumar c0aa4eb2cc
Add fr_vector_lincomb function 2022-09-19 19:47:16 +01:00
Ramana Kumar bd65d49ffd
Check the proof fails on wrong data 2022-09-19 15:40:18 +01:00
Ramana Kumar 80b1c973cf
Make the tests the default make target 2022-09-19 15:40:18 +01:00
Ramana Kumar 701da680ce
Add tests of prove and verify 2022-09-19 15:40:18 +01:00
Ramana Kumar 968b099dab
Treat bool specially, avoid allocation
Because bool as a PyObject won't have a normal destroy operation
2022-09-19 15:40:18 +01:00
Ramana Kumar 306dcf5bac
Assume word size is 64
Avoids incompatible pointer type warnings on my system.
Ideally this would be sensitive to the host.
2022-09-19 15:40:18 +01:00
Ramana Kumar 43d54b8154
Add some comments to Python file, rename to tests 2022-09-19 15:40:18 +01:00
Ramana Kumar 9aa1dc289f
Compare result to Python evaluation 2022-09-19 15:40:17 +01:00
Ramana Kumar 8e5209c491
Work example up to evaluating a poly_l 2022-09-19 15:40:17 +01:00
Ramana Kumar 560127f1f5
Add some rudimentary Python access + example 2022-09-19 15:40:17 +01:00
Ramana Kumar cd404dbb0a
Add array_class for fr_arrays 2022-09-19 15:40:17 +01:00
Ramana Kumar 8eb99bcc96
Initial attempt to swig for python 2022-09-19 15:40:15 +01:00
Dankrad Feist 67c6a61a18
Fix compiler warnings in zero_poly.c 2022-09-18 12:20:39 +01:00
Dankrad Feist 928e9360c0
Add docs for compute_proof_single_l 2022-09-18 12:16:35 +01:00
Dankrad Feist 56f40fdfcf
Fix documentation for compute_proof_multi 2022-09-18 12:14:54 +01:00
Ramana Kumar 25be720f62
Add some documentation 2022-09-18 09:51:55 +01:00
Ramana Kumar 8cdc4e62e3
Remove some trailing whitespace 2022-09-18 08:59:32 +01:00
Dankrad Feist 80b256ad5f
Use batch inversion for Lagrange commitment 2022-09-17 23:25:21 +01:00
Dankrad Feist a2a4e57622
Lagrange proof bench 2022-09-17 18:34:59 +01:00
Ramana Kumar f7053514b3
Free temporary arrays 2022-09-17 18:21:56 +01:00
Dankrad Feist dcf68949b3
Optimized eval_poly_l with batch inversion 2022-09-17 18:00:54 +01:00
Ramana Kumar 4c8787d87b
Fix fr_batch_inv 2022-09-17 17:06:54 +01:00
Dankrad Feist 9c36ca4f3d
WIP: Montgomery batch inversion 2022-09-17 16:24:14 +01:00
Ramana Kumar 3aff3eb727
Implement proof for Lagrange at a root of unity 2022-09-17 13:05:12 +01:00
Ramana Kumar c4537ccdae
Make y a parameter of compute_proof_single_l 2022-09-17 11:00:13 +01:00
Ramana Kumar 3d286c6050
Add proof_single_l to tests 2022-09-17 10:59:39 +01:00
Ramana Kumar 94c7bb56cf
Add another test at a different poly_l and root 2022-09-17 10:53:25 +01:00
Ramana Kumar 10bff7d5c8
Fix eval_poly_l for evaluation at a root
Move the TODO for the special formula to compute_proof_single_l
2022-09-17 10:49:04 +01:00
Ramana Kumar f2454c284c
Add barycentric benchmark to Makefile 2022-09-17 09:27:41 +01:00
Dankrad Feist 30f5911e14
Benchmark for barycentric formula 2022-09-17 09:20:08 +01:00
Dankrad Feist 279eb5b514
Add TODO for barycentric formula special case 2022-09-17 07:23:00 +01:00
Ramana Kumar 12c3cb7645
Remove tmp2
This is possible assuming the fr_ ops don't need to read their inputs
after writing to their output.
2022-09-16 15:16:12 +01:00
Ramana Kumar 8eda02ab72
Remove tmp3 and unnecessary op 2022-09-16 15:16:12 +01:00
Ramana Kumar 509e75b1d5
Add new_poly_l to interface 2022-09-16 15:16:11 +01:00
Ramana Kumar f7aa56679b
Remove unused variable 2022-09-16 15:16:11 +01:00
Ramana Kumar c8b18c3a22
Free allocated coeffs, avoid leak 2022-09-16 15:16:11 +01:00
Dankrad Feist 0861520a7e
Test for proofs computed in Lagrange form 2022-09-16 15:16:11 +01:00
Ramana Kumar 7f1a25bbc5
First pass at compute_proof_single_l 2022-09-16 15:16:11 +01:00
Ramana Kumar 15f2b9eef9
Add evaluation of Lagrange poly 2022-09-16 15:16:11 +01:00
Ramana Kumar 56e0769ce4
Add Lagrange form, with a test 2022-09-16 15:16:11 +01:00
Dankrad Feist 6b5140af66
Fixed test for check_proof_multi 2022-09-16 15:15:58 +01:00
Ramana Kumar 9bd8c3fdf8
Change coset_scale in test proof_multi 2022-09-15 13:35:02 +01:00
Ramana Kumar f2f20141db
Stop adding one to secrets_len 2022-09-15 13:33:17 +01:00
Ramana Kumar fa80d94168
Add newlines at ends of some files 2022-09-15 13:32:08 +01:00
Anton Nashatyrev 63612c1119
Fix toeplitz_coeffs_stride() for minimal sized poly (#18)
Fix an edge case in FKMulti when the chunk length was the same as the polynomial size, resulting in writing outside the return array in `toeplitz_coeffs_stride()`.

Co-authored-by: Ben Edgington <ben@benjaminion.xyz>
2021-08-20 16:07:16 +01:00
Anton Nashatyrev 350a961b90
Fix condition check (#17) 2021-08-11 11:13:08 +01:00