* Bump the dependencies and remove patch
* temp remove dev-dependencies (until curves are published)
due to circular dev-dependencies
* bring back dev-dependencies
to be merged only after curves crates are released
* bump patch version
* fix
* use frobenius_map_in_place instead of frobenious_map
* temp remove dev dependencies
* chore: Release ark-r1cs-std version 0.4.0-alpha.2
* Revert "temp remove dev dependencies"
This reverts commit 6b3ba6a5e9.
* fix test import after curves have a new version
* chore: Release ark-r1cs-std version 0.4.0-alpha.3
Co-authored-by: onewayfunc <onewayfunc@gmail.com>
* push
debug
see if gens are broken
see if we can find why
test
copy
copy
normalize-batch
remove debug
remove debug
remove debug
make it similar
* consistency
* type
Co-authored-by: onewayfunc <onewayfunc@gmail.com>
* Bug Fix in `domain` and API changes
Currently, `domain.query_position_to_coset` is not consistent native code in `ark-ldt`. This commit does the following changes:
* change `query_position_to_coset` to `query_position_to_coset_elements`, and make the return result consistent with native code
* add function `query_position_to_coset` to just return generator and offset instead of coset elements. This is useful when evaluating vanishing poly.
* minor bug fix
* update CHANGELOG
* `query_position_to_coset_elements` use `query_position_to_coset`
* Update CHANGELOG.md
Co-authored-by: Weikeng Chen <w.k@berkeley.edu>
* restructure code
* done
* add changelog
* add the changelog to mark this as a breaking change
* add the CHANGELOG
* tweak
* add `EqGadget`
* rename generate_interpolate_cache to generate_interpolation_cache
* address the comment
Co-authored-by: weikeng <w.k@berkeley.edu>
* We add a double_and_add method that computes 2 * self + other more
efficiently than just doubling + addition; this is not used anywhere
yet, but I am planning on fiddling with it to see if we can leverage
it somehow. (See zcash/zcash#3924 for details)
* We handle constant scalars better:
* We skip the most-significant constant zeroes to avoid unnecessary
doubling
* When intermediate bits of the scalar are constants, instead of
conditionally adding, we directly use the value of the bit to
decide whether to add or not.
Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: weikeng <w.k@berkeley.edu>
* When a group element is a constant, precompute multiples of powers of two, and perform simple conditional additions (no doubling!).
* For short weierstrass curves, addition with a constant now uses mixed addition, which results in lower constraint weight.
* For short weierstrass curves, scalar multiplication now uses mixed addition, saving 1 constraint per bit of the scalar, along with lower constraint weight (at the cost of a small constant number of constraints to check for edge cases)