Releases: cppalliance/decimal
Releases · cppalliance/decimal
v5.2.0
What's Changed
- Update backend by @mborland in #995
- Add Cmake pkg-config support by @mborland in #996
- Fuzz {fmt} and
<format>
by @mborland in #998 - Fix modules support by @mborland in #1000
- Fix
to_chars
for 0 in general format by @mborland in #1003 - Merge performance changes from cppalliance/int128 by @mborland in #1005
- Test and fix
consteval to_chars
by @mborland in #1006 - Implement fast path of no precision scientific formatting by @mborland in #1012
- Fast path for unspecified precision fixed format
to_chars
by @mborland in #1013 - Add fast path for shortest length hex formatting by @mborland in #1016
- New
<charconv>
path bug fixes by @mborland in #1019 - Deprecate name of fenv header. Change to cfenv by @mborland in #1020
Full Changelog: v5.1.2...v5.2.0
v5.1.2
v5.1.1
What's Changed
- Test {fmt} using header only so it actually runs in CI by @mborland in #983
- Fix sign processing bug in
{fmt}
by @mborland in #987 - Fix to_chars rounding for 0.999... -> 1(.0000) by @mborland in #989
- Fix sign parsing with
<format>
by @mborland in #990 - Fix formatting support so that we can format into the middle of a string by @mborland in #992
Full Changelog: v5.1.0...v5.1.1
v5.1.0
What's Changed
- Add and document user facing normalization function by @mborland in #956
- Fix variable shadowing by @mborland in #957
- Update style of docs by @mborland in #958
- Fix escaping of C++ and punctuation by @mborland in #960
- Improve documentation on relevant headers by @mborland in #963
- Division Improvements for 64 and 128 bit types by @mborland in #964
- Expand the fast type explanation section by @mborland in #966
- Add formatting and printing examples by @mborland in #969
- Coverage Improvements by @mborland in #970
- Add user and automatic configuration macro to disable exceptions by @mborland in #972
- Improve coverage and fix
ceil
bug by @mborland in #974 - Fix significand being used for long double conversion for 128-bit types by @mborland in #976
- Fix duplicate symbols on some PPC64 platforms by @mborland in #978
- Small improvements and bug fix to equality implementation by @mborland in #979
- Fix
<format>
support for clang by @mborland in #982
Full Changelog: v5.0.0...v5.1.0
v5.0.0
This release address the review feedback from the first Boost review in January 2025, and many issues along the way.
BREAKING CHANGES include:
- Fixed internal encoding of IEEE 754 types based on various feedback and library comparisons
- Fast types now use fixed width integers internally instead of
std::uint_fastXX_t
reducing size on many platforms - All type names have been changed to better align with established practice:
decimalXX
is nowdecimalXX_t
decimalXX_fast
is nowdecimal_fastXX_t
- Header paths have changed similarly:
<boost/decimal/decimal32.hpp>
becomes<boost/decimal/decimal32_t.hpp>
- A new 128-bit integer backend is now used in computations, and in the backend of
decimal128_t
anddecimal_fast128_t
. This integer has different alignment (16 bytes) than the previous backend (8 bytes).
What's Changed
- Fix 32 and 64 bit encodings by @mborland in #914
- Fix decimal128 encoding and test against libbson (when available) by @mborland in #918
- Refactor int128 location by @mborland in #920
- Remove conversions to 8 and 16 bit integer types by @mborland in #921
- Add additional constraints to the constructors by @mborland in #922
- Move to Antora Based Documentation by @mborland in #924
- Address review documentation improvements by @mborland in #925
- 917 Part 1 (decimal32_fast) by @mborland in #926
- Fix boundary check in to_integer by @mborland in #928
- Fix
to_chars
fordecimal128
being disproportionally slower by @mborland in #929 - Rename types and add deprecation warnings to the old ones by @mborland in #930
- Remove duplicated test for infinity by @mborland in #931
- Update macOS performance documentation and benchmarks bug fixes by @mborland in #935
- Misc testing and doc improvements by @mborland in #936
- Handle unclear code from local metal benching by @ckormanyos in #937
- Misc doc improvements by @mborland in #939
- Change BID and DPD conversions default return types by @mborland in #941
- Update Linux Benchmarks and Add Intel Benchmarks by @mborland in #944
- Update x64 Windows Benchmarks in Docs by @mborland in #945
- Improve layout of benchmark documentation by @mborland in #946
- Replace internal fast types with fixed types by @mborland in #948
- Improve const correctness in library functions by @mborland in #949
- Merge branch 'develop' into local_metal_benching by @ckormanyos in #938
- Improve
const
correctness, comments, and large parameter passing by @mborland in #950 - Bugfixes for Intel Benchmarks and update docs with complete results by @mborland in #952
- Merge to Master for v5.0.0 by @mborland in #953
Full Changelog: v4.1.0...v5.0.0
v4.1.0
What's Changed
- Implement new U256 backend by @mborland in #899
- U256 integration by @mborland in #905
- Improve and fix digit counting by @mborland in #907
- Add fmtlib support by @mborland in #908
- Improve benchmarks and minor fixes by @mborland in #910
- Improve
decimal128_fast
multiplication performance by @mborland in #912
Full Changelog: v4.0.0...v4.1.0
v4.0.0
This release contains many of the issues that were reported during the review period in Jan of this year.
What's Changed
- Fix limits and printing of subnormal_min by @mborland in #796
- Move literals into namespace literals by @mborland in #809
- Fix narrowing in equality of mixed types by @mborland in #810
- Fix calculation of resultant digits to keep us in the range of
uint128
by @mborland in #812 - Remove
sprintf
and fix conceptual requirements for by @mborland in #813 - Make -0 = +0 by @mborland in #815
- Allow implicit widening between decimal types and keep explicit narrowing by @mborland in #816
- Allow separate header usage and test all includes by @mborland in #818
- Change values of fast nans and infs to reduce comparisons by @mborland in #820
- Fix
decimal128_fast
scalblnd
implementation by @mborland in #821 - Make
uint128
public since we return in a few places to the user by @mborland in #822 - Move concepts into detail namespace by @mborland in #847
- Remove decimal32 bool constructor by @mborland in #849
- Fix
nextafter
andnexttowards
by @mborland in #850 - Use delegating constructor for Integers by @mborland in #852
- Improve and document explicit conversion saturation by @mborland in #851
- Make powers of 10 calculations constexpr by @mborland in #853
- Increase ellint tolerances by @mborland in #855
- Test fixed zero with precision argument by @mborland in #860
- Replace usages of deprecated OS by @mborland in #861
- Document typedefs by @mborland in #862
- Reduce code duplication in 32 bit types by @mborland in #858
- Faster 32-bit mul by @mborland in #865
- Add one-shot decoding for 64-bit types and improve mul by @mborland in #866
- Use traits to reduce duplication / improve logic by @mborland in #863
- Remove comparison operator code duplications by @mborland in #867
- Fix library alias by @mborland in #871
- 64 bit add and sub by @mborland in #872
- Fix slowdown with 64 bit mul by @mborland in #873
- Prune some low hanging charconv optimization branches by @mborland in #874
- Improve d128 mul by @mborland in #875
- Improve Charconv coverage by @mborland in #876
- Fix division near 0 by @mborland in #877
- Fix next after part 2 by @mborland in #878
- Separate GCC 13 32 bit and 64 bit drone runs by @mborland in #882
- Small optimizations for frexp10 by @mborland in #881
- Remove duplicate digit counting from charconv by @mborland in #879
- 128-Bit division simplifications by @mborland in #884
- Reduce digit counting in constructors by @mborland in #883
- Add retry clone to jsonnet by @mborland in #889
- Update ci by @mborland in #896
- Change 128-bit backend to cppalliance/int128 by @mborland in #897
- Set width of istream by @mborland in #898
- Fix comparisons to zero by @mborland in #901
Full Changelog: v3.0.1...v4.0.0
v3.0.1
v3.0.0
What's Changed
- Add additional fast math support by @mborland in #749
- Enable interoperability with
std::
types from<charconv>
by @mborland in #752 - Add literals for fast types by @mborland in #753
- Add module support to the fast types by @mborland in #754
- Enable 80 and 128 bit long double conversions by @mborland in #756
- Replace macos-12 with 15 by @mborland in #755
- Update GDB run in metal CI by @ckormanyos in #760
- Refactor rescale by @mborland in #762
- Remove IBM test cases to be safe on licensing by @mborland in #763
- Add financial calculations to examples by @mborland in #765
- Remove cruft by @mborland in #766
- Add string and string_view interfaces to
from_chars
by @mborland in #768 - Fix deprecated whitespace in literal definition by @mborland in #771
- Add 32-bit FMA implementation by @mborland in #770
- Update fuzz by @mborland in #772
- Re-activate MSVC 14.3 and Clang-CL testing and Improve Intel Testing by @mborland in #775
- Improve Coverage by @mborland in #776
- Add example using Boost.Math by @mborland in #774
- Fix for 777 by @mborland in #778
- Support for by @mborland in #363
- Implement proper 64 bit FMA by @mborland in #779
- Fix macro naming for format by @mborland in #780
- Capital format by @mborland in #781
Full Changelog: v2.4.0...v3.0.0
v2.4.0
What's Changed
- Improve comparisons for decimal32 by @mborland in #729
- Improve u128 x u128 by @mborland in #731
- Fix clang19 by @mborland in #732
- Improved comparisons for
decimal64
by @mborland in #730 - Faster dec128 mul by @mborland in #733
- Add support for b2 modular builds and boostlook by @mborland in #734
- Add in the initial support for DPD conversions by @mborland in #738
- Reduce language requirement for constexpr BID conversions by @mborland in #739
- Implement 64 bit DPD conversions by @mborland in #742
- Add 128-bit DPD conversions by @mborland in #743
Full Changelog: v2.3.1...v2.4.0