Hello, Chris Kormanyos and I are seeking endorsement for our library proposal, Decimal (https://github.com/cppalliance/decimal). What is Decimal? It is an implementation of IEEE 754 and TR 24733[3][5], along with extensions to both. We provide three IEEE 754 compliant types: decimal32, decimal64, and decimal128, as specified in both documents. Since announcing the beta in the first half of the year, we have added three similar but non-compliant types: decimal32_fast, decimal64_fast, and decimal128_fast. These types perform all operations faster than the compliant types, with identical numerical results, at the cost of extra space. We also provide implementations of the majority of the STL as it apply to numerical types. The library is header-only, has no dependencies, and only requires C++14. Why should we have this in Boost? Decimal Floating Point types were standardized in IEEE 754 in the 2008 revision, but it has not been standardized in C++. We believe this library can serve as a reference implementation. An existing alternative would be one of the authors of the IEEE 754 standard helped write libdfp[4]. This is also available in C with GCC as _Decimal32, _Decimal64, and _Decimal128 [1]. We bring these to C++ with similar or better performance. We also bring interoperability with the STL which is missing in the aforementioned libraries. Since the announcement of our beta in the spring we have improved correctness, performance, and gained users. We added the fast types after conversation with Glen Fernandes, and bit conversions for both encodings of the types [2]. I am aware of at least one US-based trading firm using this library in production so the library is out in the field making money today. Should the library be endorsed John Maddock has graciously offered to be our review manager, and are targeting a post-holiday review period in mid-January 2025. Feel free to ask any questions, and open issues prior to the review period. Matt [1] https://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html [2] https://cppalliance.org/decimal/decimal.html#conversions [3] https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2849.pdf [4] https://github.com/libdfp/libdfp [5] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3871.html
Hi Chris, hi Matt, I happily endorse your library. Due to its lack of further dependencies, it looks like a perfect subject for modularization. Thanks, Dani Am 04.10.2024 um 15:39 schrieb Matt Borland via Boost:
Hello,
Chris Kormanyos and I are seeking endorsement for our library proposal, Decimal (https://github.com/cppalliance/decimal).
What is Decimal? It is an implementation of IEEE 754 and TR 24733[3][5], along with extensions to both. We provide three IEEE 754 compliant types: decimal32, decimal64, and decimal128, as specified in both documents. Since announcing the beta in the first half of the year, we have added three similar but non-compliant types: decimal32_fast, decimal64_fast, and decimal128_fast. These types perform all operations faster than the compliant types, with identical numerical results, at the cost of extra space. We also provide implementations of the majority of the STL as it apply to numerical types. The library is header-only, has no dependencies, and only requires C++14.
Why should we have this in Boost? Decimal Floating Point types were standardized in IEEE 754 in the 2008 revision, but it has not been standardized in C++. We believe this library can serve as a reference implementation. An existing alternative would be one of the authors of the IEEE 754 standard helped write libdfp[4]. This is also available in C with GCC as _Decimal32, _Decimal64, and _Decimal128 [1]. We bring these to C++ with similar or better performance. We also bring interoperability with the STL which is missing in the aforementioned libraries. Since the announcement of our beta in the spring we have improved correctness, performance, and gained users. We added the fast types after conversation with Glen Fernandes, and bit conversions for both encodings of the types [2]. I am aware of at least one US-based trading firm using this library in production so the library is out in the field making money today.
Should the library be endorsed John Maddock has graciously offered to be our review manager, and are targeting a post-holiday review period in mid-January 2025.
Feel free to ask any questions, and open issues prior to the review period.
Matt
[1]https://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html [2]https://cppalliance.org/decimal/decimal.html#conversions [3]https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2849.pdf [4]https://github.com/libdfp/libdfp [5]https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3871.html
_______________________________________________ Unsubscribe & other changes:http://lists.boost.org/mailman/listinfo.cgi/boost
-- PGP/GPG: 2CCB 3ECB 0954 5CD3 B0DB 6AA0 BA03 56A1 2C4638C5
I happily endorse your library. Due to its lack of further dependencies, it looks like a perfect subject for modularization.
Thanks, Dani
Thank you Dani. In the repo you will find a modules folder where we believe a module worked at one point, but it has languished over the past few months. I'll try and fix it up before review. Matt
Hi, I didn't use the library, but it's definitely something that I was needing for a long time and never had the time to spend on implementing it. I will love to participate in the review when it happens in January. Best, Damian El vie, 4 oct 2024 a las 10:31, Matt Borland via Boost (< boost@lists.boost.org>) escribió:
I happily endorse your library. Due to its lack of further dependencies, it looks like a perfect subject for modularization.
Thanks, Dani
Thank you Dani. In the repo you will find a modules folder where we believe a module worked at one point, but it has languished over the past few months. I'll try and fix it up before review.
Matt _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Hi,I didn't use the library, but it's definitely something that I was needing for a long time and never had the time to spend on implementing it. I will love to participate in the review when it happens in January. Best, Damian
Thank you Damian; I look forward to your review. If there's any specific functionality you need that's missing let us know. We have non-standard functions in the library already such as `trunc_to` which a user asked for: https://cppalliance.org/decimal/decimal.html#cmath_non_standard_functions. Matt
participants (3)
-
Damian Vicino
-
Daniela Engert
-
Matt Borland