winderica
1f50d52a5f
Add convenient method for variable allocation with inferred mode
...
This closes #141 .
2024-04-02 05:54:21 +08:00
Pratyush Mishra
4020fbc226
Add convenience impls for common types ( #137 )
...
* Work
* Tweak
* Fmt
* Work
* Format + typo fixes
* `no-std` fix
2024-01-27 09:58:26 +01:00
Pratyush Mishra
a12499518c
Add back ToBytesGadget and ToBitsGadget to prelude ( #136 )
2024-01-06 13:51:55 -08:00
Pratyush Mishra
d011859416
Refactor UInt{8,16,64,128} into one struct UInt ( #121 )
2024-01-03 05:23:54 -08:00
winderica
3cb9fdef00
FpVar::{is_eq, is_neq} only need two constraints (#133 )
...
Co-authored-by: Pratyush Mishra <pratyush795@gmail.com >
2023-12-28 10:40:12 -08:00
Pratyush Mishra
ed2d55e6ff
Rename NonNativeFieldVar -> EmulatedFpVar ( #135 )
2023-12-28 10:14:08 -08:00
Pratyush Mishra
1ff3a902bd
Add Mul<NonNativeFieldVar> for Group ( #134 )
2023-12-27 19:07:35 -08:00
Chris Sosnin
2ca3bd7d97
convert nonnative constant to little endian ( #127 )
2023-08-31 09:10:39 -04:00
Chris Sosnin
7693d58690
Handle zero-case in group scalar multiplication ( #124 )
...
Co-authored-by: Pratyush Mishra <pratyushmishra@berkeley.edu >
2023-08-19 13:51:58 -07:00
Chris Sosnin
f58b7b797b
alloc zero points consistently ( #126 )
...
Co-authored-by: Pratyush Mishra <pratyushmishra@berkeley.edu >
2023-08-19 13:43:52 -07:00
Michele Orrù
529c8dc29e
Import AdditiveGroup. ( #122 )
...
Co-authored-by: mmagician <marcin.gorny.94@protonmail.com >
Co-authored-by: Pratyush Mishra <pratyushmishra@berkeley.edu >
2023-08-19 12:53:45 -07:00
Pascal Berrang
b477880a3b
Fix base scalar multiplication ( #117 )
2023-03-23 14:53:45 -07:00
Tom Godden
69003c80d4
Fix for add_many (issue #23 ) ( #113 )
...
Co-authored-by: Tom Godden <tgodden@vub.be >
Co-authored-by: mmagician <marcin.gorny.94@protonmail.com >
Co-authored-by: Pratyush Mishra <pratyushmishra@berkeley.edu >
2023-01-19 17:01:05 -08:00
mmagician
d4edfb6e15
Prepare release 0.4 ( #109 )
...
* 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 6b3ba6a5e98ea2055222d459d84d49eab7a98d47.
* 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 >
2022-12-28 16:04:33 +01:00
onewayfunc
38b0057319
Constant tobytes of Fp is in the wrong direction ( #108 )
2022-10-30 15:03:44 -07:00
onewayfunc
f30b173d0d
Sync with ark-algebra: change the location of BitIteratorBE ( #107 )
...
* revert
* fix
2022-10-29 10:57:37 -07:00
Pratyush Mishra
4fbdc2b6a5
identity -> zero for Affine
2022-09-09 16:39:19 -07:00
Weikeng Chen
f2e53be88e
Montgomery cannot use TE affine as intermediate representations ( #103 )
...
* debug
* test
* use mont
* reduce the delta
Co-authored-by: onewayfunc <onewayfunc@gmail.com >
2022-09-03 21:22:22 -07:00
Weikeng Chen
2416780e0f
Fix dangling batch normalization for twisted Edwards curves ( #102 )
...
* 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 >
2022-09-03 20:26:17 -07:00
Weikeng Chen
6b1cfd5396
Fix is_zero for twisted Edwards curves ( #101 )
...
* fix the te is_zero
* update CHANGELOG
Co-authored-by: onewayfunc <onewayfunc@gmail.com >
2022-09-03 19:20:07 -07:00
mmagician
6512e48540
Use 2-NAF for representing ATE_LOOP_COUNT in MNT Miller loop ( #96 )
...
* 2-NAF for MNT pairings
* Apply suggestions from code review
* Apply suggestions from code review
* fix
* no std
* patch
* ci
Co-authored-by: Weikeng Chen <w.k@berkeley.edu >
Co-authored-by: onewayfunc <onewayfunc@gmail.com >
2022-09-03 00:15:45 -07:00
Weikeng Chen
db6a3d6687
Let cargo build work again for the new arkworks-rs algebra ( #97 )
...
* pr
* reduce test time
2022-08-21 20:10:14 -07:00
Michele Orrù
6d64f379a2
Fix with latest arkworks version. ( #95 )
...
Co-authored-by: Pratyush Mishra <pratyushmishra@berkeley.edu >
2022-08-01 10:15:17 -07:00
Alex Ozdemir
4e1e8d048d
Publicize non-zero weierstrass affine variables ( #84 )
...
Co-authored-by: Marcin <marcin.gorny.94@protonmail.com >
Co-authored-by: Pratyush Mishra <pratyushmishra@berkeley.edu >
2022-03-08 00:43:32 -08:00
Weikeng Chen
b7874406ec
Upgrade to work with latest ark-ff ( #90 )
...
Co-authored-by: Sun <huachuang20@gmail.com >
Co-authored-by: Pratyush Mishra <pratyushmishra@berkeley.edu >
2022-03-07 14:25:06 -08:00
Tom Shen
986ab20ac0
Minor Bug Fix ( #87 )
2021-12-22 18:13:42 -08:00
Tom Shen
1f56c46edc
Bug Fix in domain and API changes ( #86 )
...
* 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 >
2021-12-07 11:47:05 -08:00
Pratyush Mishra
1cf947c761
Merge nonnative ( #79 )
...
Co-authored-by: Nicholas Ward <npward@berkeley.edu >
Co-authored-by: Pratyush Mishra <pratyushmishra@berkeley.edu >
Co-authored-by: Weikeng Chen <w.k@berkeley.edu >
Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com >
Co-authored-by: Daira Hopwood <daira@jacaranda.org >
Co-authored-by: William Lin <31808623+Will-Lin4@users.noreply.github.com >
Co-authored-by: Dev Ojha <dojha12@gmail.com >
Co-authored-by: Alex Ozdemir <aozdemir@hmc.edu >
2021-08-11 11:12:52 -07:00
Weikeng Chen
a2a5ac491a
Fix BLS12 G2PreparedGadget's AllocVar with a divisive twist ( #77 )
...
* fix
* tidy up Cargo; add changelog
* fix nostd
* removal of the test
* fmt
2021-08-11 04:05:13 -07:00
Pratyush Mishra
b6e7e94521
Introduce mul_by_inverse_unchecked, and use it ( #75 )
2021-07-15 16:39:34 -07:00
Pratyush Mishra
65faa3e699
impl ToBytesGadget for Vec<UInt8> (#76 )
2021-07-12 12:04:22 -07:00
Weikeng Chen
47ddbaa411
Enforce mul_by_inverse ( #70 )
...
* proposal to fix mul_by_inverse
* update CHANGELOG
* rollback to a secure impl
* update changelog
2021-07-06 02:39:48 -07:00
Weikeng Chen
1ad210462c
Implement the Sum trait for FpVar ( #71 )
...
* impl sum for fpvar
* fmt
* grammar
* update the CHANGELOG
2021-07-04 12:38:05 -07:00
Weikeng Chen
3871781225
For reference, add a test for non-zero-affine ( #69 )
...
* add a test for non-zero-affine for reference
* add some doc
2021-07-02 16:52:06 -07:00
Tom Shen
c3a99ac3f6
Let Radix2Domain::offset to be FpVar instead of F ( #65 )
...
* 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 >
2021-06-06 12:56:30 -07:00
Dev Ojha
02ee91d61b
Use batch_inversion_and_mul within native lagrange interpolation ( #63 )
2021-05-10 15:11:09 -07:00
Tom Shen
989f579ca8
Add Univariate Domain, Vanishing Polynomial, Lagrange Interpolation ( #53 )
...
* add domain and vp
* add lagrange interpolator
* add query position to coset
* nostd
* add test assertion
* fmt
* fix test
* add Add and Sub arithmetic
* add Add and Sub arithmetic
* add unit test for mul/div arithmetic
* add more doc for clarification
* add test for native interpolate
* add test for vp constraints
* fix lagrange interpolate bug
* comment cleanup + fmt
* add CHANGELOG
* fix a compile error
* Update CHANGELOG.md
* Update CHANGELOG.md
* fix comment
* doc fix
* doc update 2
* doc update 3
* pub lagrange_interpolator
* doc fix
* rename `EvaluationDomain` to `Radix2Domain`
* tweak
* tweak
Co-authored-by: weikeng <w.k@berkeley.edu >
2021-05-10 14:12:28 -05:00
Dev Ojha
5debc6f8f1
Rename AllocatedBit to AllocatedBool ( #60 )
...
* Rename AllocatedBit to AllocatedBool
* Update Changelog
* Fix independent fmt issues
2021-04-09 18:09:18 -05:00
Pratyush Mishra
736b552720
Fix
2021-03-24 14:00:57 +03:00
Pratyush Mishra
53b2ac48fa
Fix UInt docs
2021-03-24 14:00:57 +03:00
Elder Ryan
a1e72154bf
fixed link format ( #54 )
2021-02-21 08:58:59 -08:00
Tom Shen
09f3613aac
Add DensePolynomialVar ( #50 )
...
* add folder structures similar to `ark-poly`
* add evaluate impl for DensePolynomialVar
* add tests
* fix no-std
* use ark_std::rand instead of SeedableRng
* add changelog
Co-authored-by: Weikeng Chen <w.k@berkeley.edu >
2021-02-04 17:12:23 -08:00
Weikeng Chen
b741ffc33d
replace rand with ark_std::rand and drop rand_xorshift ( #51 )
2021-02-04 14:24:29 -08:00
Tom Shen
05fee34686
Add Mux gadget ( #48 )
2021-02-04 13:52:29 -08:00
Kobi Gurkan
a8f737bf26
Fix boolean or comment ( #44 )
2021-01-27 00:46:13 -08:00
Pratyush Mishra
d9e0200433
Improve handling of constant bits in scalar mul for SW curves ( #43 )
...
* 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 >
2021-01-22 14:55:55 -08:00
Pratyush Mishra
5e4114b19c
Better scalar multiplication for Short Weierstrass curves ( #40 )
...
Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com >
Co-authored-by: Pratyush Mishra <pratyushmishra@berkeley.edu >
2021-01-15 13:18:26 -08:00
Dev Ojha
f88d7c6ea3
Make mul_by_inverse use one constraint ( #42 )
...
Co-authored-by: Pratyush Mishra <pratyushmishra@berkeley.edu >
2021-01-15 10:55:26 -08:00
William Lin
2432ff4f88
Implement ToConstraintFieldGadget for Vec<UInt8> ( #36 )
...
* Implement ToConstraintFieldGadget for Vec<UInt8>
* Add documentation and implementation for slice
* Update documentation
2021-01-11 23:56:40 -08:00
Pratyush Mishra
20bd452cd9
Construct FpVar from bits ( #35 )
2021-01-11 16:24:39 -08:00