2
0
mirror of https://github.com/boostorg/math.git synced 2026-01-19 04:22:09 +00:00

S390x testing: make all the tests 128-bit float safe.

* Remove tests we don't need right now.
!!!REVERT THIS COMMIT BEFORE MERGING!!!

* Add s390x testing to drone.

* Correct drone file.

* Correct drone file (again)

* Prevent complete cancellation in bessel_jy logic.

* Correct testing for 128-bit floats.

* Make some more tests 128-bit long double safe.

* Make more tests 128-bit float safe.

* Fix some more 128-bit testing issues.

* More 128-bit float fixes.

* Make more tests 128-bit float safe.

* Fix up remaining tests for 128-bit floats.

* Yet more 128-bit float test case fixes.

* Fix up more tests for 128-bit floats and non-intel platforms.

* Fix up more tests to be 128-bit long double safe.

* More test case adjustments.

* More 128-bit float error rate adjustments.

* Fixes for autodiff tests

* Two more test fixes.

* Fix up daubechies_scaling_test.cpp and reinstate full CI.

Co-authored-by: Matt Borland <matt@mattborland.com>
This commit is contained in:
jzmaddock
2023-01-11 18:31:05 +00:00
committed by GitHub
parent aaa8684f09
commit fae96bf542
55 changed files with 1392 additions and 595 deletions

View File

@@ -37,7 +37,11 @@ T bessel_y_derivative_bare(T v, T x)
template <class T>
T bessel_i_derivative_bare(T v, T x)
{
return (v / x) * boost::math::cyl_bessel_i(v, x) + boost::math::cyl_bessel_i(v+1, x);
if ((x < 1) && (x > 0))
return (boost::math::cyl_bessel_i(v - 1, x) + boost::math::cyl_bessel_i(v + 1, x)) / 2;
if (x == 0)
throw std::domain_error("");
return (boost::math::cyl_bessel_i(v - 1, x) + boost::math::cyl_bessel_i(v + 1, x)) / 2;
}
template <class T>
@@ -78,7 +82,7 @@ enum
int cpp_main(int argc, char*argv [])
{
typedef number<mpfr_float_backend<200> > bignum;
typedef number<mpfr_float_backend<500> > bignum;
parameter_info<bignum> arg1, arg2;
test_data<bignum> data;
@@ -123,9 +127,9 @@ int cpp_main(int argc, char*argv [])
std::cout << "Welcome.\n"
"This program will generate spot tests for the Bessel " << letter << " function derivative\n\n";
do{
if(0 == get_user_parameter_info(arg1, "a"))
if(0 == get_user_parameter_info(arg1, "x"))
return 1;
if(0 == get_user_parameter_info(arg2, "b"))
if(0 == get_user_parameter_info(arg2, "v"))
return 1;
bignum (*fp)(bignum, bignum) = 0;