Matt's Q2 2024 Update
Jul 8, 2024Once again it has been a busy few months working on libraries in different stages of the boost lifecycle:
Libraries for Proposal
Decimal
Decimal (https://github.com/cppalliance/decimal) is a ground-up implementation of the IEEE 754 Decimal Floating Point types in C++14, and is co-authored by Chris Kormanyos.
This quarter we were pleased to release the first beta of the library which generated good discussion on the boost mailing list.
One of the large takeaways was the desire for increased performance without necessarily adhering to IEEE 754 bit layouts.
After much work we have added decimal32_fast
, decimal64_fast
, and decimal128_fast
to the library.
These new type yield identical numerical results as their standards compliant counterparts, while make the classic space for time tradeoff (https://cppalliance.org/decimal/decimal.html#Benchmarks).
Version 2.0 and 2.1 of the library were released in the last few weeks and include these new types.
Since the beginning of the summer we have also begun the deep work of profiling and optimizing basic operations like add, sub, mul, and div.
We’ve been successful in squeezing more and more performance out of the library, and will continue to do so in Q3.
We will also continue to build out standard library support such as the C++17 special math functions.
Discussion of this library can be found on the Cpplang slack at #boost-decimal
.
Multi
Multi (https://github.com/correaa/Boost-Multi) is a modern C++ library that provides access and manipulation of data in multidimensional arrays, for both CPU and GPU memory.
This is a high-quality library developed by Alfredo Correa (https://github.com/correaa).
This quarter I assisted Alfredo in preparing the library for the review process.
We added the full suite of CI see on most of the newer boost libraries to include linux GCC, Clang, macOS xcode, and MSVC.
The library now works with all of these toolchains and is tested to build cleanly with a whole host of warnings.
I will be serving as the review manager once the library is ready for boost review which will occur in the coming months.
Discussion of the library, and the author can be found on the Cpplang slack at #boost
.
Existing Libraries
Charconv
Charconv’s first release seems to have been generally successful with only a few bug reports.
Fixing support for PPC64LE led to some larger refactoring on the handling of __float128
, 128-bit long doubles, and the use of libquadmath.
Fuzzing has been added to to_chars
which helped expose a few memory safety bugs which were quickly resolved.
There was also an instance of integer overflow in from_chars
which has been eliminated.
Thanks to those who submitted bug reports, and those who assisted in squashing them.
Discussion of this library can be found on the Cpplang slack at #boost-charconv
.
ODEint
Boost.numeric.odeint now offers a CMake Macro BOOST_NUMERIC_ODEINT_NO_ADAPTORS
.
For those who don’t require external adaptors e.g. Boost.MPI
this helps to reduce the dependencies required without any affect on the functionality of the library.
Previously this library had the highest number of boost dependencies so with this macro and continued progress on removing pre-C++14 boost libraries the library should become less heavy.
All Posts by This Author
- 10/21/2024 CUDA comes to Math
- 07/08/2024 Matt's Q2 2024 Update
- 04/22/2024 Matt's Q1 2024 Update
- 01/10/2024 Matt's Q4 2023 Update
- 10/27/2023 Matt's Q3 2023 Update
- View All Posts...