You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello,
in boost::math::cstdfloat there are several inconsistencies with __float128/_Quad. Generally these are only available with gcc and intel. Since I don't have an intel compiler myself, you might have to modify this path; for now it should behave like the previous implementations.
hypot(x, y, z) correct result even with large values; slower than previous naive implementation
isfinite(x) branch-free
limits <boost/math/cstdfloat/cstdfloat_limits.hpp>
All functions can now be provided constexpr noexcept.
future
branch-free isgreater, isgreaterequal, ... I don't understand the BOOST_PREVENT_MACRO_SUBSTITUTION inside the functions, otherwise I could have adjusted that right away.
With Matt's boost::charconv the IO functions can be provided more efficiently (operator<<, operator>>, to_string, ...).
It might be useful to provide quadmath as a separate sublibrary in boost::math, e.g. to avoid the #define/#undef orgies in <boost/math/cstdfloat/cstdfloat_cmath.hpp>.
Hello,
in boost::math::cstdfloat there are several inconsistencies with __float128/_Quad. Generally these are only available with gcc and intel. Since I don't have an intel compiler myself, you might have to modify this path; for now it should behave like the previous implementations.
types <boost/math/cstdfloat/cstdfloat_types.hpp>
intel https://community.intel.com/t5/Intel-C-Compiler/C-Compiler-128-bit-floating-point/m-p/1216949
defines/constants <boost/math/cstdfloat/cstdfloat_types.hpp>
gcc
functions <boost/math/cstdfloat/cstdfloat_cmath.hpp>
modified:
--> #define BOOST_CSTDFLOAT_FLOAT128_NAN __builtin_nanq
limits <boost/math/cstdfloat/cstdfloat_limits.hpp>
All functions can now be provided constexpr noexcept.
future
cstdfloat_types.hpp.txt
cstdfloat_cmath.hpp.txt
cstdfloat_limits.hpp.txt
thx
Gero
The text was updated successfully, but these errors were encountered: