Changelog¶
0.8.0 (unreleased)¶
0.7.0 (2021-06-01)¶
New¶
Changes¶
obake now requires mp++ >= 0.23 (#139).
Continue moving code from the headers into the compiled part of the library (#134).
BREAKING: obake is now based on C++20, and the minimum CMake version has been bumped up to 3.12. As a consequence, obake now requires GCC >= 9, clang >= 11 and MSVC >= 2019 (#128).
BREAKING: the implementation of
packed_monomial
andd_packed_monomial
has changed: now when specifying the desired exponent type, onlystd::(u)int32_t
andstd::(u)int64_t
are supported, and using other integral types (e.g.,long
,unsigned long long
, etc.) may lead to compile-time errors, depending on howstd::(u)int32_t
andstd::(u)int64_t
are implemented on the target platform (#125).BREAKING:
d_packed_monomial
is now specified in terms of the number of exponents to be packed in a single integer rather than the bit width assigned to each exponent (#125).The Kronecker packing code has been rewritten to avoid division and remainder operations, leading to a substantial performance uplift (#125).
Adopt a flyweight pattern for the representation of symbol sets in series (#124).
When building on Windows with
clang-cl
, obake now requires at least MSVC 2017. As a result, various limitations/workarounds originating from the need to support the MSVC 2015 standard library have been removed (#122).
0.6.0 (2020-06-12)¶
0.4.0 (2020-02-12)¶
New¶
Changes¶
Update Catch to the latest version, 2.11.1 (#107).
BREAKING: functions and type traits dealing with in-place arithmetic have been renamed (#106).
BREAKING: the
filter()
andtruncate_degree()
functions now operate in-place (#98).Various improvements to the overflow checking machinery for polynomial exponents (#94).
Fix¶
Fix a bug in the conversion operator for series (#99).
Fix an overflow detection bug in the dynamic packed monomial class (#94).
Many MSVC fixes/improvements, including support for the latest MSVC builds in C++20 mode with concepts (#50). Many thanks to 7ofNine!
Various cleanups and build system fixes/improvements (#103, #100, #99, #98, #97, #96, #93, #92, #90).