Releases: NethermindEth/int256
Releases · NethermindEth/int256
Release list
v1.7.0
What's Changed
- perf: accelerate 32-byte big-endian conversion on ARM64; add ARM CI by @kamilchodola in #102
- Avoid SIMD materialization in UInt256 constructors and factories by @kamilchodola in #105
- Optimize MultiplyMod by the maximum modulus by @kamilchodola in #106
- Optimize narrow 256x256-to-512-bit multiplication by @kamilchodola in #103
- Optimize UInt256.CompareTo with direct limb comparison by @kamilchodola in #107
- Optimize UInt256 division and modulus fast paths by @kamilchodola in #104
- Optimize UInt256 logical shifts with a portable funnel shift by @kamilchodola in #109
- Optimize UInt256 subtraction with speculative borrow propagation and a one-limb scalar path by @kamilchodola in #112
- Optimize UInt256 addition with speculative carry propagation and a one-limb scalar path by @kamilchodola in #108
- perf: spell out the software widening multiply by @LukaszRozmej in #113
- Dispatch UInt256.Multiply on limb shapes with inlined per-shape kernels and one 32-byte result store by @benaadams in #114
- Optimize Int256 negativity-only gates by @kamilchodola in #110
- Answer Mod without computing the quotient by @benaadams in #115
- Cover the remainder-only Mod kernels' rare Knuth paths by @LukaszRozmej in #116
- Bump version prefix from 1.6.0 to 1.7.0 by @kamilchodola in #117
Full Changelog: v1.6.0...v1.7.0
v1.6.0
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
- @kamilchodola made their first contribution in #84
- @maximmenshikov made their first contribution in #95
Full Changelog: v1.5.0...v1.6.0
v1.5.0
What's Changed
- Add AppContext switch to allow hash seed to be deterministic by @rubo in #79
- Optimize and harden GetHashCode with Aes by @benaadams in #83
Full Changelog: v1.4.0...v1.5.0
v1.4.0
What's Changed
- Add comprehensive GitHub Copilot instructions for int256 repository onboarding by @Copilot in #54
- Fix avx512 multiply and optimize by @benaadams in #56
- Optimize Lessthan by @benaadams in #57
- Test on all OS by @benaadams in #59
- Optimize add by @benaadams in #58
- Add Vector256 path to lessthan by @benaadams in #60
- Optimize Multiply further by @benaadams in #61
- Remove unused r properties by @benaadams in #63
- Improve benchmarks by @benaadams in #64
- Faster benchmarks, sp fixes by @benaadams in #65
- Use correct Vector acceleration check by @benaadams in #66
- Increase tests by @benaadams in #67
- Improve benchmarks (remove == shortcuts) by @benaadams in #68
- Better divide benchmark by @benaadams in #69
- Benchmarks (better Avx512/Avx2/None) measurements by @benaadams in #70
- Implement INumber interfaces for UInt256 and Int256 by @Copilot in #62
- Revert "Implement INumber interfaces for UInt256 and Int256 (#62)" by @benaadams in #71
- Benchmarks add disable Avx2 by @benaadams in #72
- Improve Testing Matrix by @benaadams in #74
- Improve Divide and AddMod by @benaadams in #73
- Improve Exp performance by @benaadams in #75
- Tweaks by @benaadams in #76
- Faster BigEndian parsing by @benaadams in #77
- CompareTo in overload by @benaadams in #78
- Improve Mulmod perf by @benaadams in #80
- Update version prefix to 1.4.0 by @benaadams in #81
New Contributors
- @Copilot made their first contribution in #54
Full Changelog: v1.3.6...v1.4.0
v1.3.6
What's Changed
- Less branchy Udivrem by @Scooletz in #51
- Use native ulong shifts when custom shift is not needed by @Hyodar in #50
- Increase tests by @benaadams in #52
New Contributors
Full Changelog: v1.3.5...v1.3.6
v1.3.5
v1.3.4
v1.3.3
What's Changed
- Allow input params as output params by @benaadams in #44
Full Changelog: v1.3.2...v1.3.3
v1.3.2
v1.3.1
What's Changed
- Improve AddImpl and SubtractImpl with Avx512 by @benaadams in #41
- Add fast Add, Multiply for numbers less than 2^64 by @benaadams in #42
Full Changelog: v1.3.0...v1.3.1