Intx Versions Save

Extended precision integer C++ library

v0.10.1

11 months ago

Fixed

  • Fixed buggy __builtin_subcll in Xcode 14.3.1 on arm64. 294

v0.9.3

11 months ago

Fixed

  • Fixed buggy __builtin_subcll in Xcode 14.3.1 on arm64. 294

v0.10.0

1 year ago

Changed

  • C++20 is now required to use intx. #287 #290

v0.9.2

1 year ago

Changed

  • Increase tolerance to some compiler warnings (e.g. unknown pragma, unknown attribute) in case intx.hpp is used without CMake assistance. #286

v0.9.1

1 year ago

Fixed

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

v0.9.0

1 year ago

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

v0.8.0

2 years ago

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

v0.7.1

2 years ago

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

v0.7.0

2 years ago

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

v0.6.0

2 years ago

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