Skip to content

Releases: chfast/intx

intx 0.9.1

31 Jan 12:12
v0.9.1
f3b775f

Choose a tag to compare

Fixed

  • Fixed 32-bit Windows builds: the _umul128 intrinsic is not available there. #283

intx 0.9.0

13 Dec 17:31
v0.9.0
1e964da

Choose a tag to compare

Changed

  • Optimizations for GCC compiler. #279 #281
  • Required CMake version increased from 3.10 to 3.16 #276
  • Simplification of many operators declarations by using friend inline functions. #270 #271
  • Benchmarks updates and fixes. #274 #275 #277

intx 0.8.0

15 Mar 17:38
v0.8.0
58c0c7f

Choose a tag to compare

Added

  • Added support for big-endian architectures. #257
  • Extend endian-specific load/store helpers to work with builtin integer types. #265

Changed

  • The addc() and subc() have been optimized with compiler's builtins if available. #250 #251 #253
  • Fixed and enabled CI testing for architectures other than x86. #255
  • Small multiplication optimization. #261
  • Small division optimization. #263
  • Small comparison operators optimization for the uint256 type. #264

intx 0.7.1

15 Feb 12:31
v0.7.1
2f62de7

Choose a tag to compare

Fixed

  • Added support for bswap() of small unsigned types: uint8_t, uint16_t and uint32_t. Previously arguments where promoted to uint64_t what produced invalid results. #247

intx 0.7.0

17 Dec 13:26
v0.7.0
ceb8640

Choose a tag to compare

Changed

  • The int128.hpp and intx.hpp header files have been merged. Now the whole library is included in single intx/intx.hpp file. #242
  • The addmod() implementation has optimized path for elliptic curve context. #206
  • The implementation of operator== now explicitly performs XOR folding. #245

intx 0.6.0

25 Jun 11:41
v0.6.0
d41a3bc

Choose a tag to compare

Changed

  • The internal representation of unsigned integers has been changed to be an array of 64-bit words. This provides types composed of any number of words (e.g. uint384). Previously only power-of-two numbers of words were allowed. This is big change that affects implementation of many operators. #212 #213
  • Subtraction has been slightly rewritten to make it easier for compilers to optimize it. The performance now matches the addition. #189
  • Multiplication API has been cleaned up by using std::is_constant_evaluated-like helpers internally. #195 #205
  • Shift API has been changed to use uint64_t as shift amount on the fundamental API level. #202

intx 0.5.1

14 Dec 17:26
v0.5.1
0592ffe

Choose a tag to compare

Changed

  • The utility macros (e.g. INTX_UNREACHABLE()) have been redefined. #182
  • Test and benchmarks improvements. #175

intx 0.5.0

23 Jun 14:04
v0.5.0
732522a

Choose a tag to compare

Added

Changed

Removed

  • The unused builtins.h header has been deleted. #173

intx 0.4.0

21 Aug 19:13
v0.4.0
d041bb6

Choose a tag to compare

Added

  • Added the as_bytes() casting helper. [#106]

Changed

  • The endian-specific API for converting intx types to/from bytes has been reworked. [#107]
  • The clz() is now constexpr and produces correct answer for zero inputs. [#108]

intx 0.3.0

20 Jun 14:16
v0.3.0
b914a8a

Choose a tag to compare

Added

  • New addmod() and mulmod() procedures have been added for the uint256 type (#101).

Changed

  • Pedantic compiler warnings have been fixed (#98).
  • Performance of the division algorithm increased up to 40% when dividing 256-bit values by 128-bit and 64-bit ones (#99).