Since commit 01f3b7d772 most tests started to fail on platforms that use a
"double-double" for long double, like powerpc64le:
../../../boost/math/tools/precision.hpp:148:137: error: expected primary-expression before ‘long’
148 | inline constexpr long double epsilon<long double>(const std::true_type&
BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(long double)) noexcept(long double)
../../../boost/math/tools/precision.hpp:148:137: error: expected ‘)’ before ‘long’
148 | inline constexpr long double epsilon<long double>(const std::true_type&
BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(long double)) noexcept(long double)
../../../boost/math/tools/precision.hpp:148:137: error: expected initializer before ‘long’
148 | inline constexpr long double epsilon<long double>(const std::true_type&
BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(long double)) noexcept(long double)
Fix this by replacing the noexcept expression with the contents of
BOOST_MATH_NOEXCEPT, which was the intention of commit 01f3b7d772.
Fix 16c57be3 "Fixes for compile tests" (make compiler happy, but lose
flag semantics) as well as the original implementation from e3e838da
(obvious intention, but wrong operator).
* Interpolate a uniform grid with a bilinear function.
* Typo removal.
* Invalid syntax in Jamfile.
* Do domain verification before computation.
* Fix OOB access on print.
* pimpl the class so it can be shared between threads.
* Add google/benchmark file to measure the performance of the bilinear interpolation.
* Fix up docs.
* Remove non-ASCII characters from print statements. Add a float128 test.
* Improve the documentation of the bilinear uniform class.
* Remove float128 as it doesn't support to_string.
* Don't use decltype(fieldData.size()) as the indexer; that makes MSVC 14.2 choke. Use RandomAccessContainer::size_type.
* Use ADL for to_string for compatibility with multiprecision.
* Improve error message which rows*cols != fieldData.size().
To test over a wider range of values, otherwise precision tails off for middling values of z - 100 < z < 300. Also prints out conditioning on the near-1 or 2 approximations.
Update lanczos.hpp with the new approximations, removed 80-100 digit approximation because it basically doesn't work well.
Modified lanczos.hpp and lgamma_small.hpp to have separate lanczos g values for the near 1 or 2 approximations.
This addresses issues discussed in https://github.com/boostorg/multiprecision/pull/327.