Releases: cppalliance/decimal
Releases · cppalliance/decimal
v6.0.0
This release contains the changes from the second Boost review.
What's Changed
- Change default rounding mode (along with consteval methods) by @mborland in #1023
- Reduce evaluation_type duplication and fix missing atan series by @mborland in #1024
- Remove deprecated types, and add note in the docs about this by @mborland in #1025
- Replace bulleted lists with tables by @mborland in #1032
- Implement check for sticky bit to fix rounding for all types and implement for
decimal32_tby @mborland in #1030 - Fix lost precision in addition/subtraction and spurious overflows in construction by @mborland in #1037
- Implement proper constructor rounding for
decimal64_tby @mborland in #1038 - Add note about not being correctly rounded by @mborland in #1042
- Fix rounding with
decimal128_tby @mborland in #1039 - Decrease tested tolerances of
sqrtby @mborland in #1043 - Fix rounding in
normalizeand fast types by @mborland in #1044 - Remove deprecated function by @mborland in #1046
- Allow setting a compile time rounding mode separate from runtime by @mborland in #1045
- Fix rounding correctness of additional 64-bit addition operations by @mborland in #1048
- Optimize normalization for the case where we know which branch to take by @mborland in #1050
- Remove generic digit counting by @mborland in #1051
- Consolidate Addition Impls, and fix impl for 128-bit types by @mborland in #1052
- Correct
from_charshandling of infinities by @mborland in #1059 - Allow streaming of value with leading plus sign by @mborland in #1060
- Strip characters from
strtodthat are allowed, but not allowed in<charconv>by @mborland in #1061 - Fix parsing of payloads by @mborland in #1063
- Fix overconsumption of characters in
istreamby @mborland in #1064 - Increase precision of 128-bit division by @mborland in #1065
- Improve performance of new rounding facilities by @mborland in #1066
- Update coverage toolchain by @mborland in #1068
- Increase tolerances for decimal32_t pow by @mborland in #1067
- Improve Coverage and annotate unlikely lines by @mborland in #1069
- Remove deprecated macOS version by @mborland in #1073
- Fix double rounding in 32 and 64 bit FMAs by @mborland in #1072
- More coverage and associated bug fixes by @mborland in #1074
- Even More Coverage by @mborland in #1075
- Add testing of modules by @mborland in #1076
- Documentation Updates by @mborland in #1079
- Improve performance of rounding by @mborland in #1078
- Continued coverage improvements by @mborland in #1080
- More extensive testing of DPD conversions by @mborland in #1082
- Cover constructor rounding lines by forcing runtime eval by @mborland in #1084
- Fix build on POWER10 by @mborland in #1086
- Add notes to basics section on underflow, overflow, and non-finite values handling by @mborland in #1090
- Improve message from disallowed 3 arg constructor by @mborland in #1089
- Fix the name of a variable by @asensi in #1096
- Fix construction of overflow/underflow values by @mborland in #1098
- Fix unspecified format precision being 6 digits instead of shortest representation by @mborland in #1102
- Consolidate and expand section on design decisions and deviations by @mborland in #1104
- Improve
<cfenv>examples and docs by @mborland in #1101 - Drone: llvm apt installation by @sdarwin in #1109
- Fix the name of a variable in 'basics.adoc' by @asensi in #1108
- Docs: fix example with literals by @akrzemi1 in #1118
- Fix typos in charconv docs by @akrzemi1 in #1117
- Fix handling of extreme size literals by @mborland in #1122
- All members of equivalence class should return the same hash value by @mborland in #1123
- Don't automatically include {fmt} by @mborland in #1124
- Avoid double counting digits in normalization process by @mborland in #1125
- Obey current rounding mode with rint/lrint/nearbyint by @mborland in #1128
- Add ARM64 windows runner and fix missing intrinsic on said platform by @mborland in #1129
- Fix detection of pure powers of 10 for large significands by @mborland in #1130
- Make construction from integral types explicit by default by @mborland in #1131
- Fix
decimal_fast32_tescaping it's domain in mul and div by @mborland in #1132 - Up the Newton iterations in cbrt by @ckormanyos in #1134
- Directly manipulate value to calculate next by @mborland in #1133
- Add string constructor to all types by @mborland in #1135
- Fixes for proper handling of IEEE Section 7.2 by @mborland in #1136
- Fix handling of denorm next after by @mborland in #1146
- Rename parameter for clarity by @mborland in #1147
- Fix CI error by @mborland in #1148
- Improve handling of locales by @mborland in #1138
- Add cohort preserving
to_charswith scientific format by @mborland in #1157 - Handle Git issue 1137 by @ckormanyos in #1145
- Refactor quantum preservation to be a chars_format option by @mborland in #1159
- Add cohort preserving
from_charsby @mborland in #1160 - Add cohort preservation options to {fmt} and by @mborland in #1161
- Implement locale support of {fmt} and
<format>by @mborland in #1163 - Add wider character support for {fmt} formatting by @mborland in #1166
- Add
wchar_tformatting tostd::formatsupport by @mborland in #1170 - Fix locale placement in format string by @mborland in #1172
- Add dectest testing by @mborland in #1173
- Suppress warnings from find_package(fmt) by @mborland in #1176
- Fix construction of extremely large and extremely small numbers by @mborland in #1175
- Bump sha.js from 2.4.11 to 2.4.12 in /doc in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1179
- Fix
nanhandling and add non-standard payload function for reading by @mborland in #1180 - Change encoding of fast non-finite values to allow for payloads by @mborland in #1182
- Implement total ordering function from IEEE 754 by @mborland in #1183
- Simplify
numeric_limitsand fix ODR violations by @mborland in #1220 - Improve ADL and bit conversions examples as well as re-locate the latter by @mborland in #1221
- Enable string constructor to parse payloads of NANs by @mborland in #1219
- Update format docs and examples by @mborland in #1222
- Remove old testing facilities ...
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_charsfor 0 in general format by @mborland in #1003 - Merge performance changes from cppalliance/int128 by @mborland in #1005
- Test and fix
consteval to_charsby @mborland in #1006 - Implement fast path of no precision scientific formatting by @mborland in #1012
- Fast path for unspecified precision fixed format
to_charsby @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
ceilbug 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_treducing size on many platforms - All type names have been changed to better align with established practice:
decimalXXis nowdecimalXX_tdecimalXX_fastis 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_tanddecimal_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_charsfordecimal128being 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
constcorrectness, 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_fastmultiplication 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
uint128by @mborland in #812 - Remove
sprintfand 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_fastscalblndimplementation by @mborland in #821 - Make
uint128public 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
nextafterandnexttowardsby @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_charsby @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