Skip to content

v1.6.0

Choose a tag to compare

@rubo rubo released this 31 Jul 17:42
· 19 commits to main since this release
526bdee

What's Changed

  • Optimize parsing, ExpMod, and MulMod by 64-bit modulus by @kamilchodola in #84
  • perf: split SIMD fast paths into inlinable helpers by @maximmenshikov in #95
  • ADDMOD: skip wasted DivRems in the 64-bit-modulus reduction for small sums by @kamilchodola in #93
  • Int256: top-bit sign test in operator<, limb-based IsZero/IsOne (EVM SLT/SGT path) by @kamilchodola in #97
  • LT/GT: route LessThan to scalar on non-AVX-512 (keep the AVX-512 path) by @kamilchodola in #91
  • Optimize scalar UInt256 multiplication by @kamilchodola in #99
  • Improve UInt256 hash performance by @benaadams in #100
  • Optimize MultiplyMod: reuse div remainder in Knuth reduction (-27% to -37%) by @benaadams in #101
  • Make (UInt256)BigInteger cast allocation-free by @kamilchodola in #85
  • Speed up PaddedBytes with block writes instead of per-byte loop by @kamilchodola in #86
  • Vectorize UInt256.ToBigEndian(Span) for the 32-byte word by @kamilchodola in #92
  • ADDMOD: skip wasted reductions in the portable 64-bit-modulus remainder (zk guest / ARM path) by @kamilchodola in #96
  • Int256: AggressiveInlining hints for hot accessors by @kamilchodola in #90
  • Support standard and zkEVM variants in a single NuGet package by @maximmenshikov in #94

New Contributors

Full Changelog: v1.5.0...v1.6.0