intx

Extended precision integer C++ library

APACHE-2.0 License

Stars
123

Bot releases are visible (Hide)

intx - intx 0.10.1 Latest Release

Published by chfast over 1 year ago

Fixed

  • Fixed buggy __builtin_subcll in Xcode 14.3.1 on arm64. 294
intx - intx 0.9.3

Published by chfast over 1 year ago

Fixed

  • Fixed buggy __builtin_subcll in Xcode 14.3.1 on arm64. 294
intx - intx 0.10.0

Published by chfast over 1 year ago

Changed

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

Published by chfast over 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
intx - intx 0.9.1

Published by chfast over 1 year ago

Fixed

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

Published by chfast almost 2 years 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
intx - intx 0.8.0

Published by chfast over 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
intx - intx 0.7.1

Published by chfast over 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
intx - intx 0.7.0

Published by chfast almost 3 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
intx - intx 0.6.0

Published by chfast over 3 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
intx - intx 0.5.1

Published by chfast almost 4 years ago

Changed

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

Published by chfast over 4 years ago

Added

Changed

Removed

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

Published by chfast about 5 years ago

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 - intx 0.3.0

Published by chfast over 5 years ago

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).
intx - intx 0.1.0

Published by chfast over 5 years ago

intx - intx 0.2.0

Published by chfast over 5 years ago