117 Commits

Author SHA1 Message Date
Ben Edgington
b21d13684b
Consolidate header files (#14)
* Consolidate header files

User should now need only include c_kzg.h and bls12_381.h.

* Update README
2021-07-09 13:35:19 +01:00
Ben Edgington
ca1acf61d6 Fix up docs (include static functions) 2021-07-09 09:54:37 +01:00
Ben Edgington
1f2c946ce8
Merge pull request #12 from Nashatyrev/fix/double-include-guard
Add double header include guard for kzg_proofs.h
2021-07-09 06:26:15 +01:00
Ben Edgington
e8b140a88b
Comment end of #if 2021-07-09 06:23:35 +01:00
Ben Edgington
13d523a079
Merge pull request #13 from benjaminion/testing_refactor
Refactor unit testing
2021-07-09 06:19:35 +01:00
Anton Nashatyrev
1712cd83bb Add newline at the end of file 2021-07-08 17:59:32 +03:00
Anton Nashatyrev
0c8c174a31 Add double header include guard for kzg_proofs.h 2021-07-08 17:58:15 +03:00
Ben Edgington
f6b1d0ff57 Refactor unit testing 2021-07-03 13:55:54 +01:00
Ben Edgington
144d81b2c1 Fix up documentation 2021-07-03 11:45:39 +01:00
Ben Edgington
27bde1aff7 Fix initial stride in das_fft_extension 2021-07-03 10:50:56 +01:00
Ben Edgington
958dc1aee7 Minor tweaks and add a unit test 2021-07-03 09:37:20 +01:00
Anton Nashatyrev
fc641a2197 Add fr_to_uint64s() function 2021-07-02 14:48:36 +03:00
Ben Edgington
ba81164330
Implements fast division for long divisors (#7) 2021-06-28 12:42:14 +01:00
Ben Edgington
244bfe8740 Add ASSERT macro 2021-06-24 16:22:37 +01:00
Ben Edgington
2cf8782e91 Add length check for polynomial commitment 2021-06-23 11:51:50 +01:00
Ben Edgington
37021b9653 Use Blst's multiscalar multiplication for commitments 2021-06-22 19:52:44 +01:00
Anton Nashatyrev
7f8b81717d
Add KZG_CFLAGS env var to compiler options for passing additional compiler options (#6)
* Add KZG_CFLAGS env var to compiler options for passing additional compiler options
2021-06-14 13:00:17 +01:00
Ben Edgington
32becfefcf
Change the primitive root from 5 to 7 (#5) 2021-06-11 14:22:47 +01:00
Anton Nashatyrev
9e4cfa4325 Move specific include dir to Makefile from .h 2021-06-10 18:52:36 +03:00
Ben Edgington
0924f243b4 Simplify reduction loop 2021-04-28 19:56:22 +01:00
Ben Edgington
f25ada5ea9 Micro-optimisation 2021-04-20 12:28:30 +01:00
Ben Edgington
e7b4e9f06d Rename shift_poly to scale_poly 2021-03-08 12:06:25 +00:00
Ben Edgington
e9537b29a3 Fix benchmark 2021-03-06 13:17:07 +00:00
Ben Edgington
42013d27a0 Fix missing initialisation 2021-03-06 13:16:32 +00:00
Ben Edgington
5edef551f4 Test for division by zero 2021-03-06 13:15:57 +00:00
Ben Edgington
7d3d422005 Improve comments 2021-03-04 15:10:28 +00:00
Ben Edgington
9d1b622f21 Make zero poly work for large numbers of missing indices
Previously, like the Go code, calculating the zero polynomial would fail
for very lare numbers of missing indices. For example, 253 missing with
a domain size of 256 - this is where the number of partials flips from 4
to 5 and more working space is needed.

With this commit, the zero polynomial can be calculated right up to all
but one of the indices missing. The case with all indices missing
doesn't work as the return data is too large, but the solution is known
to be `x^width - 1` in case we need to know.
2021-03-03 21:51:32 +00:00
Ben Edgington
f09d1a70b2 Handle many missing (step 3) 2021-03-03 17:43:31 +00:00
Ben Edgington
8fbea3b3ef Handle many missing (step 2) 2021-03-03 11:48:56 +00:00
Ben Edgington
80af76581d Handle many missing (step 1) 2021-03-03 08:44:49 +00:00
Ben Edgington
e2cbccdc9d Start improving the docs 2021-03-01 11:39:18 +00:00
Ben Edgington
a28860ae39 Benchmarks for recover and zero_poly 2021-02-28 17:01:00 +00:00
Ben Edgington
79a9419791 Reduce memory usage 2021-02-28 17:00:05 +00:00
Ben Edgington
52e620467a Minor tweaks 2021-02-28 13:09:59 +00:00
Ben Edgington
2c22bb9dae Implement recovery from samples 2021-02-27 15:19:46 +00:00
Ben Edgington
345a16bf8a Remove in-place FFTs 2021-02-26 14:44:31 +00:00
Ben Edgington
a697775c4f Implement zero polynomial - passes tests, but could be tidier 2021-02-26 14:38:04 +00:00
Ben Edgington
5cc7ea488c Implement in-place FFTs for field elements 2021-02-22 21:36:43 +00:00
Ben Edgington
e2c74624d7 Add functions to allocate multi-dimensional arrays 2021-02-22 17:03:16 +00:00
Ben Edgington
3d6fd31610 Improve tests 2021-02-21 12:53:39 +00:00
Ben Edgington
159fc0024d Collect various utility functions into a separate file 2021-02-20 16:03:04 +00:00
Ben Edgington
7fd0899972 Cast void * to something before doing arithmetic on it 2021-02-20 15:26:16 +00:00
Ben Edgington
5bd6f1f6bc Implement DAS extension 2021-02-17 12:25:03 +00:00
Ben Edgington
39e190984f Change ASSERT to CHECK and always fail with C_KZG_BADARGS 2021-02-17 12:22:35 +00:00
Ben Edgington
f557f32ed1 Improve G1 multiplication time with Blst 2021-02-17 09:06:17 +00:00
Ben Edgington
c10e1f40f1 Tidy up include files 2021-02-16 19:42:27 +00:00
Ben Edgington
66c50a49b1 Groundwork for being able to use alternative BLS libraries 2021-02-16 18:13:20 +00:00
Ben Edgington
aec19b5eee Implement FK20 multi proofs 2021-02-15 20:48:16 +00:00
Ben Edgington
cfe5fa6e49 Revamp error handling and memory management 2021-02-14 14:20:03 +00:00
Ben Edgington
d22bbcca62 Introduce new_ prefix for functions that allocate memory 2021-02-14 08:28:37 +00:00