mirror of
https://github.com/arnaucube/ark-r1cs-std.git
synced 2026-01-20 20:31:28 +01:00
6.6 KiB
6.6 KiB
CHANGELOG
Pending
Breaking changes
- #121
- Refactor
UInt{8,16,64,128}into one structUInt. - Remove
bitsmodule. - Use
std::opstraits forUIntandBoolean.
- Refactor
- #134 Add
Mul<NonnativeFieldVar>bounds and impls forCurveVar. - #135
- Rename
NonNativeFieldVartoEmulatedFpVar. - Rename
fields::nonnativetofields::emulated_fp. - Rename
fields::nonnative::{Allocated}NonNativeMulResultVartofields::emulated_fp::{Allocated}MulResultVar.
- Rename
- #136
- Rename
ToBytesGadget::to_{non_unique_}bytes→ToBytesGadget::to_{non_unique_}bytes_in_le.
- Rename
Features
- #136
- Add
{BitAnd,BitOr,BitXor,BitAndAssign,BitOrAssign,BitXorAssign}<T> for UInt<N, T, F>. - Add
UInt::rotate_{left,right}_in_place. - Add
{Boolean,UInt}::not_in_place. - Add
UInt::{from_bytes_le, from_bytes_be, to_bytes_be}.
- Add
- #143
- Add
AllocVar::new_variable_with_inferred_mode.
- Add
Improvements
Bug Fixes
0.4.0
- #117 Fix result of
precomputed_base_scalar_mul_leto not discard previous value. - #124 Fix
scalar_mul_leconstraints unsatisfiability when short Weierstrass point is zero. - #127 Convert
NonNativeFieldVarconstants to little-endian bytes instead of big-endian (ToBytesGadget). - #133 Save 1 constraint in
FpVar::{is_eq, is_neq}by removing the unnecessary booleanity check.
Breaking changes
- #86 Change the API for domains for coset.
Features
- #84 Expose
short_weierstrass::non_zero_affinemodule and implementEqGadgetforNonZeroAffineVar. - #79 Move
NonNativeFieldVarfromark-nonnativetoark-r1cs-std. - #76 Implement
ToBytesGadgetforVec<UInt8>. - nonnative/#45 Add
new_witness_with_le_bitswhich returns the bits used during variable allocation.
Improvements
Bug Fixes
- #101 Fix
is_zerofor twisted Edwards curves. - #86 Make result of
query_position_to_cosetconsistent withark-ldt. - #77 Fix BLS12
G2PreparedGadget'sAllocVarwhen G2 uses a divisive twist.
v0.3.1
Features
- #71 Implement the
Sumtrait forFpVar. - #75 Introduce
mul_by_inverse_uncheckedforFieldVar. This accompanies the bug fix in #70.
Bug Fixes
- #70 Fix soundness issues of
mul_by_inversefor field gadgets.
v0.3.0
Breaking changes
- #60 Rename
AllocatedBittoAllocatedBoolfor consistency with theBooleanvariable. You can update downstream usage withgrep -rl 'AllocatedBit' . | xargs env LANG=C env LC_CTYPE=C sed -i '' 's/AllocatedBit/AllocatedBool/g'. - #65 Rename
Radix2Domaininr1cs-stdtoRadix2DomainVar. - nonnative/#43 Add padding to allocated nonnative element's
to_bytes.
Features
- #53 Add univariate evaluation domain and Lagrange interpolation.
Improvements
- #65 Add support for non-constant coset offset in
Radix2DomainVar.
Bug Fixes
v0.2.0
Breaking changes
- #12 Make the output of the
ToBitsGadgetimpl forFpVarfixed-size - #48 Add
Clonetrait bound toCondSelectGadget.
Features
Improvements
- #5 Speedup BLS-12 pairing
- #13 Add
ToConstraintFieldGadgettoProjectiveVar - #15, #16 Allow
csto beNonewhen converting a Montgomery point into a Twisted Edwards point - #20 Add
CondSelectGadgetimpl forUInts - #22 Reduce density of
three_bit_cond_neg_lookup - #23 Reduce allocations in
UInts - #33 Speedup scalar multiplication by a constant
- #35 Construct a
FpVarfrom bits - #36 Implement
ToConstraintFieldGadgetforVec<Uint8> - #40, #43 Faster scalar multiplication for Short Weierstrass curves by relying on affine formulae
- #46 Add mux gadget as an auto-impl in
CondSelectGadgetto support random access of an array
Bug fixes
- #8 Fix bug in
three_bit_cond_neg_lookupwhen using a constant lookup bit - #9 Fix bug in
short_weierstrass::ProjectiveVar::to_affine - #29 Fix
to_non_unique_bytesforBLS12::G1Prepared - #34 Fix
mul_by_inversefor constants - #42 Fix regression in
mul_by_inverseconstraint count - #47 Compile with
panic='abort'in release mode, for safety of the library across FFI boundaries - #57 Clean up
UIntdocs
v0.1.0
Initial release