public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
* make check error
@ 2000-11-04  7:22 Andrej Prsa
  2000-11-04  9:37 ` Dirk Eddelbuettel
  2000-11-04 12:10 ` Brian Gough
  0 siblings, 2 replies; 13+ messages in thread
From: Andrej Prsa @ 2000-11-04  7:22 UTC (permalink / raw)
  To: gsl-discuss

Hello!

My name is Andrej Prsa and I'm an absolvent of astrophysics in
Ljubljana, Slovenia. I tried to run make check on i686 RedHat 7.0
machine and it crashed. I attached a report from make check. I hope it
helps!

Sincerely,

Andrej
==================
make[2]: Leaving directory `/home/andrej/programming/libraries/gsl-0.7/sort'
make[1]: Leaving directory `/home/andrej/programming/libraries/gsl-0.7/sort'
Making check in ieee-utils
make[1]: Entering directory `/home/andrej/programming/libraries/gsl-0.7/ieee-utils'
make  test
make[2]: Entering directory `/home/andrej/programming/libraries/gsl-0.7/ieee-utils'
make[2]: `test' is up to date.
make[2]: Leaving directory `/home/andrej/programming/libraries/gsl-0.7/ieee-utils'
make  check-TESTS
make[2]: Entering directory `/home/andrej/programming/libraries/gsl-0.7/ieee-utils'
PASS: float x = 0, sign is + (0 observed vs 0 expected)
PASS: float x = 0, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = 0, mantissa
PASS: float x = 0, type is ZERO (5 observed vs 5 expected)
PASS: float x = -1*0, sign is - (1 observed vs 1 expected)
PASS: float x = -1*0, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = -1*0, mantissa
PASS: float x = -1*0, type is ZERO (5 observed vs 5 expected)
PASS: float x = 2.1, sign is + (0 observed vs 0 expected)
PASS: float x = 2.1, exponent is 1 (1 observed vs 1 expected)
PASS: float x = 2.1, mantissa
PASS: float x = 2.1, type is NORMAL (3 observed vs 3 expected)
PASS: float x = -1.3304..., sign is - (1 observed vs 1 expected)
PASS: float x = -1.3304..., exponent is 0 (0 observed vs 0 expected)
PASS: float x = -1.3304..., mantissa
PASS: float x = -1.3304..., type is NORMAL (3 observed vs 3 expected)
PASS: float x = 3.37e31, sign is + (0 observed vs 0 expected)
PASS: float x = 3.37e31, exponent is 104 (104 observed vs 104 expected)
PASS: float x = 3.37e31, mantissa
PASS: float x = 3.37e31, type is NORMAL (3 observed vs 3 expected)
PASS: float x = 3.37e-31, sign is + (0 observed vs 0 expected)
PASS: float x = 3.37e-31, exponent is -102 (-102 observed vs -102 expected)
PASS: float x = 3.37e-31, mantissa
PASS: float x = 3.37e-31, type is NORMAL (3 observed vs 3 expected)
PASS: float x = FLT_MIN, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN, exponent is -126 (-126 observed vs -126 expected)
PASS: float x = FLT_MIN, mantissa
PASS: float x = FLT_MIN, type is NORMAL (3 observed vs 3 expected)
PASS: float x = FLT_MAX, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MAX, exponent is 127 (127 observed vs 127 expected)
PASS: float x = FLT_MAX, mantissa
PASS: float x = FLT_MAX, type is NORMAL (3 observed vs 3 expected)
PASS: float x = FLT_MIN/2^1, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^1, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^1, mantissa
PASS: float x = FLT_MIN/2^1, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^2, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^2, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^2, mantissa
PASS: float x = FLT_MIN/2^2, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^3, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^3, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^3, mantissa
PASS: float x = FLT_MIN/2^3, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^4, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^4, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^4, mantissa
PASS: float x = FLT_MIN/2^4, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^5, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^5, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^5, mantissa
PASS: float x = FLT_MIN/2^5, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^6, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^6, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^6, mantissa
PASS: float x = FLT_MIN/2^6, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^7, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^7, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^7, mantissa
PASS: float x = FLT_MIN/2^7, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^8, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^8, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^8, mantissa
PASS: float x = FLT_MIN/2^8, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^9, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^9, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^9, mantissa
PASS: float x = FLT_MIN/2^9, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^10, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^10, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^10, mantissa
PASS: float x = FLT_MIN/2^10, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^11, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^11, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^11, mantissa
PASS: float x = FLT_MIN/2^11, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^12, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^12, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^12, mantissa
PASS: float x = FLT_MIN/2^12, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^13, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^13, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^13, mantissa
PASS: float x = FLT_MIN/2^13, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^14, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^14, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^14, mantissa
PASS: float x = FLT_MIN/2^14, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^15, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^15, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^15, mantissa
PASS: float x = FLT_MIN/2^15, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^16, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^16, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^16, mantissa
PASS: float x = FLT_MIN/2^16, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^17, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^17, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^17, mantissa
PASS: float x = FLT_MIN/2^17, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^18, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^18, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = FLT_MIN/2^18, mantissa
PASS: float x = FLT_MIN/2^18, type is DENORMAL (4 observed vs 4 expected)
PASS: float x = FLT_MIN/2^19, sign is + (0 observed vs 0 expected)

==================
make[2]: Leaving directory `/home/andrej/programming/libraries/gsl-0.7/eigen'
make[1]: Leaving directory `/home/andrej/programming/libraries/gsl-0.7/eigen'
Making check in specfunc
make[1]: Entering directory `/home/andrej/programming/libraries/gsl-0.7/specfunc'
make  test
make[2]: Entering directory `/home/andrej/programming/libraries/gsl-0.7/specfunc'
make[2]: `test' is up to date.
make[2]: Leaving directory `/home/andrej/programming/libraries/gsl-0.7/specfunc'
make  check-TESTS
make[2]: Entering directory `/home/andrej/programming/libraries/gsl-0.7/specfunc'
PASS:   gsl_sf_airy_Ai_impl(-500.0, m, &r)
PASS:   gsl_sf_airy_Ai_impl(-5.0, m, &r)
PASS:   gsl_sf_airy_Ai_impl(-0.3000000000000094, m, &r)
PASS:   gsl_sf_airy_Ai_impl(0.6999999999999907, m, &r)
PASS:   gsl_sf_airy_Ai_impl(1.649999999999991, m, &r)
PASS:   gsl_sf_airy_Ai_impl(2.54999999999999, m, &r)
PASS:   gsl_sf_airy_Ai_impl(3.499999999999987, m, &r)
PASS:   gsl_sf_airy_Ai_impl(5.39999999999998, m, &r)
PASS:   gsl_sf_airy_Ai_scaled_impl(-5.0, m, &r)
PASS:   gsl_sf_airy_Ai_scaled_impl(0.6999999999999907, m, &r)
PASS:   gsl_sf_airy_Ai_scaled_impl(1.649999999999991, m, &r)
PASS:   gsl_sf_airy_Ai_scaled_impl(2.54999999999999, m, &r)
PASS:   gsl_sf_airy_Ai_scaled_impl(3.499999999999987, m, &r)
PASS:   gsl_sf_airy_Ai_scaled_impl(5.39999999999998, m, &r)
PASS:   gsl_sf_airy_Bi_impl(-500.0, m, &r)
PASS:   gsl_sf_airy_Bi_impl(-5.0, m, &r)
PASS:   gsl_sf_airy_Bi_impl(0.6999999999999907, m, &r)
PASS:   gsl_sf_airy_Bi_impl(1.649999999999991, m, &r)
PASS:   gsl_sf_airy_Bi_impl(2.54999999999999, m, &r)
PASS:   gsl_sf_airy_Bi_impl(3.499999999999987, m, &r)
PASS:   gsl_sf_airy_Bi_impl(5.39999999999998, m, &r)
PASS:   gsl_sf_airy_Bi_scaled_impl(-5.0, m, &r)
PASS:   gsl_sf_airy_Bi_scaled_impl(0.6999999999999907, m, &r)
PASS:   gsl_sf_airy_Bi_scaled_impl(1.649999999999991, m, &r)
PASS:   gsl_sf_airy_Bi_scaled_impl(2.54999999999999, m, &r)
PASS:   gsl_sf_airy_Bi_scaled_impl(3.499999999999987, m, &r)
PASS:   gsl_sf_airy_Bi_scaled_impl(5.39999999999998, m, &r)
PASS:   gsl_sf_airy_Ai_deriv_impl(-5.0, m, &r)
PASS:   gsl_sf_airy_Ai_deriv_impl(-0.5500000000000094, m, &r)
PASS:   gsl_sf_airy_Ai_deriv_impl(0.4999999999999906, m, &r)
PASS:   gsl_sf_airy_Ai_deriv_impl(1.899999999999992, m, &r)
PASS:   gsl_sf_airy_Ai_deriv_impl(3.249999999999988, m, &r)
PASS:   gsl_sf_airy_Ai_deriv_impl(5.199999999999981, m, &r)
PASS:   gsl_sf_airy_Ai_deriv_scaled_impl(-5.0, m, &r)
PASS:   gsl_sf_airy_Ai_deriv_scaled_impl(0.5499999999999906, m, &r)
PASS:   gsl_sf_airy_Ai_deriv_scaled_impl(1.499999999999991, m, &r)
PASS:   gsl_sf_airy_Ai_deriv_scaled_impl(2.49999999999999, m, &r)
PASS:   gsl_sf_airy_Ai_deriv_scaled_impl(3.649999999999986, m, &r)
PASS:   gsl_sf_airy_Ai_deriv_scaled_impl(6.299999999999977, m, &r)
PASS:   gsl_sf_airy_Bi_deriv_impl(-5.0, m, &r)
PASS:   gsl_sf_airy_Bi_deriv_impl(-0.5500000000000094, m, &r)
PASS:   gsl_sf_airy_Bi_deriv_impl(0.4999999999999906, m, &r)
PASS:   gsl_sf_airy_Bi_deriv_impl(1.899999999999992, m, &r)
PASS:   gsl_sf_airy_Bi_deriv_impl(3.249999999999988, m, &r)
PASS:   gsl_sf_airy_Bi_deriv_impl(5.199999999999981, m, &r)
PASS:   gsl_sf_airy_Bi_deriv_scaled_impl(-5.0, m, &r)
PASS:   gsl_sf_airy_Bi_deriv_scaled_impl(0.5499999999999906, m, &r)
PASS:   gsl_sf_airy_Bi_deriv_scaled_impl(1.499999999999991, m, &r)
PASS:   gsl_sf_airy_Bi_deriv_scaled_impl(2.49999999999999, m, &r)
PASS:   gsl_sf_airy_Bi_deriv_scaled_impl(3.649999999999986, m, &r)
PASS:   gsl_sf_airy_Bi_deriv_scaled_impl(6.299999999999977, m, &r)
PASS:   gsl_sf_airy_zero_Ai_impl(2, &r)
PASS:   gsl_sf_airy_zero_Ai_impl(50, &r)
PASS:   gsl_sf_airy_zero_Ai_impl(100, &r)
PASS:   gsl_sf_airy_zero_Ai_impl(110, &r)
PASS:   gsl_sf_airy_zero_Bi_impl(2, &r)
PASS:   gsl_sf_airy_zero_Bi_impl(50, &r)
PASS:   gsl_sf_airy_zero_Bi_impl(100, &r)
PASS:   gsl_sf_airy_zero_Bi_impl(110, &r)
PASS:   gsl_sf_airy_zero_Bi_impl(111, &r)
PASS:   gsl_sf_airy_zero_Bi_impl(200, &r)
PASS:   gsl_sf_airy_zero_Ai_deriv_impl(2, &r)
PASS:   gsl_sf_airy_zero_Ai_deriv_impl(50, &r)
PASS:   gsl_sf_airy_zero_Ai_deriv_impl(100, &r)
PASS:   gsl_sf_airy_zero_Ai_deriv_impl(110, &r)
PASS:   gsl_sf_airy_zero_Ai_deriv_impl(1000, &r)
PASS:   gsl_sf_airy_zero_Bi_deriv_impl(2, &r)
PASS:   gsl_sf_airy_zero_Bi_deriv_impl(50, &r)
PASS:   gsl_sf_airy_zero_Bi_deriv_impl(100, &r)
PASS:   gsl_sf_airy_zero_Bi_deriv_impl(110, &r)
PASS:   gsl_sf_airy_zero_Bi_deriv_impl(111, &r)
PASS:   gsl_sf_airy_zero_Bi_deriv_impl(200, &r)
PASS:   gsl_sf_airy_zero_Bi_deriv_impl(1000, &r)
PASS: Airy Functions
PASS:   gsl_sf_bessel_J0_impl(0.1, &r)
PASS:   gsl_sf_bessel_J0_impl(2.0, &r)
PASS:   gsl_sf_bessel_J0_impl(100.0, &r)
PASS:   gsl_sf_bessel_J0_impl(1.0e+10, &r)
PASS:   gsl_sf_bessel_J1_impl(0.1, &r)
PASS:   gsl_sf_bessel_J1_impl(2.0, &r)
PASS:   gsl_sf_bessel_J1_impl(100.0, &r)
PASS:   gsl_sf_bessel_J1_impl(1.0e+10, &r)
PASS:   gsl_sf_bessel_Jn_impl(4, 0.1, &r)
PASS:   gsl_sf_bessel_Jn_impl(5, 2.0, &r)
PASS:   gsl_sf_bessel_Jn_impl(10, 20.0, &r)
PASS:   gsl_sf_bessel_Jn_impl(100, 100.0, &r)
PASS:   gsl_sf_bessel_Y0_impl(0.1, &r)
PASS:   gsl_sf_bessel_Y0_impl(2, &r)
PASS:   gsl_sf_bessel_Y0_impl(256.0, &r)
PASS:   gsl_sf_bessel_Y0_impl(4294967296.0, &r)
PASS:   gsl_sf_bessel_Y1_impl(0.1, &r)
PASS:   gsl_sf_bessel_Y1_impl(2, &r)
PASS:   gsl_sf_bessel_Y1_impl(100.0, &r)
PASS:   gsl_sf_bessel_Y1_impl(4294967296.0, &r)
PASS:   gsl_sf_bessel_Yn_impl(4, 0.1, &r)
PASS:   gsl_sf_bessel_Yn_impl(5, 2, &r)
PASS:   gsl_sf_bessel_Yn_impl(100, 100.0, &r)
PASS:   gsl_sf_bessel_Yn_impl(100, 4294967296.0, &r)
PASS:   gsl_sf_bessel_Yn_impl(1000, 4294967296.0, &r)
PASS:   gsl_sf_bessel_I0_scaled_impl(0.1, &r)
PASS:   gsl_sf_bessel_I0_scaled_impl(2, &r)
PASS:   gsl_sf_bessel_I0_scaled_impl(100.0, &r)
PASS:   gsl_sf_bessel_I0_scaled_impl(65536.0, &r)
PASS:   gsl_sf_bessel_I1_scaled_impl(0.1, &r)
PASS:   gsl_sf_bessel_I1_scaled_impl(2, &r)
PASS:   gsl_sf_bessel_I1_scaled_impl(100.0, &r)
PASS:   gsl_sf_bessel_I1_scaled_impl(65536.0, &r)
PASS:   gsl_sf_bessel_In_scaled_impl( -4, 0.1, &r)
PASS:   gsl_sf_bessel_In_scaled_impl( 4, 0.1, &r)
PASS:   gsl_sf_bessel_In_scaled_impl( 5, 2.0, &r)
PASS:   gsl_sf_bessel_In_scaled_impl( 100, 100.0, &r)
PASS:   gsl_sf_bessel_I0_impl(0.1, &r)
PASS:   gsl_sf_bessel_I0_impl(2.0, &r)
PASS:   gsl_sf_bessel_I0_impl(100.0, &r)
PASS:   gsl_sf_bessel_I1_impl(0.1, &r)
PASS:   gsl_sf_bessel_I1_impl(2.0, &r)
PASS:   gsl_sf_bessel_I1_impl(100.0, &r)
PASS:   gsl_sf_bessel_In_impl( 4, 0.1, &r)
PASS:   gsl_sf_bessel_In_impl( 5, 2.0, &r)
PASS:   gsl_sf_bessel_In_impl( 100, 100.0, &r)
PASS:   gsl_sf_bessel_K0_scaled_impl(0.1, &r)
PASS:   gsl_sf_bessel_K0_scaled_impl(2.0, &r)
PASS:   gsl_sf_bessel_K0_scaled_impl(100.0, &r)
PASS:   gsl_sf_bessel_K1_scaled_impl(0.1, &r)
PASS:   gsl_sf_bessel_K1_scaled_impl(2.0, &r)
PASS:   gsl_sf_bessel_K1_scaled_impl(100.0, &r)
PASS:   gsl_sf_bessel_Kn_scaled_impl( 4, 0.1, &r)
PASS:   gsl_sf_bessel_Kn_scaled_impl( 5, 2.0, &r)
PASS:   gsl_sf_bessel_Kn_scaled_impl( 100, 100.0, &r)
PASS:   gsl_sf_bessel_K0_impl(0.1, &r)
PASS:   gsl_sf_bessel_K0_impl(2.0, &r)
PASS:   gsl_sf_bessel_K0_impl(100.0, &r)
PASS:   gsl_sf_bessel_K1_impl(0.1, &r)
PASS:   gsl_sf_bessel_K1_impl(2.0, &r)
PASS:   gsl_sf_bessel_K1_impl(100.0, &r)
PASS:   gsl_sf_bessel_Kn_impl( 4, 0.1, &r)
PASS:   gsl_sf_bessel_Kn_impl( 5, 2.0, &r)
PASS:   gsl_sf_bessel_Kn_impl( 100, 100.0, &r)
PASS:   gsl_sf_bessel_j0_impl(-10.0, &r)
PASS:   gsl_sf_bessel_j0_impl(0.001, &r)
PASS:   gsl_sf_bessel_j0_impl( 1.0, &r)
PASS:   gsl_sf_bessel_j0_impl( 10.0, &r)
PASS:   gsl_sf_bessel_j0_impl(100.0, &r)
PASS:   gsl_sf_bessel_j0_impl(1048576.0, &r)
PASS:   gsl_sf_bessel_j1_impl(-10.0, &r)
PASS:   gsl_sf_bessel_j1_impl(0.01, &r)
PASS:   gsl_sf_bessel_j1_impl( 1.0, &r)
PASS:   gsl_sf_bessel_j1_impl( 10.0, &r)
PASS:   gsl_sf_bessel_j1_impl(100.0, &r)
PASS:   gsl_sf_bessel_j1_impl(1048576.0, &r)
PASS:   gsl_sf_bessel_j2_impl(-10.0, &r)
PASS:   gsl_sf_bessel_j2_impl(0.01, &r)
PASS:   gsl_sf_bessel_j2_impl( 1.0, &r)
PASS:   gsl_sf_bessel_j2_impl( 10.0, &r)
PASS:   gsl_sf_bessel_j2_impl(100.0, &r)
PASS:   gsl_sf_bessel_j2_impl(1048576.0, &r)
PASS:   gsl_sf_bessel_jl_impl(0, 0.0, &r)
PASS:   gsl_sf_bessel_jl_impl(1, 10.0, &r)
PASS:   gsl_sf_bessel_jl_impl(5, 1.0, &r)
PASS:   gsl_sf_bessel_jl_impl(10, 10.0, &r)
PASS:   gsl_sf_bessel_jl_impl(100, 100.0, &r)
PASS:   gsl_sf_bessel_jl_impl(2000, 1048576.0, &r)
PASS:   gsl_sf_bessel_y0_impl(0.001, &r)
PASS:   gsl_sf_bessel_y0_impl( 1.0, &r)
PASS:   gsl_sf_bessel_y0_impl( 10.0, &r)
PASS:   gsl_sf_bessel_y0_impl(100.0, &r)
PASS:   gsl_sf_bessel_y0_impl(65536.0, &r)
PASS:   gsl_sf_bessel_y0_impl(4294967296.0, &r)
PASS:   gsl_sf_bessel_y1_impl( 0.01, &r)
PASS:   gsl_sf_bessel_y1_impl( 1.0, &r)
PASS:   gsl_sf_bessel_y1_impl( 10.0, &r)
PASS:   gsl_sf_bessel_y1_impl(100.0, &r)
PASS:   gsl_sf_bessel_y1_impl(4294967296.0, &r)
PASS:   gsl_sf_bessel_y2_impl( 0.01, &r)
PASS:   gsl_sf_bessel_y2_impl( 1.0, &r)
PASS:   gsl_sf_bessel_y2_impl( 10.0, &r)
PASS:   gsl_sf_bessel_y2_impl(100.0, &r)
PASS:   gsl_sf_bessel_y2_impl(4294967296.0, &r)
PASS:   gsl_sf_bessel_i0_scaled_impl(0.1, &r)
PASS:   gsl_sf_bessel_i0_scaled_impl(2.0, &r)
PASS:   gsl_sf_bessel_i0_scaled_impl(100.0, &r)
PASS:   gsl_sf_bessel_i1_scaled_impl(0.1, &r)
PASS:   gsl_sf_bessel_i1_scaled_impl(2.0, &r)
PASS:   gsl_sf_bessel_i1_scaled_impl(100.0, &r)
PASS:   gsl_sf_bessel_i2_scaled_impl(0.1, &r)
PASS:   gsl_sf_bessel_i2_scaled_impl(2.0, &r)
PASS:   gsl_sf_bessel_i2_scaled_impl(100.0, &r)
PASS:   gsl_sf_bessel_il_scaled_impl( 4, 0.001, &r)
PASS:   gsl_sf_bessel_il_scaled_impl( 4, 0.1, &r)
PASS:   gsl_sf_bessel_il_scaled_impl( 5, 2.0, &r)
PASS:   gsl_sf_bessel_il_scaled_impl( 5, 100.0, &r)
PASS:   gsl_sf_bessel_il_scaled_impl( 100, 100.0, &r)
PASS:   gsl_sf_bessel_k0_scaled_impl(0.1, &r)
PASS:   gsl_sf_bessel_k0_scaled_impl(2.0, &r)
PASS:   gsl_sf_bessel_k0_scaled_impl(100.0, &r)
PASS:   gsl_sf_bessel_k1_scaled_impl(0.1, &r)
PASS:   gsl_sf_bessel_k1_scaled_impl(2.0, &r)
PASS:   gsl_sf_bessel_k1_scaled_impl(100.0, &r)
PASS:   gsl_sf_bessel_k2_scaled_impl(0.1, &r)
PASS:   gsl_sf_bessel_k2_scaled_impl(2.0, &r)
PASS:   gsl_sf_bessel_k2_scaled_impl(100.0, &r)
PASS:   gsl_sf_bessel_kl_scaled_impl( 4, 1.0/256.0, &r)
PASS:   gsl_sf_bessel_kl_scaled_impl( 4, 1.0/8.0, &r)
PASS:   gsl_sf_bessel_kl_scaled_impl( 5, 2.0, &r)
PASS:   gsl_sf_bessel_kl_scaled_impl( 100, 100.0, &r)
PASS:   gsl_sf_bessel_Jnu_impl(0.0001, 1.0, &r)
PASS:   gsl_sf_bessel_Jnu_impl(0.0001, 10.0, &r)
PASS:   gsl_sf_bessel_Jnu_impl(0.0009765625, 10.0, &r)
PASS:   gsl_sf_bessel_Jnu_impl(0.75, 1.0, &r)
PASS:   gsl_sf_bessel_Jnu_impl(0.75, 10.0, &r)
PASS:   gsl_sf_bessel_Jnu_impl( 1.0, 0.001, &r)
PASS:   gsl_sf_bessel_Jnu_impl( 1.0, 1.0, &r)
PASS:   gsl_sf_bessel_Jnu_impl( 1.75, 1.0, &r)
PASS:   gsl_sf_bessel_Jnu_impl(30.0, 1.0, &r)
PASS:   gsl_sf_bessel_Jnu_impl(30.0, 100.0, &r)
PASS:   gsl_sf_bessel_Jnu_impl(10.0, 1.0, &r)
PASS:   gsl_sf_bessel_Jnu_impl(10.0, 100.0, &r)
PASS:   gsl_sf_bessel_Jnu_impl(10.2, 100.0, &r)
PASS:   gsl_sf_bessel_Ynu_impl(0.0001, 1.0, &r)
PASS:   gsl_sf_bessel_Ynu_impl(0.0001,10.0, &r)
PASS:   gsl_sf_bessel_Ynu_impl( 0.75, 1.0, &r)
PASS:   gsl_sf_bessel_Ynu_impl( 0.75, 10.0, &r)
PASS:   gsl_sf_bessel_Ynu_impl( 1.0, 0.001, &r)
PASS:   gsl_sf_bessel_Ynu_impl( 1.0, 1.0, &r)
PASS:   gsl_sf_bessel_Ynu_impl(30.0, 1.0, &r)
PASS:   gsl_sf_bessel_Ynu_impl(30.0, 100.0, &r)
PASS:   gsl_sf_bessel_Ynu_impl(10.0, 1.0, &r)
PASS:   gsl_sf_bessel_Ynu_impl(10.0, 100.0, &r)
PASS:   gsl_sf_bessel_Ynu_impl(10.2, 100.0, &r)
PASS:   gsl_sf_bessel_Inu_scaled_impl(0.0001,10.0, &r)
PASS:   gsl_sf_bessel_Inu_scaled_impl( 1.0, 0.001, &r)
PASS:   gsl_sf_bessel_Inu_scaled_impl( 1.0, 1.0, &r)
PASS:   gsl_sf_bessel_Inu_scaled_impl(30.0, 1.0, &r)
PASS:   gsl_sf_bessel_Inu_scaled_impl(30.0, 100.0, &r)
PASS:   gsl_sf_bessel_Inu_scaled_impl(10.0, 1.0, &r)
PASS:   gsl_sf_bessel_Inu_scaled_impl(10.0, 100.0, &r)
PASS:   gsl_sf_bessel_Inu_scaled_impl(10.2, 100.0, &r)
PASS:   gsl_sf_bessel_Inu_impl(0.0001,10.0, &r)
PASS:   gsl_sf_bessel_Inu_impl( 1.0, 0.001, &r)
PASS:   gsl_sf_bessel_Inu_impl( 1.0, 1.0, &r)
PASS:   gsl_sf_bessel_Inu_impl(30.0, 1.0, &r)
PASS:   gsl_sf_bessel_Inu_impl(30.0, 100.0, &r)
PASS:   gsl_sf_bessel_Inu_impl(10.0, 1.0, &r)
PASS:   gsl_sf_bessel_Inu_impl(10.0, 100.0, &r)
PASS:   gsl_sf_bessel_Inu_impl(10.2, 100.0, &r)
PASS:   gsl_sf_bessel_Knu_scaled_impl(0.0001,10.0, &r)
PASS:   gsl_sf_bessel_Knu_scaled_impl( 1.0, 0.001, &r)
PASS:   gsl_sf_bessel_Knu_scaled_impl( 1.0, 1.0, &r)
PASS:   gsl_sf_bessel_Knu_scaled_impl(30.0, 1.0, &r)
PASS:   gsl_sf_bessel_Knu_scaled_impl(30.0, 100.0, &r)
PASS:   gsl_sf_bessel_Knu_scaled_impl(10.0, 1.0, &r)
PASS:   gsl_sf_bessel_Knu_scaled_impl(10.0, 100.0, &r)
PASS:   gsl_sf_bessel_Knu_scaled_impl(10.0, 1000.0, &r)
PASS:   gsl_sf_bessel_Knu_scaled_impl(10.0, 1.0e+8, &r)
PASS:   gsl_sf_bessel_Knu_scaled_impl(10.2, 100.0, &r)
PASS:   gsl_sf_bessel_Knu_impl(0.0001,0.001, &r)
PASS:   gsl_sf_bessel_Knu_impl(0.0001,10.0, &r)
PASS:   gsl_sf_bessel_Knu_impl( 1.0, 0.001, &r)
PASS:   gsl_sf_bessel_Knu_impl( 1.0, 1.0, &r)
PASS:   gsl_sf_bessel_Knu_impl(10.0, 0.001, &r)
PASS:   gsl_sf_bessel_Knu_impl(10.0, 1.0, &r)
PASS:   gsl_sf_bessel_Knu_impl(10.0, 100.0, &r)
PASS:   gsl_sf_bessel_Knu_impl(10.2, 100.0, &r)
PASS:   gsl_sf_bessel_Knu_impl(30.0, 1.0, &r)
PASS:   gsl_sf_bessel_Knu_impl(30.0, 100.0, &r)
PASS:   gsl_sf_bessel_lnKnu_impl(0.0001,1.0e-100, &r)
PASS:   gsl_sf_bessel_lnKnu_impl(0.0001,0.0001, &r)
PASS:   gsl_sf_bessel_lnKnu_impl(0.0001,10.0, &r)
PASS:   gsl_sf_bessel_lnKnu_impl( 1.0, 1.0e-100, &r)
PASS:   gsl_sf_bessel_lnKnu_impl( 1.0, 1.0e-10, &r)
PASS:   gsl_sf_bessel_lnKnu_impl( 1.0, 0.001, &r)
PASS:   gsl_sf_bessel_lnKnu_impl( 1.0, 1.0, &r)
PASS:   gsl_sf_bessel_lnKnu_impl(30.0, 1.0e-100, &r)
PASS:   gsl_sf_bessel_lnKnu_impl(30.0, 1.0, &r)
PASS:   gsl_sf_bessel_lnKnu_impl(30.0, 100.0, &r)
PASS:   gsl_sf_bessel_lnKnu_impl(100.0, 1.0e-100, &r)
PASS:   gsl_sf_bessel_lnKnu_impl(100.0, 1.0, &r)
PASS:   gsl_sf_bessel_lnKnu_impl(100.0, 100.0, &r)
PASS:   gsl_sf_bessel_lnKnu_impl(1000.0, 1.0e-100, &r)
PASS:   gsl_sf_bessel_lnKnu_impl(10000.0, 1.0e-100, &r)
PASS:   gsl_sf_bessel_Jn_array_impl
PASS:   gsl_sf_bessel_Yn_array_impl
PASS:   gsl_sf_bessel_In_scaled_array_impl
PASS:   gsl_sf_bessel_In_array_impl
PASS:   gsl_sf_bessel_Kn_array_impl
PASS:   gsl_sf_bessel_Kn_scaled_array_impl
PASS:   gsl_sf_bessel_jl_array_impl
PASS:   gsl_sf_bessel_jl_steed_array_impl
PASS:   gsl_sf_bessel_yl_array_impl
PASS:   gsl_sf_bessel_il_scaled_array_impl
PASS:   gsl_sf_bessel_kl_scaled_array_impl
PASS:   gsl_sf_bessel_zero_J0_impl( 1, &r)
PASS:   gsl_sf_bessel_zero_J0_impl( 2, &r)
PASS:   gsl_sf_bessel_zero_J0_impl(20, &r)
PASS:   gsl_sf_bessel_zero_J0_impl(25, &r)
PASS:   gsl_sf_bessel_zero_J0_impl(100, &r)
PASS:   gsl_sf_bessel_zero_J1_impl( 1, &r)
PASS:   gsl_sf_bessel_zero_J1_impl( 2, &r)
PASS:   gsl_sf_bessel_zero_J1_impl(20, &r)
PASS:   gsl_sf_bessel_zero_J1_impl(25, &r)
PASS:   gsl_sf_bessel_zero_J1_impl(100, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(0.0, 1, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(0.0, 2, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(0.0, 20, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(0.0, 25, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(0.0, 100, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 1.5, 1, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 1, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 1.5, 2, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 2, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 1.5, 3, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 3, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 1.5, 4, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 4, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 1.5, 5, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 5, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 8.0, 5, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(20.0, 5, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 1.5, 6, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 6, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 8.0, 6, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 1.5, 7, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 7, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 8.0, 7, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 1.5, 8, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 8, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(10.0, 8, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 1.5, 9, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 9, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(10.0, 9, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 1.5, 10, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 10, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(15.0, 10, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 11, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(15.0, 11, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 12, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(15.0, 12, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 13, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(15.0, 13, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 14, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(15.0, 14, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 15, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(15.0, 15, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 16, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(15.0, 16, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 17, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(15.0, 17, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 18, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(15.0, 18, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 19, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(15.0, 19, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 20, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(15.0, 20, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 23.0, 11, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 30.0, 11, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 32.0, 15, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 50.0, 15, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 5.0, 22, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 10.0, 22, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl( 12.0, 22, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(100.0, 22, &r)
PASS:   gsl_sf_bessel_zero_Jnu_impl(500.0, 22, &r)
PASS:   gsl_sf_sequence_Jnu_impl(2)
PASS:   gsl_sf_sequence_Jnu_impl(12)
PASS:   gsl_sf_sequence_Jnu_impl(1000)
PASS: Bessel Functions
PASS:   gsl_sf_cheb_eval_impl()
PASS:   gsl_sf_cheb_eval_n_impl()
PASS:   gsl_sf_cheb_calc_impl()
PASS:   gsl_sf_cheb_eval_deriv_impl()
PASS:   gsl_sf_cheb_eval_integ_impl()
PASS: Chebyshev Evaluation
PASS:   gsl_sf_clausen_impl(M_PI/20.0, &r)
PASS:   gsl_sf_clausen_impl(M_PI/6.0, &r)
PASS:   gsl_sf_clausen_impl(M_PI/3.0, &r)
PASS:   gsl_sf_clausen_impl( 2.0*M_PI + M_PI/3.0, &r)
PASS:   gsl_sf_clausen_impl(100.0*M_PI + M_PI/3.0, &r)
PASS: Clausen Integral
PASS:   gsl_sf_hydrogenicR_1_impl(3.0, 2.0, &r)
PASS:   gsl_sf_hydrogenicR_1_impl(3.0, 10.0, &r)
PASS:   gsl_sf_hydrogenicR_impl(4, 0, 3.0, 2.0, &r)
PASS:   gsl_sf_hydrogenicR_impl(4, 1, 3.0, 2.0, &r)
PASS:   gsl_sf_hydrogenicR_impl(4, 2, 3.0, 2.0, &r)
PASS:   gsl_sf_hydrogenicR_impl(100, 0, 3.0, 2.0, &r)
PASS:   gsl_sf_hydrogenicR_impl(100, 10, 3.0, 2.0, &r)
PASS:   gsl_sf_hydrogenicR_impl(100, 90, 3.0, 2.0, &r)
PASS:   gsl_sf_coulomb_wave_FG_impl(1.0, 5.0, lam_F=0, lam_G=0)
PASS:   gsl_sf_coulomb_wave_FG_impl(1.0, 5.0, lam_F=10, lam_G=8)
PASS:   gsl_sf_coulomb_wave_FG_impl(50.0, 120.0, lam_F=4, lam_G=2)
PASS:   gsl_sf_coulomb_wave_FG_impl(-1000.0, 1.0, lam_F=0, lam_G=0)
PASS:   gsl_sf_coulomb_wave_FG_impl(-50.0, 5.0, lam_F=0, lam_G=0)
PASS:   gsl_sf_coulomb_wave_FG_impl(-50.0, 1000.0, lam_F=0, lam_G=0)
PASS:   gsl_sf_coulomb_wave_FG_impl(-50.0, 5.0, lam_F=10, lam_G=10)
PASS:   gsl_sf_coulomb_wave_FG_impl(-4.0, 5.0, lam_F=0, lam_G=0
PASS:   gsl_sf_coulomb_wave_FG_impl(-4.0, 5.0, lam_F=3, lam_G=3
PASS:   gsl_sf_coulomb_wave_FG_impl(1.0, 2.0, lam_F=0, lam_G=0)
PASS:   gsl_sf_coulomb_wave_FG_impl(1.0, 0.5, lam_F=0, lam_G=0)
PASS:   gsl_sf_coulomb_wave_FG_impl(1.0, 0.5, lam_F=0.5, lam_G=0.5)
PASS:   gsl_sf_coulomb_wave_FG_impl(1.0, 0.5, lam_F=0.1, lam_G=0.1)
PASS:   gsl_sf_coulomb_wave_FG_impl(8.0, 1.05, lam_F=0, lam_G=0)
PASS:   gsl_sf_coulomb_wave_FG_impl(8.0, 1.05, lam_F=0.1, lam_G=0.1)
PASS:   gsl_sf_coulomb_wave_FG_impl(50.0, 0.1, lam_F=0, lam_G=0)
PASS:   gsl_sf_coulomb_wave_FG_impl(10.0, 5.0, lam_F=0, lam_G=0)
PASS:   gsl_sf_coulomb_wave_FG_impl(25.0, 10.0, lam_F=0, lam_G=0)
PASS:   gsl_sf_coulomb_wave_FG_impl(1.0, 9.2, lam_F=0, lam_G=0)
PASS:   gsl_sf_coulomb_wave_FG_impl(10.0, 10.0, lam_F=0, lam_G=0)
PASS:   gsl_sf_coulomb_wave_FG_impl(100.0, 1.0, lam_F=0, lam_G=0)
PASS: Coulomb Wave Functions
PASS:   gsl_sf_coupling_3j_impl(0, 1, 1, 0, 1, -1, &r)
PASS:   gsl_sf_coupling_3j_impl(1, 1, 2, 1, -1, 0, &r)
PASS:   gsl_sf_coupling_3j_impl(2, 4, 6, 0, 2, -2, &r)
PASS:   gsl_sf_coupling_6j_impl(2, 2, 4, 2, 2, 2, &r)
PASS:   gsl_sf_coupling_9j_impl(4, 2, 4, 3, 3, 2, 1, 1, 2, &r)
PASS:   gsl_sf_coupling_9j_impl(8, 4, 10, 7, 3, 8, 1, 1, 2, &r)
PASS: Coupling Coefficients
PASS:   gsl_sf_dawson_impl(1.0e-15, &r)
PASS:   gsl_sf_dawson_impl(0.5, &r)
PASS:   gsl_sf_dawson_impl(2.0, &r)
PASS:   gsl_sf_dawson_impl(1000.0, &r)
PASS: Dawson Integral
PASS:   gsl_sf_debye_1_impl(0.1, &r)
PASS:   gsl_sf_debye_1_impl(1.0, &r)
PASS:   gsl_sf_debye_1_impl(10.0, &r)
PASS:   gsl_sf_debye_2_impl(0.1, &r)
PASS:   gsl_sf_debye_2_impl(1.0, &r)
PASS:   gsl_sf_debye_2_impl(10.0, &r)
PASS:   gsl_sf_debye_3_impl(0.1, &r)
PASS:   gsl_sf_debye_3_impl(1.0, &r)
PASS:   gsl_sf_debye_3_impl(10.0, &r)
PASS:   gsl_sf_debye_4_impl(0.1, &r)
PASS:   gsl_sf_debye_4_impl(1.0, &r)
PASS:   gsl_sf_debye_4_impl(10.0, &r)
PASS: Debye Functions
PASS:   gsl_sf_dilog_impl(-3.0, &r)
PASS:   gsl_sf_dilog_impl(-0.5, &r)
PASS:   gsl_sf_dilog_impl(-0.001, &r)
PASS:   gsl_sf_dilog_impl(0.1, &r)
PASS:   gsl_sf_dilog_impl(0.7, &r)
PASS:   gsl_sf_dilog_impl(1.0, &r)
PASS:   gsl_sf_dilog_impl(1.5, &r)
PASS:   gsl_sf_dilog_impl(2.0, &r)
PASS:   gsl_sf_dilog_impl( 5.0, &r)
PASS:   gsl_sf_dilog_impl( 11.0, &r)
PASS:   gsl_sf_dilog_impl(12.59, &r)
PASS:   gsl_sf_dilog_impl(12.595, &r)
PASS:   gsl_sf_dilog_impl(13.0, &r)
PASS:   gsl_sf_dilog_impl(20.0, &r)
PASS:   gsl_sf_dilog_impl(150.0, &r)
PASS:   gsl_sf_dilog_impl(1100.0, &r)
PASS:   gsl_sf_complex_dilog_impl(1.00001, M_PI/2.0, &r1, &r2)
PASS:   gsl_sf_complex_dilog_impl(0.99999, M_PI/2.0, &r1, &r2)
PASS:   gsl_sf_complex_dilog_impl(0.991, M_PI/2.0, &r1, &r2)
PASS:   gsl_sf_complex_dilog_impl(0.98, M_PI/2.0, &r1, &r2)
PASS:   gsl_sf_complex_dilog_impl(0.95, M_PI/2.0, &r1, &r2)
PASS:   gsl_sf_complex_dilog_impl(0.8, M_PI/2.0, &r1, &r2)
PASS:   gsl_sf_complex_dilog_impl(0.5, M_PI/2.0, &r1, &r2)
PASS:   gsl_sf_complex_dilog_impl(0.01, M_PI/2.0, &r1, &r2)
PASS:   gsl_sf_complex_dilog_impl(10.0, M_PI/2.0, &r1, &r2)
PASS:   gsl_sf_complex_dilog_impl(100.0, M_PI/2.0, &r1, &r2)
PASS:   gsl_sf_complex_dilog_impl(0.99, M_PI/8.0, &r1, &r2)
PASS:   gsl_sf_complex_dilog_impl(0.99, M_PI/64.0, &r1, &r2)
PASS:   gsl_sf_complex_dilog_impl(0.9, 3.0*M_PI/4.0, &r1, &r2)
PASS: Dilogarithm
PASS:   gsl_sf_multiply_impl(-3.0,2.0, &r)
PASS:   gsl_sf_multiply_impl(x, 1.0/x, &r)
PASS:   gsl_sf_multiply_impl(x, 0.2, &r)
PASS:   gsl_sf_multiply_impl(x, 4.0, &r)
FAIL: Elementary Functions (Misc)
PASS:   gsl_sf_ellint_Kcomp_impl( 0.99, mode, &r)
PASS:   gsl_sf_ellint_Kcomp_impl( 0.50, mode, &r)
PASS:   gsl_sf_ellint_Kcomp_impl(0.010, mode, &r)
PASS:   gsl_sf_ellint_Ecomp_impl(0.99, mode, &r)
PASS:   gsl_sf_ellint_Ecomp_impl(0.50, mode, &r)
PASS:   gsl_sf_ellint_Ecomp_impl(0.01, mode, &r)
PASS:   gsl_sf_ellint_F_impl(M_PI/3.0, 0.99, mode, &r)
PASS:   gsl_sf_ellint_F_impl(M_PI/3.0, 0.50, mode, &r)
PASS:   gsl_sf_ellint_F_impl(M_PI/3.0, 0.01, mode, &r)
PASS:   gsl_sf_ellint_E_impl(M_PI/3.0, 0.99, mode, &r)
PASS:   gsl_sf_ellint_E_impl(M_PI/3.0, 0.50, mode, &r)
PASS:   gsl_sf_ellint_E_impl(M_PI/3.0, 0.01, mode, &r)
PASS:   gsl_sf_ellint_P_impl(M_PI/3.0, 0.99, 0.5, mode, &r)
PASS:   gsl_sf_ellint_P_impl(M_PI/3.0, 0.50, 0.5, mode, &r)
PASS:   gsl_sf_ellint_P_impl(M_PI/3.0, 0.01, 0.5, mode, &r)
PASS:   gsl_sf_ellint_RF_impl(5.0e-11, 1.0e-10, 1.0, mode, &r)
PASS:   gsl_sf_ellint_RF_impl(1.0, 2.0, 3.0, mode, &r)
PASS:   gsl_sf_ellint_RD_impl(5.0e-11, 1.0e-10, 1.0, mode, &r)
PASS:   gsl_sf_ellint_RD_impl(1.0, 2.0, 3.0, mode, &r)
PASS:   gsl_sf_ellint_RC_impl(1.0, 2.0, mode, &r)
PASS:   gsl_sf_ellint_RJ_impl(2.0, 3.0, 4.0, 5.0, mode, &r)
PASS: Elliptic Integrals
PASS:   gsl_sf_elljac_impl(0.5|0.5)
PASS:   gsl_sf_elljac_impl(2.0|0.999999)
PASS: Elliptic Functions (Jacobi)
PASS:   gsl_sf_erfc_impl(-10.0, &r)
PASS:   gsl_sf_erfc_impl(-1.0, &r)
PASS:   gsl_sf_erfc_impl(-0.5, &r)
PASS:   gsl_sf_erfc_impl(1.0, &r)
PASS:   gsl_sf_erfc_impl(3.0, &r)
PASS:   gsl_sf_erfc_impl(7.0, &r)
PASS:   gsl_sf_erfc_impl(10.0, &r)
PASS:   gsl_sf_log_erfc_impl(-1.0, &r)
PASS:   gsl_sf_log_erfc_impl(1.0, &r)
PASS:   gsl_sf_log_erfc_impl(10.0, &r)
PASS:   gsl_sf_erf_impl(-10.0, &r)
PASS:   gsl_sf_erf_impl(0.5, &r)
PASS:   gsl_sf_erf_impl(1.0, &r)
PASS:   gsl_sf_erf_impl(10.0, &r)
PASS:   gsl_sf_erf_Z_impl(1.0, &r)
PASS:   gsl_sf_erf_Q_impl(10.0, &r)
PASS: Error Functions
PASS:   gsl_sf_exp_impl(-10.0, &r)
PASS:   gsl_sf_exp_impl( 10.0, &r)
PASS:   gsl_sf_exp_e10_impl(1.0, &re)
PASS:   gsl_sf_exp_e10_impl(2000.0, &re)
PASS:   gsl_sf_exp_err_impl(-10.0, TEST_TOL1, &r)
PASS:   gsl_sf_exp_err_impl( 10.0, TEST_TOL1, &r)
PASS:   gsl_sf_exp_err_e10_impl(1.0, TEST_SQRT_TOL0, &re)
PASS:   gsl_sf_exp_err_e10_impl(2000.0, 1.0e-10, &re)
PASS:   gsl_sf_exp_mult_impl(-10.0, 1.0e-06, &r)
PASS:   gsl_sf_exp_mult_impl(-10.0, 2.0, &r)
PASS:   gsl_sf_exp_mult_impl(-10.0, -2.0, &r)
PASS:   gsl_sf_exp_mult_impl( 10.0, 1.0e-06, &r)
PASS:   gsl_sf_exp_mult_impl( 10.0, -2.0, &r)
PASS:   gsl_sf_exp_mult_impl(x, 1.00001, &r)
PASS:   gsl_sf_exp_mult_impl(x, 1.000001, &r)
PASS:   gsl_sf_exp_mult_impl(x, 1.000000001, &r)
PASS:   gsl_sf_exp_mult_impl(x, 100.0, &r)
PASS:   gsl_sf_exp_mult_impl(x, 1.0e+20, &r)
PASS:   gsl_sf_exp_mult_impl(x, exp(-x)*exp(M_LN2), &r)
PASS:   gsl_sf_exp_mult_err_impl(-10.0, TEST_SQRT_TOL0, 2.0, TEST_SQRT_TOL0, &r)
PASS:   gsl_sf_exp_mult_err_impl(x, TEST_SQRT_TOL0*x, exp(-x)*exp(M_LN2), TEST_SQRT_TOL0*x, &r)
PASS: gsl_sf_exp_mult_e10_impl(1.0, 1.0, &re)
PASS: gsl_sf_exp_mult_e10_impl(1000.0, 1.0e+200, &re)
PASS: gsl_sf_exp_mult_e10_impl(1.0, TEST_TOL0, 1.0, TEST_TOL0, &re)
PASS: gsl_sf_exp_mult_err_e10_impl(1.0e-12, 1.0e+200, &re)
PASS:   gsl_sf_expm1_impl(-10.0, &r)
PASS:   gsl_sf_expm1_impl(-0.001, &r)
PASS:   gsl_sf_expm1_impl(-1.0e-8, &r)
PASS:   gsl_sf_expm1_impl( 1.0e-8, &r)
PASS:   gsl_sf_expm1_impl( 0.001, &r)
PASS:   gsl_sf_expm1_impl( 10.0, &r)
PASS:   gsl_sf_exprel_impl(-10.0, &r)
PASS:   gsl_sf_exprel_impl(-0.001, &r)
PASS:   gsl_sf_exprel_impl(-1.0e-8, &r)
PASS:   gsl_sf_exprel_impl( 1.0e-8, &r)
PASS:   gsl_sf_exprel_impl( 0.001, &r)
PASS:   gsl_sf_exprel_impl( 10.0, &r)
PASS:   gsl_sf_exprel_2_impl(-10.0, &r)
PASS:   gsl_sf_exprel_2_impl(-0.001, &r)
PASS:   gsl_sf_exprel_2_impl(-1.0e-8, &r)
PASS:   gsl_sf_exprel_2_impl( 1.0e-8, &r)
PASS:   gsl_sf_exprel_2_impl( 0.001, &r)
PASS:   gsl_sf_exprel_2_impl( 10.0, &r)
PASS:   gsl_sf_exprel_n_impl(3, -1000.0, &r)
PASS:   gsl_sf_exprel_n_impl(3, -100.0, &r)
PASS:   gsl_sf_exprel_n_impl(3, -10.0, &r)
PASS:   gsl_sf_exprel_n_impl(3, -3.0, &r)
PASS:   gsl_sf_exprel_n_impl(3, -0.001, &r)
PASS:   gsl_sf_exprel_n_impl(3, -1.0e-8, &r)
PASS:   gsl_sf_exprel_n_impl(3, 1.0e-8, &r)
PASS:   gsl_sf_exprel_n_impl(3, 0.001, &r)
PASS:   gsl_sf_exprel_n_impl(3, 3.0, &r)
PASS:   gsl_sf_exprel_n_impl(3, 3.1, &r)
PASS:   gsl_sf_exprel_n_impl(3, 10.0, &r)
PASS:   gsl_sf_exprel_n_impl(3, 100.0, &r)
PASS:   gsl_sf_exprel_n_impl(50, -1000.0, &r)
PASS:   gsl_sf_exprel_n_impl(50, -100.0, &r)
PASS:   gsl_sf_exprel_n_impl(50, -10.0, &r)
PASS:   gsl_sf_exprel_n_impl(50, -3.0, &r)
PASS:   gsl_sf_exprel_n_impl(50, -1.0, &r)
PASS:   gsl_sf_exprel_n_impl(50, -1.0e-8, &r)
PASS:   gsl_sf_exprel_n_impl(50, 1.0e-8, &r)
PASS:   gsl_sf_exprel_n_impl(50, 1.0, &r)
PASS:   gsl_sf_exprel_n_impl(50, 3.0, &r)
PASS:   gsl_sf_exprel_n_impl(50, 48.0, &r)
PASS:   gsl_sf_exprel_n_impl(50, 50.1, &r)
PASS:   gsl_sf_exprel_n_impl(50, 100.0, &r)
PASS:   gsl_sf_exprel_n_impl(50, 500.0, &r)
PASS:   gsl_sf_exprel_n_impl(500, -1000.0, &r)
PASS:   gsl_sf_exprel_n_impl(500, -100.0, &r)
PASS:   gsl_sf_exprel_n_impl(500, -10.0, &r)
PASS:   gsl_sf_exprel_n_impl(500, -3.0, &r)
PASS:   gsl_sf_exprel_n_impl(500, -1.0, &r)
PASS:   gsl_sf_exprel_n_impl(500, -1.0e-8, &r)
PASS:   gsl_sf_exprel_n_impl(500, 1.0e-8, &r)
PASS:   gsl_sf_exprel_n_impl(500, 1.0, &r)
PASS:   gsl_sf_exprel_n_impl(500, 3.0, &r)
PASS:   gsl_sf_exprel_n_impl(500, 48.0, &r)
PASS:   gsl_sf_exprel_n_impl(500, 100.0, &r)
PASS:   gsl_sf_exprel_n_impl(500, 500.0, &r)
PASS:   gsl_sf_exprel_n_impl(500, 1000.0, &r)
PASS:   gsl_sf_exprel_n_impl(500, 1600.0, &r)
PASS: Exponential Functions
PASS:   gsl_sf_expint_E1_impl(-1.0, &r)
PASS:   gsl_sf_expint_E1_impl(1.0e-10, &r)
PASS:   gsl_sf_expint_E1_impl(1.0e-05, &r)
PASS:   gsl_sf_expint_E1_impl(0.1, &r)
PASS:   gsl_sf_expint_E1_impl(1.0, &r)
PASS:   gsl_sf_expint_E1_impl(10.0, &r)
PASS:   gsl_sf_expint_E1_impl(50.0, &r)
PASS:   gsl_sf_expint_E1_impl(300.0, &r)
PASS:   gsl_sf_expint_E2_impl(-1.0, &r)
PASS:   gsl_sf_expint_E2_impl(1.0/4294967296.0, &r)
PASS:   gsl_sf_expint_E2_impl(1.0/65536.0, &r)
PASS:   gsl_sf_expint_E2_impl(0.1, &r)
PASS:   gsl_sf_expint_E2_impl(1.0, &r)
PASS:   gsl_sf_expint_E2_impl(10.0, &r)
PASS:   gsl_sf_expint_E2_impl(50.0, &r)
PASS:   gsl_sf_expint_E2_impl(300.0, &r)
PASS:   gsl_sf_expint_Ei_impl(-1.0, &r)
PASS:   gsl_sf_expint_Ei_impl(1.0/4294967296.0, &r)
PASS:   gsl_sf_expint_Ei_impl(1.0, &r)
PASS:   gsl_sf_Shi_impl(-1.0, &r)
PASS:   gsl_sf_Shi_impl(1.0/4294967296.0, &r)
PASS:   gsl_sf_Shi_impl(1.0/65536.0, &r)
PASS:   gsl_sf_Shi_impl(0.1, &r)
PASS:   gsl_sf_Shi_impl(1.0, &r)
PASS:   gsl_sf_Shi_impl(10.0, &r)
PASS:   gsl_sf_Shi_impl(50.0, &r)
PASS:   gsl_sf_Shi_impl(300.0, &r)
PASS:   gsl_sf_Chi_impl(-1.0, &r)
PASS:   gsl_sf_Chi_impl(1.0/4294967296.0, &r)
PASS:   gsl_sf_Chi_impl(1.0/65536.0, &r)
PASS:   gsl_sf_Chi_impl(1.0/8.0, &r)
PASS:   gsl_sf_Chi_impl(1.0, &r)
PASS:   gsl_sf_Chi_impl(10.0, &r)
PASS:   gsl_sf_Chi_impl(50.0, &r)
PASS:   gsl_sf_Chi_impl(300.0, &r)
PASS:   gsl_sf_expint_3_impl(1.0e-10, &r)
PASS:   gsl_sf_expint_3_impl(1.0e-05, &r)
PASS:   gsl_sf_expint_3_impl(0.1, &r)
PASS:   gsl_sf_expint_3_impl(0.5, &r)
PASS:   gsl_sf_expint_3_impl(1.0, &r)
PASS:   gsl_sf_expint_3_impl(2.0, &r)
PASS:   gsl_sf_expint_3_impl(5.0, &r)
PASS:   gsl_sf_expint_3_impl(10.0, &r)
PASS:   gsl_sf_expint_3_impl(100.0, &r)
PASS:   gsl_sf_Si_impl(-1.0, &r)
PASS:   gsl_sf_Si_impl(1.0e-10, &r)
PASS:   gsl_sf_Si_impl(1.0e-05, &r)
PASS:   gsl_sf_Si_impl(0.1, &r)
PASS:   gsl_sf_Si_impl(1.0, &r)
PASS:   gsl_sf_Si_impl(10.0, &r)
PASS:   gsl_sf_Si_impl(50.0, &r)
PASS:   gsl_sf_Si_impl(300.0, &r)
PASS:   gsl_sf_Ci_impl(1.0/4294967296.0, &r)
PASS:   gsl_sf_Ci_impl(1.0/65536.0, &r)
PASS:   gsl_sf_Ci_impl(1.0/8.0, &r)
PASS:   gsl_sf_Ci_impl(1.0, &r)
PASS:   gsl_sf_Ci_impl(10.0, &r)
PASS:   gsl_sf_Ci_impl(50.0, &r)
PASS:   gsl_sf_Ci_impl(300.0, &r)
PASS:   gsl_sf_Ci_impl(65536.0, &r)
PASS:   gsl_sf_Ci_impl(4294967296.0, &r)
PASS:   gsl_sf_Ci_impl(1099511627776.0, &r)
PASS:   gsl_sf_atanint_impl(1.0e-10, &r)
PASS:   gsl_sf_atanint_impl(1.0e-05, &r)
PASS:   gsl_sf_atanint_impl(0.1, &r)
PASS:   gsl_sf_atanint_impl(1.0, &r)
PASS:   gsl_sf_atanint_impl(2.0, &r)
PASS:   gsl_sf_atanint_impl(10.0, &r)
PASS:   gsl_sf_atanint_impl(50.0, &r)
PASS:   gsl_sf_atanint_impl(300.0, &r)
PASS:   gsl_sf_atanint_impl(1.0e+5, &r)
PASS: Exponential/Sine/Cosine Integrals
PASS:   gsl_sf_fermi_dirac_m1_impl(-10.0, &r)
PASS:   gsl_sf_fermi_dirac_m1_impl( -1.0, &r)
PASS:   gsl_sf_fermi_dirac_m1_impl( 1.0, &r)
PASS:   gsl_sf_fermi_dirac_m1_impl( 10.0, &r)
PASS:   gsl_sf_fermi_dirac_0_impl(-10.0, &r)
PASS:   gsl_sf_fermi_dirac_0_impl( -1.0, &r)
PASS:   gsl_sf_fermi_dirac_0_impl( 1.0, &r)
PASS:   gsl_sf_fermi_dirac_0_impl( 10.0, &r)
PASS:   gsl_sf_fermi_dirac_1_impl(-10.0, &r)
PASS:   gsl_sf_fermi_dirac_1_impl( -2.0, &r)
PASS:   gsl_sf_fermi_dirac_1_impl( -1.0, &r)
PASS:   gsl_sf_fermi_dirac_1_impl( -0.4, &r)
PASS:   gsl_sf_fermi_dirac_1_impl( 0.4, &r)
PASS:   gsl_sf_fermi_dirac_1_impl( 1.0, &r)
PASS:   gsl_sf_fermi_dirac_1_impl( 1.5, &r)
PASS:   gsl_sf_fermi_dirac_1_impl( 2.5, &r)
PASS:   gsl_sf_fermi_dirac_1_impl( 10.0, &r)
PASS:   gsl_sf_fermi_dirac_1_impl( 12.0, &r)
PASS:   gsl_sf_fermi_dirac_1_impl( 20.0, &r)
PASS:   gsl_sf_fermi_dirac_1_impl( 50.0, &r)
PASS:   gsl_sf_fermi_dirac_2_impl(-10.0, &r)
PASS:   gsl_sf_fermi_dirac_2_impl( -2.0, &r)
PASS:   gsl_sf_fermi_dirac_2_impl( -1.0, &r)
PASS:   gsl_sf_fermi_dirac_2_impl( -0.4, &r)
PASS:   gsl_sf_fermi_dirac_2_impl( 0.4, &r)
PASS:   gsl_sf_fermi_dirac_2_impl( 1.0, &r)
PASS:   gsl_sf_fermi_dirac_2_impl( 1.5, &r)
PASS:   gsl_sf_fermi_dirac_2_impl( 2.5, &r)
PASS:   gsl_sf_fermi_dirac_2_impl( 10.0, &r)
PASS:   gsl_sf_fermi_dirac_2_impl( 12.0, &r)
PASS:   gsl_sf_fermi_dirac_2_impl( 20.0, &r)
PASS:   gsl_sf_fermi_dirac_2_impl( 50.0, &r)
PASS:   gsl_sf_fermi_dirac_2_impl(200.0, &r)
PASS:   gsl_sf_fermi_dirac_mhalf_impl(-10.0, &r)
PASS:   gsl_sf_fermi_dirac_mhalf_impl( -2.0, &r)
PASS:   gsl_sf_fermi_dirac_mhalf_impl( -1.0, &r)
PASS:   gsl_sf_fermi_dirac_mhalf_impl( -0.4, &r)
PASS:   gsl_sf_fermi_dirac_mhalf_impl( 0.4, &r)
PASS:   gsl_sf_fermi_dirac_mhalf_impl( 1.0, &r)
PASS:   gsl_sf_fermi_dirac_mhalf_impl( 1.5, &r)
PASS:   gsl_sf_fermi_dirac_mhalf_impl( 2.5, &r)
PASS:   gsl_sf_fermi_dirac_mhalf_impl( 10.0, &r)
PASS:   gsl_sf_fermi_dirac_mhalf_impl( 12.0, &r)
PASS:   gsl_sf_fermi_dirac_mhalf_impl( 20.0, &r)
PASS:   gsl_sf_fermi_dirac_mhalf_impl( 50.0, &r)
PASS:   gsl_sf_fermi_dirac_half_impl(-10.0, &r)
PASS:   gsl_sf_fermi_dirac_half_impl( -2.0, &r)
PASS:   gsl_sf_fermi_dirac_half_impl( -1.0, &r)
PASS:   gsl_sf_fermi_dirac_half_impl( -0.4, &r)
PASS:   gsl_sf_fermi_dirac_half_impl( 0.4, &r)
PASS:   gsl_sf_fermi_dirac_half_impl( 1.0, &r)
PASS:   gsl_sf_fermi_dirac_half_impl( 1.5, &r)
PASS:   gsl_sf_fermi_dirac_half_impl( 2.5, &r)
PASS:   gsl_sf_fermi_dirac_half_impl( 10.0, &r)
PASS:   gsl_sf_fermi_dirac_half_impl( 12.0, &r)
PASS:   gsl_sf_fermi_dirac_half_impl( 20.0, &r)
PASS:   gsl_sf_fermi_dirac_half_impl( 50.0, &r)
PASS:   gsl_sf_fermi_dirac_3half_impl(-10.0, &r)
PASS:   gsl_sf_fermi_dirac_3half_impl( -2.0, &r)
PASS:   gsl_sf_fermi_dirac_3half_impl( -1.0, &r)
PASS:   gsl_sf_fermi_dirac_3half_impl( -0.4, &r)
PASS:   gsl_sf_fermi_dirac_3half_impl( 0.4, &r)
PASS:   gsl_sf_fermi_dirac_3half_impl( 1.0, &r)
PASS:   gsl_sf_fermi_dirac_3half_impl( 1.5, &r)
PASS:   gsl_sf_fermi_dirac_3half_impl( 2.5, &r)
PASS:   gsl_sf_fermi_dirac_3half_impl( 10.0, &r)
PASS:   gsl_sf_fermi_dirac_3half_impl( 12.0, &r)
PASS:   gsl_sf_fermi_dirac_3half_impl( 20.0, &r)
PASS:   gsl_sf_fermi_dirac_3half_impl( 50.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(3, -2.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(3, 0.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(3, 0.1, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(3, 1.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(3, 3.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(3, 100.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(3, 500.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(5, -2.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(5, 0.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(5, 0.1, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(5, 1.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(5, 3.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(5, 100.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(5, 500.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(7, -2.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(7, 0.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(7, 0.1, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(7, 1.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(7, 3.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(7, 10.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(7, 50.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(7, 500.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(9, -2.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(9, 0.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(9, 0.1, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(9, 1.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(9, 3.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(9, 10.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(9, 50.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(9, 500.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(10, -2.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(10, 0.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(10, 0.1, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(10, 1.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(10, 3.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(10, 10.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(10, 50.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(10, 500.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(11, -2.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(11, 0.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(11, 0.1, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(11, 1.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(11, 3.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(11, 10.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(11, 50.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(11, 500.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(20, -2.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(20, 0.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(20, 0.1, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(20, 1.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(20, 3.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(20, 10.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(20, 50.0, &r)
PASS:   gsl_sf_fermi_dirac_int_impl(20, 500.0, &r)
PASS: Fermi-Dirac Functions
PASS:   gsl_sf_lngamma_impl(-0.1, &r)
PASS:   gsl_sf_lngamma_impl(-1.0/256.0, &r)
PASS:   gsl_sf_lngamma_impl(1.0e-08, &r)
PASS:   gsl_sf_lngamma_impl(0.1, &r)
PASS:   gsl_sf_lngamma_impl(1.0 + 1.0/256.0, &r)
PASS:   gsl_sf_lngamma_impl(2.0 + 1.0/256.0, &r)
PASS:   gsl_sf_lngamma_impl(100.0, &r)
PASS:   gsl_sf_lngamma_impl(-1.0-1.0/65536.0, &r)
PASS:   gsl_sf_lngamma_impl(-1.0-1.0/268435456.0, &r)
PASS:   gsl_sf_lngamma_impl(-100.5, &r)
PASS:   gsl_sf_lngamma_impl(-100-1.0/65536.0, &r)
PASS:   gsl_sf_lngamma_sgn_impl(0.7, &r, &sgn)
PASS:   gsl_sf_lngamma_sgn_impl(0.1, &r, &sgn)
PASS:   gsl_sf_lngamma_sgn_impl(-0.1, &r, &sgn)
PASS:   gsl_sf_lngamma_sgn_impl(-1.0-1.0/65536.0, &r, &sgn)
PASS:   gsl_sf_lngamma_sgn_impl(-2.0-1.0/256.0, &r, &sgn)
PASS:   gsl_sf_lngamma_sgn_impl(-2.0-1.0/65536.0, &r, &sgn)
PASS:   gsl_sf_lngamma_sgn_impl(-3.0-1.0/8.0, &r, &sgn)
PASS:   gsl_sf_lngamma_sgn_impl(-100.5, &r, &sgn)
PASS:   gsl_sf_gamma_impl(1.0 + 1.0/4096.0, &r)
PASS:   gsl_sf_gamma_impl(1.0 + 1.0/32.0, &r)
PASS:   gsl_sf_gamma_impl(2.0 + 1.0/256.0, &r)
PASS:   gsl_sf_gamma_impl(9.0, &r)
PASS:   gsl_sf_gamma_impl(10.0, &r)
PASS:   gsl_sf_gamma_impl(100.0, &r)
PASS:   gsl_sf_gamma_impl(170.0, &r)
PASS:   gsl_sf_gamma_impl(-10.5, &r)
PASS:   gsl_sf_gamma_impl(-11.25, &r)
PASS:   gsl_sf_gamma_impl(-1.0+1.0/65536.0, &r)
PASS:   gsl_sf_gammastar_impl(1.0e-08, &r)
PASS:   gsl_sf_gammastar_impl(1.0e-05, &r)
PASS:   gsl_sf_gammastar_impl(0.001, &r)
PASS:   gsl_sf_gammastar_impl(1.5, &r)
PASS:   gsl_sf_gammastar_impl(3.0, &r)
PASS:   gsl_sf_gammastar_impl(9.0, &r)
PASS:   gsl_sf_gammastar_impl(11.0, &r)
PASS:   gsl_sf_gammastar_impl(100.0, &r)
PASS:   gsl_sf_gammastar_impl(1.0e+05, &r)
PASS:   gsl_sf_gammastar_impl(1.0e+20, &r)
PASS:   gsl_sf_gammainv_impl(10.0, &r)
PASS:   gsl_sf_gammainv_impl(100.0, &r)
PASS:   gsl_sf_gammainv_impl(-10.5, &r)
PASS:   gsl_sf_gammainv_impl(-11.25, &r)
PASS:   gsl_sf_gammainv_impl(-1.0+1.0/65536.0, &r)
PASS:   gsl_sf_lngamma_complex_impl(5.0, 2.0, &r1, &r2)
PASS:   gsl_sf_lngamma_complex_impl(100.0, 100.0, &r1, &r2)
PASS:   gsl_sf_lngamma_complex_impl(100.0, -1000.0, &r1, &r2)
PASS:   gsl_sf_lngamma_complex_impl(-100.0, -1.0, &r1, &r2)
PASS:   gsl_sf_taylorcoeff_impl(10, 1.0/1048576.0, &r)
PASS:   gsl_sf_taylorcoeff_impl(10, 1.0/1024.0, &r)
PASS:   gsl_sf_taylorcoeff_impl(10, 1.0, &r)
PASS:   gsl_sf_taylorcoeff_impl(10, 5.0, &r)
PASS:   gsl_sf_taylorcoeff_impl(10, 500.0, &r)
PASS:   gsl_sf_taylorcoeff_impl(100, 100.0, &r)
PASS:   gsl_sf_taylorcoeff_impl(1000, 200.0, &r)
PASS:   gsl_sf_taylorcoeff_impl(1000, 500.0, &r)
PASS:   gsl_sf_fact_impl(0, &r)
PASS:   gsl_sf_fact_impl(1, &r)
PASS:   gsl_sf_fact_impl(7, &r)
PASS:   gsl_sf_fact_impl(33, &r)
PASS:   gsl_sf_doublefact_impl(0, &r)
PASS:   gsl_sf_doublefact_impl(1, &r)
PASS:   gsl_sf_doublefact_impl(7, &r)
PASS:   gsl_sf_doublefact_impl(33, &r)
PASS:   gsl_sf_lnfact_impl(0, &r)
PASS:   gsl_sf_lnfact_impl(1, &r)
PASS:   gsl_sf_lnfact_impl(7, &r)
PASS:   gsl_sf_lnfact_impl(33, &r)
PASS:   gsl_sf_lndoublefact_impl(0, &r)
PASS:   gsl_sf_lndoublefact_impl(7, &r)
PASS:   gsl_sf_lndoublefact_impl(33, &r)
PASS:   gsl_sf_lndoublefact_impl(34, &r)
PASS:   gsl_sf_lndoublefact_impl(1034, &r)
PASS:   gsl_sf_lndoublefact_impl(1035, &r)
PASS:   gsl_sf_lnchoose_impl(7,3, &r)
PASS:   gsl_sf_lnchoose_impl(5,2, &r)
PASS:   gsl_sf_choose_impl(7,3, &r)
PASS:   gsl_sf_choose_impl(5,2, &r)
PASS:   gsl_sf_choose_impl(500,200, &r)
PASS:   gsl_sf_lnpoch_impl(5, 1.0/65536.0, &r)
PASS:   gsl_sf_lnpoch_impl(5, 1.0/256.0, &r)
PASS:   gsl_sf_lnpoch_impl(7,3, &r)
PASS:   gsl_sf_lnpoch_impl(5,2, &r)
PASS:   gsl_sf_lnpoch_sgn_impl(-4.5, 0.25, &r, &sgn)
PASS:   gsl_sf_lnpoch_sgn_impl(-4.5, 1.25, &r, &sgn)
PASS:   gsl_sf_poch_impl(7,3, &r)
PASS:   gsl_sf_poch_impl(5,2, &r)
PASS:   gsl_sf_poch_impl(5,1.0/256.0, &r)
PASS:   gsl_sf_pochrel_impl(7,3, &r)
PASS:   gsl_sf_pochrel_impl(5,2, &r)
PASS:   gsl_sf_pochrel_impl(5,0.01, &r)
PASS:   gsl_sf_pochrel_impl(-5.5,0.01, &r)
PASS:   gsl_sf_pochrel_impl(-5.5,-1.0/8.0, &r)
PASS:   gsl_sf_pochrel_impl(-5.5,-1.0/256.0, &r)
PASS:   gsl_sf_pochrel_impl(-5.5,-11.0, &r)
PASS:   gsl_sf_gamma_inc_P_impl(0.001, 0.001, &r)
PASS:   gsl_sf_gamma_inc_P_impl(0.001, 1.0, &r)
PASS:   gsl_sf_gamma_inc_P_impl(0.001, 10.0, &r)
PASS:   gsl_sf_gamma_inc_P_impl(1.0, 0.001, &r)
PASS:   gsl_sf_gamma_inc_P_impl(1.0, 1.01, &r)
PASS:   gsl_sf_gamma_inc_P_impl(1.0, 10.0, &r)
PASS:   gsl_sf_gamma_inc_P_impl(10.0, 10.01, &r)
PASS:   gsl_sf_gamma_inc_P_impl(10.0, 20.0, &r)
PASS:   gsl_sf_gamma_inc_P_impl(1000.0, 1000.1, &r)
PASS:   gsl_sf_gamma_inc_P_impl(1000.0, 2000.0, &r)
PASS:   gsl_sf_gamma_inc_Q_impl(0.001, 0.001, &r)
PASS:   gsl_sf_gamma_inc_Q_impl(0.001, 1.0, &r)
PASS:   gsl_sf_gamma_inc_Q_impl(0.001, 2.0, &r)
PASS:   gsl_sf_gamma_inc_Q_impl(0.001, 5.0, &r)
PASS:   gsl_sf_gamma_inc_Q_impl(1.0, 0.001, &r)
PASS:   gsl_sf_gamma_inc_Q_impl(1.0, 1.01, &r)
PASS:   gsl_sf_gamma_inc_Q_impl(1.0, 10.0, &r)
PASS:   gsl_sf_gamma_inc_Q_impl(10.0, 10.01, &r)
PASS:   gsl_sf_gamma_inc_Q_impl(10.0, 100.0, &r)
PASS:   gsl_sf_gamma_inc_Q_impl(1000.0, 1000.1, &r)
PASS:   gsl_sf_gamma_inc_Q_impl(1000.0, 2000.0, &r)
PASS:   gsl_sf_gamma_inc_Q_impl(100, 99.0, &r)
PASS:   gsl_sf_gamma_inc_Q_impl(200, 199.0, &r)
PASS:   gsl_sf_gamma_inc_P_impl(100, 99.0, &r)
PASS:   gsl_sf_gamma_inc_P_impl(200, 199.0, &r)
PASS:   gsl_sf_lnbeta_impl(1.0e-8, 1.0e-8, &r)
PASS:   gsl_sf_lnbeta_impl(1.0e-8, 0.01, &r)
PASS:   gsl_sf_lnbeta_impl(1.0e-8, 1.0, &r)
PASS:   gsl_sf_lnbeta_impl(1.0e-8, 10.0, &r)
PASS:   gsl_sf_lnbeta_impl(1.0e-8, 1000.0, &r)
PASS:   gsl_sf_lnbeta_impl(0.1, 0.1, &r)
PASS:   gsl_sf_lnbeta_impl(0.1, 1.0, &r)
PASS:   gsl_sf_lnbeta_impl(0.1, 100.0, &r)
PASS:   gsl_sf_lnbeta_impl(0.1, 1000, &r)
PASS:   gsl_sf_lnbeta_impl(1.0, 1.00025, &r)
PASS:   gsl_sf_lnbeta_impl(1.0, 1.01, &r)
PASS:   gsl_sf_lnbeta_impl(1.0, 1000.0, &r)
PASS:   gsl_sf_lnbeta_impl(100.0, 100.0, &r)
PASS:   gsl_sf_lnbeta_impl(100.0, 1000.0, &r)
PASS:   gsl_sf_lnbeta_impl(100.0, 1.0e+8, &r)
PASS:   gsl_sf_beta_impl(1.0, 1.0, &r)
PASS:   gsl_sf_beta_impl(1.0, 1.001, &r)
PASS:   gsl_sf_beta_impl(1.0, 5.0, &r)
PASS:   gsl_sf_beta_impl(1.0, 100.0, &r)
PASS:   gsl_sf_beta_impl(10.0, 100.0, &r)
PASS:   gsl_sf_beta_inc_impl(1.0, 1.0, 0.0, &r)
PASS:   gsl_sf_beta_inc_impl(1.0, 1.0, 1.0, &r)
PASS:   gsl_sf_beta_inc_impl(0.1, 0.1, 1.0, &r)
PASS:   gsl_sf_beta_inc_impl( 1.0, 1.0, 0.5, &r)
PASS:   gsl_sf_beta_inc_impl( 0.1, 1.0, 0.5, &r)
PASS:   gsl_sf_beta_inc_impl(10.0, 1.0, 0.5, &r)
PASS:   gsl_sf_beta_inc_impl(50.0, 1.0, 0.5, &r)
PASS:   gsl_sf_beta_inc_impl( 1.0, 0.1, 0.5, &r)
PASS:   gsl_sf_beta_inc_impl( 1.0, 10.0, 0.5, &r)
PASS:   gsl_sf_beta_inc_impl( 1.0, 50.0, 0.5, &r)
PASS:   gsl_sf_beta_inc_impl( 1.0, 1.0, 0.1, &r)
PASS:   gsl_sf_beta_inc_impl( 1.0, 2.0, 0.1, &r)
PASS:   gsl_sf_beta_inc_impl( 1.0, 2.0, 0.9, &r)
PASS:   gsl_sf_beta_inc_impl(50.0, 60.0, 0.5, &r)
PASS:   gsl_sf_beta_inc_impl(90.0, 90.0, 0.5, &r)
PASS:   gsl_sf_beta_inc_impl( 500.0, 500.0, 0.6, &r)
PASS:   gsl_sf_beta_inc_impl(5000.0, 5000.0, 0.4, &r)
PASS:   gsl_sf_beta_inc_impl(5000.0, 5000.0, 0.6, &r)
PASS:   gsl_sf_beta_inc_impl(5000.0, 2000.0, 0.6, &r)
PASS: Gamma Functions
PASS:   gsl_sf_gegenpoly_1_impl(-0.2, 1.0, &r)
PASS:   gsl_sf_gegenpoly_1_impl( 0.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_1_impl( 1.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_1_impl( 1.0, 0.5, &r)
PASS:   gsl_sf_gegenpoly_1_impl( 5.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_1_impl( 100.0, 0.5, &r)
PASS:   gsl_sf_gegenpoly_2_impl(-0.2, 0.5, &r)
PASS:   gsl_sf_gegenpoly_2_impl( 0.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_2_impl( 1.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_2_impl( 1.0, 0.1, &r)
PASS:   gsl_sf_gegenpoly_2_impl( 5.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_2_impl( 100.0, 0.5, &r)
PASS:   gsl_sf_gegenpoly_3_impl(-0.2, 0.5, &r)
PASS:   gsl_sf_gegenpoly_3_impl( 0.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_3_impl( 1.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_3_impl( 1.0, 0.1, &r)
PASS:   gsl_sf_gegenpoly_3_impl( 5.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_3_impl( 100.0, 0.5, &r)
PASS:   gsl_sf_gegenpoly_n_impl(1, 1.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_n_impl(10, 1.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_n_impl(10, 1.0, 0.1, &r)
PASS:   gsl_sf_gegenpoly_n_impl(10, 5.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_n_impl(10, 100.0, 0.5, &r)
PASS:   gsl_sf_gegenpoly_n_impl(1000, 100.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_n_impl(100, 2000.0, 1.0, &r)
PASS:   gsl_sf_gegenpoly_n_impl(103, 207.0, 2.0, &r)
PASS:   gsl_sf_gegenpoly_n_impl(103, -0.4, 0.3, &r)
PASS:   gsl_sf_gegenpoly_array_impl
PASS: Gegenbauer Polynomials
PASS:   gsl_sf_hyperg_0F1_impl(1, 0.5, &r)
PASS:   gsl_sf_hyperg_0F1_impl(5, 0.5, &r)
PASS:   gsl_sf_hyperg_0F1_impl(100, 30, &r)
PASS:   gsl_sf_hyperg_0F1_impl(-0.5, 3, &r)
PASS:   gsl_sf_hyperg_0F1_impl(-100.5, 50, &r)
PASS:   gsl_sf_hyperg_0F1_impl(1, -5.0, &r)
PASS:   gsl_sf_hyperg_0F1_impl(-0.5, -5.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(1, 1, 0.5, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(1, 2, 500.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(1, 2, -500.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(8, 1, 0.5, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 1, 1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 1, 10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 1, 100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 20, 1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 20, 10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 20, 100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 100, 1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 100, 10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 100, 40.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 100, 80.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 100, 100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 100, 500.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 1, 1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 1, 10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 1, 100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 200, 1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 200, 10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 200, 100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 200, 400.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 400, 10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 400, 100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 400, 150.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 400, 200.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 400, 300.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 400, 400.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 400, 600.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 1, -1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 1, -10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 1, -100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 50, -1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 100, -10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 100, -100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 100, -500.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(10, 100, -10000.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(50, 1, -90.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(50, 1, -100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(50, 1, -110.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 10, -100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 1, -90.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 1, -100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 1, -110.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(100, 10, -100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(200, 50, -1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(200, 50, -300.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(200, 100, -1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(200, 100, -10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(200, 100, -100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(200, 100, -500.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-1, 1, 2.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-1, -2, 2.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-2, -3, 2.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, 1, 1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, 1, 10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, 1, 100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-100, 20, 1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, -20, 1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, -20, 10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, -20, 100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, -100, 1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, -100, 10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, -100, 100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-100, -200, 1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-100, -200, 10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-100, -200, 100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, -20, -1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, -20, -10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, -20, -100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, -100, -1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, -100, -10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-10, -100, -100.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-100, -200, -1.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-100, -200, -10.0, &r)
PASS:   gsl_sf_hyperg_1F1_int_impl(-100, -200, -100.0, &r)
PASS:   gsl_sf_hyperg_1F1_impl(1, 1.5, 1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(1, 1.5, 10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(1, 1.5, 100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(1, 1.5, 500, &r)
PASS:   gsl_sf_hyperg_1F1_impl(1.5, 2.5, 1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(1.5, 2.5, 10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(10, 1.1, 1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(10, 1.1, 10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(10, 1.1, 100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(10, 1.1, 500, &r)
PASS:   gsl_sf_hyperg_1F1_impl(10, 50.1, 2, &r)
PASS:   gsl_sf_hyperg_1F1_impl(10, 50.1, 10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(10, 50.1, 100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(10, 50.1, 500, &r)
PASS:   gsl_sf_hyperg_1F1_impl(100, 1.1, 1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(100, 1.1, 10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(100, 1.1, 100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(100, 50.1, 1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(100, 50.1, 10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(100, 50.1, 100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(1, 1.5, -1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(1, 1.5, -10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(1, 1.5, -100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(1, 1.5, -500, &r)
PASS:   gsl_sf_hyperg_1F1_impl(1, 1.1, -500, &r)
PASS:   gsl_sf_hyperg_1F1_impl(10, 1.1, -1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(10, 1.1, -10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(10, 1.1, -500, &r)
PASS:   gsl_sf_hyperg_1F1_impl(50, 1.1, -90, &r)
PASS:   gsl_sf_hyperg_1F1_impl(50, 1.1, -100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(50, 1.1, -110.0, &r)
PASS:   gsl_sf_hyperg_1F1_impl(100, 1.1, -1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(100, 1.1, -10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(100, 1.1, -50, &r)
PASS:   gsl_sf_hyperg_1F1_impl(100, 1.1, -90, &r)
PASS:   gsl_sf_hyperg_1F1_impl(100, 1.1, -99, &r)
PASS:   gsl_sf_hyperg_1F1_impl(100, 1.1, -100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-10, -10.1, 10.0, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-10, -10.1, 1000.0, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-10, -100.1, 10.0, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-1000, -1000.1, 10.0, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-1000, -1000.1, 200.0, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-8.1, -10.1, -10.0, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-10, -5.1, 1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-10, -5.1, 10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-10, -5.1, 100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, -50.1, -1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, -50.1, -10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, -50.1, -100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, -50.1, 1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, -50.1, 10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-10.5, -8.1, 0.1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-10.5, -11.1, 1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100.5, -80.1, 10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100.5, -102.1, 10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100.5, -500.1, 10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100.5, -500.1, 100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-500.5, -80.1, 2, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, 1.1, 1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, 1.1, 10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, 1.1, 100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, 20.1, 1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, 20.1, 10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, 20.1, 100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, 1.1, -1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, 1.1, -10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, 1.1, -100, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, 50.1, -1, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, 50.1, -10, &r)
PASS:   gsl_sf_hyperg_1F1_impl(-100, 50.1, -100, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 1, 0.0001, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 1, 0.01, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 1, 0.5, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 1, 2.0, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 1, 100, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 1, 1000, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 8, 0.01, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 8, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 8, 5, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 8, 8, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 8, 50, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 8, 100, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 8, 1000, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 20, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 20, 20, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 50, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 50, 50, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 100, 0.1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 100, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 100, 50, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 100, 100, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 100, 200, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 100, 1000, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, 1000, 2000, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -1, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -1, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -10, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -10, 5, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -10, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -10, 20, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -100, 0.01, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -100, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -100, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -100, 20, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -100, 50, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -100, 90, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -100, 110, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -1000, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(1, -1000, 1010, &r)
PASS:   gsl_sf_hyperg_U_int_impl(8, 1, 0.001, &r)
PASS:   gsl_sf_hyperg_U_int_impl(8, 1, 0.5, &r)
PASS:   gsl_sf_hyperg_U_int_impl(8, 1, 8, &r)
PASS:   gsl_sf_hyperg_U_int_impl(8, 1, 20, &r)
PASS:   gsl_sf_hyperg_U_int_impl(8, 8, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(8, 8, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(8, 8, 20, &r)
PASS:   gsl_sf_hyperg_U_int_impl(100, 100, 0.01, &r)
PASS:   gsl_sf_hyperg_U_int_impl(100, 100, 0.1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(100, 100, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(100, 100, 20, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-10, 1, 0.01, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-10, 1, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-10, 1, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-10, 1, 100, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-10, 10, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-10, 100, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-10, 100, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-10, 100, 100, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-10, 100, 500, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-50, 1, 0.01, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-50, 1, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-50, 1, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-50, 10, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-50, 100, 1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-50, 10, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-50, 100, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-90, 1, 0.01, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-90, 1, 0.1, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-90, 1, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-90, 10, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-90, 100, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-90, 1000, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-50, -1, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-50, -10, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-50, -100, 0.01, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-50, -100, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-100, -100, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-100, -200, 10, &r)
PASS:   gsl_sf_hyperg_U_int_impl(-100, -200, 100, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 0.0001, 0.0001, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 0.0001, 1.0, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 0.0001, 100.0, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 1, 0.0001, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 1.0, 1.0, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 10, 1, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 10, 5, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 10, 10, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 100, 1, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 100, 10, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 100, 50, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 100, 98, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 1000, 300, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 1000, 999, &r)
PASS:   gsl_sf_hyperg_U_impl(0.0001, 1000, 1100, &r)
PASS:   gsl_sf_hyperg_U_impl(0.5, 1000, 300, &r)
PASS:   gsl_sf_hyperg_U_impl(0.5, 1000, 800, &r)
PASS:   gsl_sf_hyperg_U_impl(0.5, 1000, 998, &r)
PASS:   gsl_sf_hyperg_U_impl(0.5, 0.5, 1.0, &r)
PASS:   gsl_sf_hyperg_U_impl(1, 0.0001, 0.0001, &r)
PASS:   gsl_sf_hyperg_U_impl(1, 0.0001, 1, &r)
PASS:   gsl_sf_hyperg_U_impl(1, 0.0001, 100, &r)
PASS:   gsl_sf_hyperg_U_impl(1, 1.2, 2.0, &r)
PASS:   gsl_sf_hyperg_U_impl(1, -0.0001, 1, &r)
PASS:   gsl_sf_hyperg_U_impl(8, 10.5, 1, &r)
PASS:   gsl_sf_hyperg_U_impl(8, 10.5, 10, &r)
PASS:   gsl_sf_hyperg_U_impl(8, 10.5, 100, &r)
PASS:   gsl_sf_hyperg_U_impl(10, -2.5, 10, &r)
PASS:   gsl_sf_hyperg_U_impl(10, 2.5, 10, &r)
PASS:   gsl_sf_hyperg_U_impl(10, 2.5, 50, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 1.1, 1, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 1.1, 10, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 1.1, 50, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 1.1, 90, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 1.1, 99, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 1.1, 100, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 1.1, 200, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 10.1, 0.1, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 10.1, 1, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 10.1, 4, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 10.1, 10, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 10.1, 50, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 100.4, 10, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 100.4, 50, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 100.4, 80, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 100.4, 100, &r)
PASS:   gsl_sf_hyperg_U_impl(-10.5, 100.4, 200, &r)
PASS:   gsl_sf_hyperg_U_impl(-19.5, 82.1, 10, &r)
PASS:   gsl_sf_hyperg_U_impl(-50.5, 100.1, 10, &r)
PASS:   gsl_sf_hyperg_U_impl(-50.5, 100.1, 40, &r)
PASS:   gsl_sf_hyperg_U_impl(-50.5, 100.1, 50, &r)
PASS:   gsl_sf_hyperg_U_impl(-50.5, 100.1, 70, &r)
PASS:   gsl_sf_hyperg_U_impl(-50.5, 100.1, 100, &r)
PASS:   gsl_sf_hyperg_2F1_impl(1, 1, 1, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_impl(8, 8, 1, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_impl(8, -8, 1, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_impl(8, -8.1, 1, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_impl(8, -8, 1, -0.5, &r)
PASS:   gsl_sf_hyperg_2F1_impl(8, -8, -5.5, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_impl(8, -8, -5.5, -0.5, &r)
PASS:   gsl_sf_hyperg_2F1_impl(8, 8, 1, -0.5, &r)
PASS:   gsl_sf_hyperg_2F1_impl(8, 8, 5, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_impl(8, 8, 5, -0.5, &r)
PASS:   gsl_sf_hyperg_2F1_impl(9, 9, 1, 0.99, &r)
PASS:   gsl_sf_hyperg_2F1_impl(9, 9, -1.5, 0.99, &r)
PASS:   gsl_sf_hyperg_2F1_impl(9, 9, -1.5, -0.99, &r)
PASS:   gsl_sf_hyperg_2F1_impl(9, 9, -8.5, 0.99, &r)
PASS:   gsl_sf_hyperg_2F1_impl(9, 9, -8.5, -0.99, &r)
PASS:   gsl_sf_hyperg_2F1_impl(9, 9, -21.5, 0.99, &r)
PASS:   gsl_sf_hyperg_2F1_impl(9, 9, -21.5, -0.99, &r)
PASS:   gsl_sf_hyperg_2F1_impl(9, 9, -100.5, 0.99, &r)
PASS:   gsl_sf_hyperg_2F1_impl(9, 9, -100.5, -0.99, &r)
PASS:   gsl_sf_hyperg_2F1_impl(25, 25, 1, -0.5, &r)
PASS:   gsl_sf_hyperg_2F1_conj_impl(1, 1, 1, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_conj_impl(8, 8, 1, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_conj_impl(8, 8, 5, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_conj_impl(8, 8, 1, -0.5, &r)
PASS:   gsl_sf_hyperg_2F1_conj_impl(8, 8, 5, -0.5, &r)
PASS:   gsl_sf_hyperg_2F1_conj_impl(25, 25, 1, -0.5, &r)
PASS:   gsl_sf_hyperg_2F1_renorm_impl(1, 1, 1, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_renorm_impl(8, 8, 1, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_renorm_impl(8, -8, 1, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_renorm_impl(8, -8, 1, -0.5, &r)
PASS:   gsl_sf_hyperg_2F1_renorm_impl(8, -8, -5.5, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_renorm_impl(8, -8, -5.5, -0.5, &r)
PASS:   gsl_sf_hyperg_2F1_renorm_impl(8, 8, 5, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_renorm_impl(9, 9, -1.5, 0.99, &r)
PASS:   gsl_sf_hyperg_2F1_renorm_impl(9, 9, -1.5, -0.99, &r)
PASS:   gsl_sf_hyperg_2F1_renorm_impl(5, 5, -1, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_renorm_impl(5, 5, -10, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_renorm_impl(5, 5, -100, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_conj_renorm_impl(9, 9, -1.5, 0.99, &r)
PASS:   gsl_sf_hyperg_2F1_conj_renorm_impl(9, 9, -1.5, -0.99, &r)
PASS:   gsl_sf_hyperg_2F1_conj_renorm_impl(5, 5, -1, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_conj_renorm_impl(5, 5, -10, 0.5, &r)
PASS:   gsl_sf_hyperg_2F1_conj_renorm_impl(5, 5, -100, 0.5, &r)
PASS: Hypergeometric Functions
PASS:   gsl_sf_laguerre_1_impl(0.5, -1.0, &r)
PASS:   gsl_sf_laguerre_1_impl(0.5, 1.0, &r)
PASS:   gsl_sf_laguerre_1_impl(1.0, 1.0, &r)
PASS:   gsl_sf_laguerre_2_impl( 0.5, -1.0, &r)
PASS:   gsl_sf_laguerre_2_impl( 0.5, 1.0, &r)
PASS:   gsl_sf_laguerre_2_impl( 1.0, 1.0, &r)
PASS:   gsl_sf_laguerre_2_impl(-1.0, 1.0, &r)
PASS:   gsl_sf_laguerre_2_impl(-2.0, 1.0, &r)
PASS:   gsl_sf_laguerre_2_impl(-3.0, 1.0, &r)
PASS:   gsl_sf_laguerre_3_impl(0.5, -1.0, &r)
PASS:   gsl_sf_laguerre_3_impl(0.5, 1.0, &r)
PASS:   gsl_sf_laguerre_3_impl(1.0, 1.0, &r)
PASS:   gsl_sf_laguerre_3_impl( 2.0, 1.0, &r)
PASS:   gsl_sf_laguerre_3_impl(-2.0, 1.0, &r)
PASS:   gsl_sf_laguerre_3_impl(-3.0, 1.0, &r)
PASS:   gsl_sf_laguerre_3_impl(-4.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(1, 0.5, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(2, 1.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(3, 2.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(4, 2.0, 0.5, &r)
PASS:   gsl_sf_laguerre_n_impl(90, 2.0, 0.5, &r)
PASS:   gsl_sf_laguerre_n_impl(90, 2.0, -100.0, &r)
PASS:   gsl_sf_laguerre_n_impl(90, 2.0, 100.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, 2.0, -0.5, &r)
PASS:   gsl_sf_laguerre_n_impl(100, 2.0, 0.5, &r)
PASS:   gsl_sf_laguerre_n_impl(1000, 2.0, -0.5, &r)
PASS:   gsl_sf_laguerre_n_impl(1000, 2.0, 0.5, &r)
PASS:   gsl_sf_laguerre_n_impl(100000, 2.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(1, -2.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(2, -2.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(3, -2.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(10, -2.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(10, -5.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(10, -9.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(10, -11.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(10, -11.0, -1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -2.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -2.0, -1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -10.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -10.0, -1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -20.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -30.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -50.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -50.0, -1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -50.5, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -50.5, -1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -101.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -101.0, -1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -102.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -102.0, -1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -110.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -110.0, -1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -200.0, 1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -200.0, -1.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -50.0, 10.0, &r)
PASS:   gsl_sf_laguerre_n_impl(100, -50.0, -10.0, &r)
PASS: Laguerre Polynomials
PASS:   gsl_sf_legendre_P1_impl(-0.5, &r)
PASS:   gsl_sf_legendre_P1_impl( 0.5, &r)
PASS:   gsl_sf_legendre_P2_impl(0.0, &r)
PASS:   gsl_sf_legendre_P2_impl(0.5, &r)
PASS:   gsl_sf_legendre_P2_impl(1.0, &r)
PASS:   gsl_sf_legendre_P2_impl(100.0, &r)
PASS:   gsl_sf_legendre_P3_impl( -0.5, &r)
PASS:   gsl_sf_legendre_P3_impl( 0.5, &r)
PASS:   gsl_sf_legendre_P3_impl( 1.0, &r)
PASS:   gsl_sf_legendre_P3_impl(100.0, &r)
PASS:   gsl_sf_legendre_Pl_impl(1, -0.5, &r)
PASS:   gsl_sf_legendre_Pl_impl(1, 1.0e-8, &r)
PASS:   gsl_sf_legendre_Pl_impl(1, 0.5, &r)
PASS:   gsl_sf_legendre_Pl_impl(1, 1.0, &r)
PASS:   gsl_sf_legendre_Pl_impl(10, -0.5, &r)
PASS:   gsl_sf_legendre_Pl_impl(10, 1.0e-8, &r)
PASS:   gsl_sf_legendre_Pl_impl(10, 0.5, &r)
PASS:   gsl_sf_legendre_Pl_impl(10, 1.0, &r)
PASS:   gsl_sf_legendre_Pl_impl(99, -0.5, &r)
PASS:   gsl_sf_legendre_Pl_impl(99, 1.0e-8, &r)
PASS:   gsl_sf_legendre_Pl_impl(99, 0.5, &r)
PASS:   gsl_sf_legendre_Pl_impl(99, 0.999, &r)
PASS:   gsl_sf_legendre_Pl_impl(99, 1.0, &r)
PASS:   gsl_sf_legendre_Pl_impl(1000, -0.5, &r)
PASS:   gsl_sf_legendre_Pl_impl(1000, 1.0e-8, &r)
PASS:   gsl_sf_legendre_Pl_impl(1000, 0.5, &r)
PASS:   gsl_sf_legendre_Pl_impl(1000, 1.0, &r)
PASS:   gsl_sf_legendre_Pl_impl(4000, -0.5, &r)
PASS:   gsl_sf_legendre_Pl_impl(4000, 0.5, &r)
PASS:   gsl_sf_legendre_Pl_impl(4000, 1.0, &r)
PASS:   gsl_sf_legendre_Pl_array_impl(100)
PASS:   gsl_sf_legendre_Plm_impl(10, 0, -0.5, &r)
PASS:   gsl_sf_legendre_Plm_impl(10, 0, 1.0e-08, &r)
PASS:   gsl_sf_legendre_Plm_impl(10, 0, 0.5, &r)
PASS:   gsl_sf_legendre_Plm_impl(10, 1, -0.5, &r)
PASS:   gsl_sf_legendre_Plm_impl(10, 1, 1.0e-08, &r)
PASS:   gsl_sf_legendre_Plm_impl(10, 1, 0.5, &r)
PASS:   gsl_sf_legendre_Plm_impl(10, 5, -0.5, &r)
PASS:   gsl_sf_legendre_Plm_impl(10, 5, 1.0e-08, &r)
PASS:   gsl_sf_legendre_Plm_impl(10, 5, 0.5, &r)
PASS:   gsl_sf_legendre_Plm_impl(10, 5, 0.999, &r)
PASS:   gsl_sf_legendre_Plm_impl(100, 5, -0.5, &r)
PASS:   gsl_sf_legendre_Plm_impl(100, 5, 1.0e-08, &r)
PASS:   gsl_sf_legendre_Plm_impl(100, 5, 0.5, &r)
PASS:   gsl_sf_legendre_Plm_impl(100, 5, 0.999, &r)
PASS:   gsl_sf_legendre_Plm_array_impl(100, 5, 0.5)
PASS:   gsl_sf_legendre_sphPlm_impl(10, 0, -0.5, &r)
PASS:   gsl_sf_legendre_sphPlm_impl(10, 0, 0.5, &r)
PASS:   gsl_sf_legendre_sphPlm_impl(10, 0, 0.999, &r)
PASS:   gsl_sf_legendre_sphPlm_impl(10, 5, -0.5, &r)
PASS:   gsl_sf_legendre_sphPlm_impl(10, 5, 1.0e-08, &r)
PASS:   gsl_sf_legendre_sphPlm_impl(10, 5, 0.5, &r)
PASS:   gsl_sf_legendre_sphPlm_impl(10, 5, 0.999, &r)
PASS:   gsl_sf_legendre_sphPlm_impl(10, 10, -0.5, &r)
PASS:   gsl_sf_legendre_sphPlm_impl(10, 10, 0.5, &r)
PASS:   gsl_sf_legendre_sphPlm_impl(10, 10, 0.999, &r)
PASS:   gsl_sf_legendre_sphPlm_impl(200, 1, -0.5, &r)
PASS:   gsl_sf_legendre_sphPlm_impl(200, 1, 0.5, &r)
PASS:   gsl_sf_legendre_sphPlm_impl(200, 1, 0.999, &r)
PASS:   gsl_sf_legendre_sphPlm_array_impl(100, 5, 0.5)
PASS:   gsl_sf_conicalP_half_impl(0.0, -0.5, &r)
PASS:   gsl_sf_conicalP_half_impl(0.0, 0.5, &r)
PASS:   gsl_sf_conicalP_half_impl(0.0, 2.0, &r)
PASS:   gsl_sf_conicalP_half_impl(0.0, 100.0, &r)
PASS:   gsl_sf_conicalP_half_impl(10.0, -0.5, &r)
PASS:   gsl_sf_conicalP_half_impl(10.0, 0.5, &r)
PASS:   gsl_sf_conicalP_half_impl(10.0, 2.0, &r)
PASS:   gsl_sf_conicalP_half_impl(10.0, 100.0, &r)
PASS:   gsl_sf_conicalP_half_impl(200.0, -1.0e-3, &r)
PASS:   gsl_sf_conicalP_half_impl(200.0, 1.0e-8, &r)
PASS:   gsl_sf_conicalP_half_impl(200.0, 0.5, &r)
PASS:   gsl_sf_conicalP_half_impl(200.0, 10.0, &r)
PASS:   gsl_sf_conicalP_half_impl(200.0, 100.0, &r)
PASS:   gsl_sf_conicalP_half_impl(200.0, 1000.0, &r)
PASS:   gsl_sf_conicalP_half_impl(200.0, 1.0e+8, &r)
PASS:   gsl_sf_conicalP_half_impl(1.0e+8, 1.1, &r)
PASS:   gsl_sf_conicalP_half_impl(1.0e+8, 100.0, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(0.0, -0.5, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(0.0, 0.5, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(0.0, 2.0, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(0.0, 100.0, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(10.0, -0.5, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(10.0, 0.5, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(10.0, 2.0, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(10.0, 100.0, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(200.0, -0.5, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(200.0, 1.0e-8, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(200.0, 0.5, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(200.0, 10.0, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(200.0, 100.0, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(200.0, 1000.0, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(200.0, 1.0e+8, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(1.0e+8, 1.1, &r)
PASS:   gsl_sf_conicalP_mhalf_impl(1.0e+8, 100.0, &r)
PASS:   gsl_sf_conicalP_0_impl(0.0, -0.5, &r)
PASS:   gsl_sf_conicalP_0_impl(0.0, 0.5, &r)
PASS:   gsl_sf_conicalP_0_impl(0.0, 2.0, &r)
PASS:   gsl_sf_conicalP_0_impl(0.0, 100.0, &r)
PASS:   gsl_sf_conicalP_0_impl(10.0, -0.5, &r)
PASS:   gsl_sf_conicalP_0_impl(10.0, 0.5, &r)
PASS:   gsl_sf_conicalP_0_impl(10.0, 2.0, &r)
PASS:   gsl_sf_conicalP_0_impl(10.0, 100.0, &r)
PASS:   gsl_sf_conicalP_0_impl(200.0, -0.5, &r)
PASS:   gsl_sf_conicalP_0_impl(1000.0, 100.0, &r)
PASS:   gsl_sf_conicalP_0_impl(1000.0, 1000.0, &r)
PASS:   gsl_sf_conicalP_0_impl(1000.0, 1.0e+8, &r)
PASS:   gsl_sf_conicalP_1_impl(0.0, -0.5, &r)
PASS:   gsl_sf_conicalP_1_impl(0.0, 0.5, &r)
PASS:   gsl_sf_conicalP_1_impl(0.0, 2.0, &r)
PASS:   gsl_sf_conicalP_1_impl(0.0, 100.0, &r)
PASS:   gsl_sf_conicalP_1_impl(10.0, -0.5, &r)
PASS:   gsl_sf_conicalP_1_impl(10.0, 0.5, &r)
PASS:   gsl_sf_conicalP_1_impl(10.0, 2.0, &r)
PASS:   gsl_sf_conicalP_1_impl(10.0, 100.0, &r)
PASS:   gsl_sf_conicalP_1_impl(200.0, -0.999, &r)
PASS:   gsl_sf_conicalP_1_impl(200.0, -0.9, &r)
PASS:   gsl_sf_conicalP_1_impl(200.0, -0.5, &r)
PASS:   gsl_sf_conicalP_1_impl(200.0, 0.999, &r)
PASS:   gsl_sf_conicalP_1_impl(200.0, 10.0, &r)
PASS:   gsl_sf_conicalP_1_impl(1000.0, 100.0, &r)
PASS:   gsl_sf_conicalP_1_impl(1000.0, 1000.0, &r)
PASS:   gsl_sf_conicalP_1_impl(1000.0, 1.0e+8, &r)
PASS:   gsl_sf_conicalP_sph_reg_impl(2, 1.0, -0.5, &r)
PASS:   gsl_sf_conicalP_sph_reg_impl(10, 1.0, -0.5, &r)
PASS:   gsl_sf_conicalP_sph_reg_impl(20, 1.0, -0.5, &r)
PASS:   gsl_sf_conicalP_sph_reg_impl(30, 1.0, -0.5, &r)
PASS:   gsl_sf_conicalP_sph_reg_impl(10, 1.0, 0.5, &r)
PASS:   gsl_sf_conicalP_sph_reg_impl(20, 1.0, 0.5, &r)
PASS:   gsl_sf_conicalP_sph_reg_impl(30, 1.0, 0.5, &r)
PASS:   gsl_sf_conicalP_sph_reg_impl(10, 1.0, 2.0, &r)
PASS:   gsl_sf_conicalP_sph_reg_impl(20, 1.0, 2.0, &r)
PASS:   gsl_sf_conicalP_sph_reg_impl(30, 100.0, 100.0, &r)
PASS:   gsl_sf_conicalP_cyl_reg_impl(2, 1.0, -0.5, &r)
PASS:   gsl_sf_conicalP_cyl_reg_impl(10, 1.0, -0.5, &r)
PASS:   gsl_sf_conicalP_cyl_reg_impl(20, 1.0, -0.5, &r)
PASS:   gsl_sf_conicalP_cyl_reg_impl(30, 1.0, -0.5, &r)
PASS:   gsl_sf_conicalP_cyl_reg_impl(10, 1.0, 0.5, &r)
PASS:   gsl_sf_conicalP_cyl_reg_impl(20, 1.0, 0.5, &r)
PASS:   gsl_sf_conicalP_cyl_reg_impl(30, 1.0, 0.5, &r)
PASS:   gsl_sf_conicalP_cyl_reg_impl(10, 1.0, 2.0, &r)
PASS:   gsl_sf_conicalP_cyl_reg_impl(20, 1.0, 2.0, &r)
PASS:   gsl_sf_conicalP_cyl_reg_impl(30, 100.0, 100.0, &r)
PASS:   gsl_sf_legendre_H3d_0_impl(1.0e-06, 1.0e-06, &r)
PASS:   gsl_sf_legendre_H3d_0_impl(1.0, 0.0, &r)
PASS:   gsl_sf_legendre_H3d_0_impl(1.0, 1.0, &r)
PASS:   gsl_sf_legendre_H3d_0_impl(1.0, 100.0, &r)
PASS:   gsl_sf_legendre_H3d_0_impl(1.0, 500.0, &r)
PASS:   gsl_sf_legendre_H3d_0_impl(100.0, 1.0, &r)
PASS:   gsl_sf_legendre_H3d_0_impl(100.0, 10.0, &r)
PASS:   gsl_sf_legendre_H3d_0_impl(1000.0, 1.0, &r)
PASS:   gsl_sf_legendre_H3d_0_impl(1.0e+08, 1.0, &r)
PASS:   gsl_sf_legendre_H3d_0_impl(1.0e+08, 100.0, &r)
PASS:   gsl_sf_legendre_H3d_1_impl(1.0e-06, 1.0e-06, &r)
PASS:   gsl_sf_legendre_H3d_1_impl(1.0, 1.0e-10, &r)
PASS:   gsl_sf_legendre_H3d_1_impl(1.0, 1.0, &r)
PASS:   gsl_sf_legendre_H3d_1_impl(1.0, 100.0, &r)
PASS:   gsl_sf_legendre_H3d_1_impl(1.0, 500.0, &r)
PASS:   gsl_sf_legendre_H3d_1_impl(100.0, 0.01, &r)
PASS:   gsl_sf_legendre_H3d_1_impl(100.0, 1.0, &r)
PASS:   gsl_sf_legendre_H3d_1_impl(100.0, 10.0, &r)
PASS:   gsl_sf_legendre_H3d_1_impl(1000.0, 0.001, &r)
PASS:   gsl_sf_legendre_H3d_1_impl(1000.0, 1.0, &r)
PASS:   gsl_sf_legendre_H3d_1_impl(1.0e+08, 1.0e-08, &r)
PASS:   gsl_sf_legendre_H3d_1_impl(1.0e+08, 1.0, &r)
PASS:   gsl_sf_legendre_H3d_1_impl(1.0e+08, 100.0, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 1.0e-06, 1.0e-06, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 1.0, 1.0e-10, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 1.0, 1.0, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 1.0, 5.0, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 1.0, 7.0, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 1.0, 10.0, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 1.0, 100.0, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 1.0, 500.0, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 100.0, 0.001, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 100.0, 0.002, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 100.0, 0.01, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 100.0, 1.0, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 100.0, 10.0, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 1000.0, 0.001, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 1000.0, 0.01, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 1.0e+08, 1.0e-08, &r)
PASS:   gsl_sf_legendre_H3d_impl(5, 1.0e+08, 100.0, &r)
PASS:   gsl_sf_legendre_Q0_impl(-0.5, &r)
PASS:   gsl_sf_legendre_Q0_impl( 1.5, &r)
PASS:   gsl_sf_legendre_Q1_impl(-0.5, &r)
PASS:   gsl_sf_legendre_Q1_impl( 1.5, &r)
PASS:   gsl_sf_legendre_Ql_impl(10, -0.5, &r)
PASS:   gsl_sf_legendre_Ql_impl(10, 0.5, &r)
PASS:   gsl_sf_legendre_Ql_impl(10, 1.5, &r)
PASS:   gsl_sf_legendre_Ql_impl(100, -0.5, &r)
PASS:   gsl_sf_legendre_Ql_impl(100, 0.5, &r)
PASS:   gsl_sf_legendre_Ql_impl(100, 1.5, &r)
PASS:   gsl_sf_legendre_Ql_impl(1000, -0.5, &r)
PASS:   gsl_sf_legendre_Ql_impl(1000, 0.5, &r)
PASS:   gsl_sf_legendre_Ql_impl(1000, 1.1, &r)
PASS: Legendre Functions
PASS:   gsl_sf_log_impl(0.1, &r)
PASS:   gsl_sf_log_impl(1.1, &r)
PASS:   gsl_sf_log_impl(1000.0, &r)
PASS:   gsl_sf_log_abs_impl(-0.1, &r)
PASS:   gsl_sf_log_abs_impl(-1.1, &r)
PASS:   gsl_sf_log_abs_impl(-1000.0, &r)
PASS:   gsl_sf_log_abs_impl(0.1, &r)
PASS:   gsl_sf_log_abs_impl(1.1, &r)
PASS:   gsl_sf_log_abs_impl(1000.0, &r)
PASS:   gsl_sf_complex_log_impl(1.0, 1.0, &r1, &r2)
PASS:   gsl_sf_complex_log_impl(1.0, -1.0, &r1, &r2)
PASS:   gsl_sf_complex_log_impl(1.0, 100.0, &r1, &r2)
PASS:   gsl_sf_complex_log_impl(-1000.0, -1.0, &r1, &r2)
PASS:   gsl_sf_complex_log_impl(-1.0, 0.0, &r1, &r2)
PASS:   gsl_sf_log_1plusx_impl(1.0e-10, &r)
PASS:   gsl_sf_log_1plusx_impl(1.0e-8, &r)
PASS:   gsl_sf_log_1plusx_impl(1.0e-4, &r)
PASS:   gsl_sf_log_1plusx_impl(0.1, &r)
PASS:   gsl_sf_log_1plusx_impl(0.49, &r)
PASS:   gsl_sf_log_1plusx_impl(-0.49, &r)
PASS:   gsl_sf_log_1plusx_impl(1.0, &r)
PASS:   gsl_sf_log_1plusx_impl(-0.99, &r)
PASS:   gsl_sf_log_1plusx_mx_impl(1.0e-10, &r)
PASS:   gsl_sf_log_1plusx_mx_impl(1.0e-8, &r)
PASS:   gsl_sf_log_1plusx_mx_impl(1.0e-4, &r)
PASS:   gsl_sf_log_1plusx_mx_impl(0.1, &r)
PASS:   gsl_sf_log_1plusx_mx_impl(0.49, &r)
PASS:   gsl_sf_log_1plusx_mx_impl(-0.49, &r)
PASS:   gsl_sf_log_1plusx_mx_impl(1.0, &r)
PASS:   gsl_sf_log_1plusx_mx_impl(-0.99, &r)
PASS: Logarithm
PASS:   gsl_sf_poly_eval({1, 0.5, 0.3}, 0.5)
PASS:   gsl_sf_poly_eval({1,-1, 1, -1, 1, -1, 1, -1, 1, -1, 1}, 1.0)
PASS: Polynomial Evaluation
PASS:   gsl_sf_pow_int_impl(2.0, 3, &r)
PASS:   gsl_sf_pow_int_impl(-2.0, 3, &r)
PASS:   gsl_sf_pow_int_impl(2.0, -3, &r)
PASS:   gsl_sf_pow_int_impl(-2.0, -3, &r)
PASS:   gsl_sf_pow_int_impl(10.0, 4, &r)
PASS:   gsl_sf_pow_int_impl(10.0, -4, &r)
PASS:   gsl_sf_pow_int_impl(-10.0, 4, &r)
PASS:   gsl_sf_pow_int_impl(-10.0, -4, &r)
PASS:   gsl_sf_pow_int_impl(10.0, 40, &r)
PASS:   gsl_sf_pow_int_impl(8.0, -40, &r)
PASS:   gsl_sf_pow_int_impl(-10.0, 40, &r)
PASS:   gsl_sf_pow_int_impl(-8.0, -40, &r)
PASS:   gsl_sf_pow_int_impl(10.0, 41, &r)
PASS:   gsl_sf_pow_int_impl(8.0, -41, &r)
PASS:   gsl_sf_pow_int_impl(-10.0, 41, &r)
PASS:   gsl_sf_pow_int_impl(-8.0, -41, &r)
PASS: Integer Powers
PASS:   gsl_sf_psi_int_impl(5, &r)
PASS:   gsl_sf_psi_int_impl(100, &r)
PASS:   gsl_sf_psi_int_impl(110, &r)
PASS:   gsl_sf_psi_int_impl(5000, &r)
PASS:   gsl_sf_psi_impl(5.0, &r)
PASS:   gsl_sf_psi_impl(5000.0, &r)
PASS:   gsl_sf_psi_impl(-100.5, &r)
PASS:   gsl_sf_psi_impl(-1.0e+5-0.5, &r)
PASS:   gsl_sf_psi_1piy_impl(0.8, &r)
PASS:   gsl_sf_psi_1piy_impl(1.0, &r)
PASS:   gsl_sf_psi_1piy_impl(5.0, &r)
PASS:   gsl_sf_psi_1piy_impl(100.0, &r)
PASS:   gsl_sf_psi_1piy_impl(2000.0, &r)
PASS:   gsl_sf_psi_1_int_impl(5, &r)
PASS:   gsl_sf_psi_1_int_impl(100, &r)
PASS:   gsl_sf_psi_1_int_impl(110, &r)
PASS:   gsl_sf_psi_1_int_impl(500, &r)
PASS:   gsl_sf_psi_n_impl(3, 5.0, &r)
PASS:   gsl_sf_psi_n_impl(3, 500.0, &r)
PASS:   gsl_sf_psi_n_impl(10, 5.0, &r)
PASS:   gsl_sf_psi_n_impl(10, 50.0, &r)
PASS: Psi Functions
PASS:   gsl_sf_synchrotron_1_impl(0.01, &r)
PASS:   gsl_sf_synchrotron_1_impl(1.0, &r)
PASS:   gsl_sf_synchrotron_1_impl(10.0, &r)
PASS:   gsl_sf_synchrotron_1_impl(100.0, &r)
PASS:   gsl_sf_synchrotron_2_impl(0.01, &r)
PASS:   gsl_sf_synchrotron_2_impl(1.0, &r)
PASS:   gsl_sf_synchrotron_2_impl(10.0, &r)
PASS:   gsl_sf_synchrotron_2_impl(256.0, &r)
PASS: Synchrotron Functions
PASS:   gsl_sf_transport_2_impl(1.0e-10, &r)
PASS:   gsl_sf_transport_2_impl(1.0, &r)
PASS:   gsl_sf_transport_2_impl(3.0, &r)
PASS:   gsl_sf_transport_2_impl(10.0, &r)
PASS:   gsl_sf_transport_2_impl(100.0, &r)
PASS:   gsl_sf_transport_2_impl(1.0e+05, &r)
PASS:   gsl_sf_transport_3_impl(1.0e-10, &r)
PASS:   gsl_sf_transport_3_impl(1.0, &r)
PASS:   gsl_sf_transport_3_impl(3.0, &r)
PASS:   gsl_sf_transport_3_impl(5.0, &r)
PASS:   gsl_sf_transport_3_impl(10.0, &r)
PASS:   gsl_sf_transport_3_impl(30.0, &r)
PASS:   gsl_sf_transport_3_impl(100.0, &r)
PASS:   gsl_sf_transport_3_impl(1.0e+05, &r)
PASS:   gsl_sf_transport_4_impl(1.0e-10, &r)
PASS:   gsl_sf_transport_4_impl(1.0e-07, &r)
PASS:   gsl_sf_transport_4_impl(1.0e-04, &r)
PASS:   gsl_sf_transport_4_impl(0.1, &r)
PASS:   gsl_sf_transport_4_impl(1.0, &r)
PASS:   gsl_sf_transport_4_impl(3.0, &r)
PASS:   gsl_sf_transport_4_impl(5.0, &r)
PASS:   gsl_sf_transport_4_impl(10.0, &r)
PASS:   gsl_sf_transport_4_impl(30.0, &r)
PASS:   gsl_sf_transport_4_impl(100.0, &r)
PASS:   gsl_sf_transport_4_impl(1.0e+05, &r)
PASS:   gsl_sf_transport_5_impl(1.0e-10, &r)
PASS:   gsl_sf_transport_5_impl(1.0e-07, &r)
PASS:   gsl_sf_transport_5_impl(1.0e-04, &r)
PASS:   gsl_sf_transport_5_impl(0.1, &r)
PASS:   gsl_sf_transport_5_impl(1.0, &r)
PASS:   gsl_sf_transport_5_impl(3.0, &r)
PASS:   gsl_sf_transport_5_impl(5.0, &r)
PASS:   gsl_sf_transport_5_impl(10.0, &r)
PASS:   gsl_sf_transport_5_impl(30.0, &r)
PASS:   gsl_sf_transport_5_impl(100.0, &r)
PASS:   gsl_sf_transport_5_impl(1.0e+05, &r)
PASS: Transport Functions
PASS:   gsl_sf_sin_impl(-10.0, &r)
PASS:   gsl_sf_sin_impl(1.0, &r)
PASS:   gsl_sf_sin_impl(1000.0, &r)
PASS:   gsl_sf_sin_impl(1048576.75, &r)
PASS:   gsl_sf_sin_impl(62831853.75, &r)
PASS:   gsl_sf_sin_impl(1073741822.5, &r)
PASS:   gsl_sf_sin_impl(1073741824.0, &r)
PASS:   gsl_sf_sin_impl(1073741825.5, &r)
PASS:   gsl_sf_cos_impl(-10.0, &r)
PASS:   gsl_sf_cos_impl(1.0, &r)
PASS:   gsl_sf_cos_impl(1000.0, &r)
PASS:   gsl_sf_cos_impl(1048576.75, &r)
PASS:   gsl_sf_cos_impl(62831853.75, &r)
PASS:   gsl_sf_cos_impl(1073741822.5, &r)
PASS:   gsl_sf_cos_impl(1073741824.0, &r)
PASS:   gsl_sf_sinc_impl(1.0/1024.0, &r)
PASS:   gsl_sf_sinc_impl(1.0/2.0, &r)
PASS:   gsl_sf_sinc_impl(80.5, &r)
PASS:   gsl_sf_sinc_impl(100.5, &r)
PASS:   gsl_sf_sinc_impl(1.0e+06 + 0.5, &r)
PASS:   gsl_sf_complex_sin_impl(1.0, 5.0, &r1, &r2)
PASS:   gsl_sf_complex_cos_impl(1.0, 5.0, &r1, &r2)
PASS:   gsl_sf_complex_logsin_impl(1.0, 100.0, &r1, &r2)
PASS:   gsl_sf_complex_logsin_impl(1.0, -100.0, &r1, &r2)
PASS:   gsl_sf_complex_logsin_impl(5.0, 5.0, &r1, &r2)
PASS:   gsl_sf_lnsinh_impl(0.1, &r)
PASS:   gsl_sf_lnsinh_impl(1.0, &r)
PASS:   gsl_sf_lnsinh_impl(5.0, &r)
PASS:   gsl_sf_lnsinh_impl(100.0, &r)
PASS:   gsl_sf_lncosh_impl(0.125, &r)
PASS:   gsl_sf_lncosh_impl(1.0, &r)
PASS:   gsl_sf_lncosh_impl(5.0, &r)
PASS:   gsl_sf_lncosh_impl(100.0, &r)
PASS:   gsl_sf_polar_to_rect_impl(10.0, M_PI/6.0, &r1, &r2)
PASS:   gsl_sf_polar_to_rect_impl(10.0, -2.0/3.0*M_PI, &r1, &r2)
PASS:   gsl_angle_restrict_pos_impl: theta =  11/2 Pi
PASS:   gsl_angle_restrict_pos_impl: theta = -11/2 Pi
PASS:   gsl_angle_restrict_pos_impl: theta = 50000.0 + 1.0/65536.0
PASS:   gsl_angle_restrict_pos_impl: theta = 5000000.0 + 1.0/65536.0
PASS:   gsl_angle_restrict_symm_impl: theta =  11/2 Pi
PASS:   gsl_angle_restrict_symm_impl: theta = -11/2 Pi
PASS:   gsl_angle_restrict_symm_impl: theta = -9/2 Pi
PASS:   gsl_angle_restrict_symm_impl: theta =  3/2 Pi
PASS:   gsl_angle_restrict_symm_impl: theta = -3/2 Pi
PASS:   gsl_angle_restrict_symm_impl: theta = 50000.0 + 1.0/65536.0
PASS: Trigonometric and Related Functions
PASS:   gsl_sf_zeta_int_impl(-61, &r)
PASS:   gsl_sf_zeta_int_impl(-5, &r)
PASS:   gsl_sf_zeta_int_impl(5, &r)
PASS:   gsl_sf_zeta_int_impl(31, &r)
PASS:   gsl_sf_zeta_impl(-151, &r)
PASS:   gsl_sf_zeta_impl(-51, &r)
PASS:   gsl_sf_zeta_impl(-5, &r)
PASS:   gsl_sf_zeta_impl(-0.5, &r)
PASS:   gsl_sf_zeta_impl(0.5, &r)
PASS:   gsl_sf_zeta_impl(1.0-1.0/1024.0, &r)
PASS:   gsl_sf_zeta_impl(1.0+1.0/1048576, &r)
PASS:   gsl_sf_zeta_impl(5, &r)
PASS:   gsl_sf_zeta_impl(25.5, &r)
PASS:   gsl_sf_hzeta_impl(2, 1.0, &r)
PASS:   gsl_sf_hzeta_impl(2, 10.0, &r)
PASS:   gsl_sf_hzeta_impl(5, 1.0, &r)
PASS:   gsl_sf_hzeta_impl(5, 10.0, &r)
PASS:   gsl_sf_hzeta_impl(9, 0.1, &r)
PASS:   gsl_sf_hzeta_impl(30, 0.5, &r)
PASS:   gsl_sf_hzeta_impl(30, 0.9, &r)
PASS:   gsl_sf_hzeta_impl(75, 0.25, &r)
PASS:   gsl_sf_eta_int_impl(-91, &r)
PASS:   gsl_sf_eta_int_impl(-51, &r)
PASS:   gsl_sf_eta_int_impl(-5, &r)
PASS:   gsl_sf_eta_int_impl(-1, &r)
PASS:   gsl_sf_eta_int_impl( 0, &r)
PASS:   gsl_sf_eta_int_impl( 5, &r)
PASS:   gsl_sf_eta_int_impl( 6, &r)
PASS:   gsl_sf_eta_int_impl( 20, &r)
PASS:   gsl_sf_eta_int_impl( 1000, &r)
PASS:   gsl_sf_eta_impl(-51.5, &r)
PASS:   gsl_sf_eta_impl(-5, &r)
PASS:   gsl_sf_eta_impl(0.5, &r)
PASS:   gsl_sf_eta_impl(0.999, &r)
PASS:   gsl_sf_eta_impl(1.0, &r)
PASS:   gsl_sf_eta_impl(1.0+1.0e-10, &r)
PASS:   gsl_sf_eta_impl( 5, &r)
PASS:   gsl_sf_eta_impl( 5.2, &r)
PASS:   gsl_sf_eta_impl( 6, &r)
PASS:   gsl_sf_eta_impl( 20, &r)
PASS: Zeta Functions
PASS: Result Methods
FAIL: test
===================
1 of 1 tests failed
===================
make[2]: Leaving directory `/home/andrej/programming/libraries/gsl-0.7/specfunc'
make[1]: Leaving directory `/home/andrej/programming/libraries/gsl-0.7/specfunc'

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: make check error
  2000-11-04  7:22 make check error Andrej Prsa
@ 2000-11-04  9:37 ` Dirk Eddelbuettel
  2000-11-04 12:10 ` Brian Gough
  1 sibling, 0 replies; 13+ messages in thread
From: Dirk Eddelbuettel @ 2000-11-04  9:37 UTC (permalink / raw)
  To: Andrej Prsa; +Cc: gsl-discuss

Did you try "kgcc" instead of gcc (by setting "CC=kgcc make", maybe) ?
RedHat shipped a somewhat "special" compiler with 7.0.

0.7 built fine on my Debian system (and new 0.7 .deb packages are being
propagated into the Debian archive).

Dirk

-- 
Three out of two people have difficulties with fractions.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: make check error
  2000-11-04  7:22 make check error Andrej Prsa
  2000-11-04  9:37 ` Dirk Eddelbuettel
@ 2000-11-04 12:10 ` Brian Gough
  2000-11-06  7:38   ` Matt Newville
       [not found]   ` <6040367@toto.iv>
  1 sibling, 2 replies; 13+ messages in thread
From: Brian Gough @ 2000-11-04 12:10 UTC (permalink / raw)
  To: Andrej Prsa; +Cc: gsl-discuss

Thanks for the bug report. 

It looks like there is a new problem with overflow/underflow on RH7,
as this is the second report of this failure.  Unfortunately the test
program does not print anything for the cases which are probably
causing it.

 If someone could try out the patch below it should indicate the line
that is causing the problem (if you can step through that function
with the debugger and see what is going on that will be very useful).

Brian


Index: specfunc/test_sf.c
===================================================================
RCS file: /cvs/gsl/gsl/specfunc/test_sf.c,v
retrieving revision 1.162
diff -r1.162 test_sf.c
288,290c288,305
<   s += ( gsl_sf_multiply_impl(DBL_MAX, 1.1, &r) != GSL_EOVRFLW);
<   s += ( gsl_sf_multiply_impl(DBL_MIN,  DBL_MIN, &r) != GSL_EUNDRFLW);
<   s += ( gsl_sf_multiply_impl(DBL_MIN, -DBL_MIN, &r) != GSL_EUNDRFLW);
---
>   
>   {
>     int status = gsl_sf_multiply_impl(DBL_MAX, 1.1, &r);
>     gsl_test_int (status, GSL_EOVRFLW, "  gsl_sf_multiply_impl(DBL_MAX,1.1)");
>     s += (status != GSL_EOVRFLW);
>   }
> 
>   {
>     int status = gsl_sf_multiply_impl(DBL_MIN, DBL_MIN, &r);
>     gsl_test_int (status, GSL_EUNDRFLW, "  gsl_sf_multiply_impl(DBL_MIN,DBL_MIN)");
>     s += (status != GSL_EUNDRFLW);
>   }
> 
>   {
>     int status = gsl_sf_multiply_impl(DBL_MIN, -DBL_MIN, &r);
>     gsl_test_int (status, GSL_EUNDRFLW, "  gsl_sf_multiply_impl(DBL_MIN,-DBL_MIN)");
>     s += (status != GSL_EUNDRFLW);
>   }

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: make check error
  2000-11-04 12:10 ` Brian Gough
@ 2000-11-06  7:38   ` Matt Newville
  2000-11-06 12:06     ` Gerard Jungman
                       ` (2 more replies)
       [not found]   ` <6040367@toto.iv>
  1 sibling, 3 replies; 13+ messages in thread
From: Matt Newville @ 2000-11-06  7:38 UTC (permalink / raw)
  To: gsl-discuss

Dear Brian,

The patch doesn't fix the make check error with RedHat 7.0 /
gcc2.96, but the problem is definitely in the comparison of 0.0
to 'GSL_EUNDRFLW' in gsl_sf_multiply_impl() when multiplying
DBL_MIN * DBL_MIN.  Stepping through gsl_sf_multiply_impl() with
gdb didn't reveal anything glaring to me except that 
  ax = fabs(x)  = 0.  
when  
  x  = GSL_DBL_MIN .

which makes me wonder whether the very first test in
gsl_sf_multiply_impl() might be 
 if (ax == 0.0 | ay == 0.0) { }

instead of
 if ( x == 0.0 |  y == 0.0) { }

But, assuming that was correct as coded, this change to 
specfun/elementary.c allows 'make check' to pass all tests:

61,62c61
<       /* return (result->val == 0.0 ? GSL_EUNDRFLW : GSL_SUCCESS);*/
<       return ((fabs(result->val) < GSL_DBL_MIN) ? GSL_EUNDRFLW : GSL_SUCCESS);
---
>       return (result->val == 0.0 ? GSL_EUNDRFLW : GSL_SUCCESS);

I'm not sure if comparing to GSL_DBL_MIN is the best choice, but
deciding non-success based on "x == 0.0"  seems dangerous, no?  
The comments in gsl_sf_multiply_impl()  hint that this problem
is a known issue, and that the use of a "volatile double tmp"
should be be double-checked.

I may be missing the point of checking whether DBL_MIN*DBL_MIN
is Underflow or 0.  It all seems a little pedantic to me. 

The bad news is that passing the tests in specfun reveals other
failures with RH7.0 and gcc2.96 in integration/ and monte/

integration:
make  check-TESTS
PASS: qag(f3,31pt) oscill result (-0.723897 observed vs -0.723897 expected)
FAIL: qag(f3,31pt) oscill abserr (1.28571716286847917e-14 observed vs 1.28580546442745926e-14 expected)
FAIL: qag(f3,31pt) oscill neval (403 observed vs 31 expected)
FAIL: qag(f3,31pt) oscill last (7 observed vs 1 expected)
PASS: qag(f3,31pt) oscill status (18 observed vs 18 expected)
PASS: qag(f3,31pt) reverse result (0.723897 observed vs 0.723897 expected)
FAIL: qag(f3,31pt) reverse abserr (1.28571716286847917e-14 observed vs 1.28580546442745926e-14 expected)
FAIL: qag(f3,31pt) reverse neval (403 observed vs 31 expected)
FAIL: qag(f3,31pt) reverse last (7 observed vs 1 expected)
PASS: qag(f3,31pt) reverse status (18 observed vs 18 expected)

monte:
make  check-TESTS

Testing single gaussian
FAIL: vegas(f1), dim=9, err=0.0026, chisq=138.4868 (0.989678118577861921 observed vs 1 expected)

Testing double gaussian
FAIL: miser(f2), dim=9, err=0.0530 (0.888171870752243353 observed vs 1 expected)

I haven't looked into these any further yet.

Thanks for everything, 

--Matt Newville

 |= Matthew Newville      email: newville@cars.uchicago.edu           =|
 |= GSECARS, Bldg 434A    voice: (630) 252-0431                       =|
 |= Argonne Natl Lab      fax:   (630) 252-0443                       =|
 |= 9700 South Cass Ave   www:   http://cars9.uchicago.edu/~newville/ =|
 |= Argonne, IL 60439 USA                                             =|



On Sat, 4 Nov 2000, Brian Gough wrote:

> Thanks for the bug report. 
> 
> It looks like there is a new problem with overflow/underflow on RH7,
> as this is the second report of this failure.  Unfortunately the test
> program does not print anything for the cases which are probably
> causing it.
> 
>  If someone could try out the patch below it should indicate the line
> that is causing the problem (if you can step through that function
> with the debugger and see what is going on that will be very useful).
> 
> Brian
> 
> 
> Index: specfunc/test_sf.c
> ===================================================================
> RCS file: /cvs/gsl/gsl/specfunc/test_sf.c,v
> retrieving revision 1.162
> diff -r1.162 test_sf.c
> 288,290c288,305
> <   s += ( gsl_sf_multiply_impl(DBL_MAX, 1.1, &r) != GSL_EOVRFLW);
> <   s += ( gsl_sf_multiply_impl(DBL_MIN,  DBL_MIN, &r) != GSL_EUNDRFLW);
> <   s += ( gsl_sf_multiply_impl(DBL_MIN, -DBL_MIN, &r) != GSL_EUNDRFLW);
> ---
> >   
> >   {
> >     int status = gsl_sf_multiply_impl(DBL_MAX, 1.1, &r);
> >     gsl_test_int (status, GSL_EOVRFLW, "  gsl_sf_multiply_impl(DBL_MAX,1.1)");
> >     s += (status != GSL_EOVRFLW);
> >   }
> > 
> >   {
> >     int status = gsl_sf_multiply_impl(DBL_MIN, DBL_MIN, &r);
> >     gsl_test_int (status, GSL_EUNDRFLW, "  gsl_sf_multiply_impl(DBL_MIN,DBL_MIN)");
> >     s += (status != GSL_EUNDRFLW);
> >   }
> > 
> >   {
> >     int status = gsl_sf_multiply_impl(DBL_MIN, -DBL_MIN, &r);
> >     gsl_test_int (status, GSL_EUNDRFLW, "  gsl_sf_multiply_impl(DBL_MIN,-DBL_MIN)");
> >     s += (status != GSL_EUNDRFLW);
> >   }
> 











^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: make check error
  2000-11-06  7:38   ` Matt Newville
@ 2000-11-06 12:06     ` Gerard Jungman
  2000-11-07  1:19     ` Brian Gough
       [not found]     ` <15282295@toto.iv>
  2 siblings, 0 replies; 13+ messages in thread
From: Gerard Jungman @ 2000-11-06 12:06 UTC (permalink / raw)
  To: egcs; +Cc: gsl-discuss

Matt Newville wrote:
>
> I may be missing the point of checking whether DBL_MIN*DBL_MIN
> is Underflow or 0.  It all seems a little pedantic to me.

Well, you know how it is, the illusion of robustness
and correctness, etc.

This discussion brings up a very important point which
should have been discussed but has thus far managed
to stay hidden. I have discussed this with Brian, but
either we have never come to a conclusion or I don't
understand the conclusion. The question is:

  What are we supposed to assume about
  the underlying arithmetic?

At various times I have been ready to assume
full (or sufficient anyway) IEEE conformance.
But then there is always some vacillation based
on the fear that people might be using this stuff
on some weird embedded DSP project or something,
with no IEEE safety net.

So, how many people are working on or worried that
they might someday work on a platform w/o IEEE 754?
This is really important to know.

I would like to fix this problem, but it's
time to absolutely firm up the boundary conditions
for this sort of thing, so I don't just wander
off in another random direction.

The requirements for gsl_sf_multiply_impl(),
as I see them:

  1. Must have GSL semantics for error reporting.
  2. Must provide error estimate, to conform to
     the other functions in this directory. 
  3. Must provide a valid result and error
     estimate when reporting success.

The current implementation does not (I think
this is, strictly speaking, a lie) depend on IEEE 754.
I would be happy to make one that does; the
current code is frankly kind of embarrassing,
but I didn't know what else to do w/o IEEE.

We could provide both, if absolutely needed,
and ifdef the right in at compile time. Yuck.
I wonder how many inconsistencies we would
miss if we really tried to go back and clean
this up?

-- 
G. Jungman
(Chief GSL Pedant and Multiplier of Numbers)

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: make check error
  2000-11-06  7:38   ` Matt Newville
  2000-11-06 12:06     ` Gerard Jungman
@ 2000-11-07  1:19     ` Brian Gough
  2000-11-07  9:06       ` Matt Newville
       [not found]     ` <15282295@toto.iv>
  2 siblings, 1 reply; 13+ messages in thread
From: Brian Gough @ 2000-11-07  1:19 UTC (permalink / raw)
  To: newville; +Cc: gsl-discuss

Can you try the program below to see if the wrong behavior of fabs()
is reproducible. If so, that is the problem.

#include <math.h>
#include <stdio.h>

int main()
{
  double x, y;
  x = DBL_MIN;
  y = fabs(x);
  printf("x= %e fabs(x)= %e\n", x, y);
}

$ ./a.out 
x= 2.225074e-308 fabs(x)= 2.225074e-308

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: make check error
  2000-11-07  1:19     ` Brian Gough
@ 2000-11-07  9:06       ` Matt Newville
  0 siblings, 0 replies; 13+ messages in thread
From: Matt Newville @ 2000-11-07  9:06 UTC (permalink / raw)
  To: gsl-discuss

> Can you try the program below to see if the wrong behavior of fabs()
> is reproducible. If so, that is the problem.
> 
> #include <math.h>
> #include <stdio.h>
> 
> int main()
> {
>   double x, y;
>   x = DBL_MIN;
>   y = fabs(x);
>   printf("x= %e fabs(x)= %e\n", x, y);
> }
> 
> $ ./a.out 
> x= 2.225074e-308 fabs(x)= 2.225074e-308

This works fine with RH7.0 and the doomed gcc2.96.  In fact,
adding a simple printf(" "); statement to the "volatile section"
of gsl_sf_multiply_impl() will cause the test to work correctly
(ie, return Underflow).  Using CFLAGS =-O0 when compiling
elementary.c will also successfully evaluate an Underflow.

Sorry I can't be of more help right now.

--Matt Newville

PS: And for the record, I'm usually for erring on the side of
    pedantic, and definitely in favor of holding on to that
    illusion of robustness and correctness.  Keep it up!



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: make check error
       [not found]     ` <15282295@toto.iv>
@ 2000-11-07 13:04       ` Brian Gough
  2000-11-07 13:22         ` make check error (IEEE ...?) Gerard Jungman
  0 siblings, 1 reply; 13+ messages in thread
From: Brian Gough @ 2000-11-07 13:04 UTC (permalink / raw)
  To: gsl-discuss

Gerard Jungman writes:
 >   What are we supposed to assume about
 >   the underlying arithmetic?

Assume the least possible. i.e. the model for ordinary numbers, +/-{0,
[DBL_MIN, DBL_MAX]}

 > So, how many people are working on or worried that
 > they might someday work on a platform w/o IEEE 754?

Full IEEE support is hard to find.  Subsets are the norm. Conformance
depends on both the compiler and the fpu (classic example, compiler
optimisation x==x, where x=NaN). Conformance is always "claimed" by
the manufacturer, but there is no independent test (c.f. FDIV bug).
Programs that "depend on" (i.e. rely on) a lot of IEEE features are
not very portable, and are almost impossible to debug when things go
wrong.

The sensible policy is to write to the reality of the platforms out
there -- assume that there are variable subsets, supported to variable
degrees and make appropriate tradeoffs for the module in question and
document them in the manual if important.  After normal arithmetic,
best supported is probably infinity arithmetic, and worst is maybe
denormalized numbers.

It is nice to use features of IEEE but it should be possible to
degrade gracefully. If not, don't rely on it. 

 > The current implementation does not (I think
 > this is, strictly speaking, a lie) depend on IEEE 754.

That is the right thing to do here I believe.  You could use the
GSL_POSINF GSL_NEGINF GSL_NAN macros for +/-Inf,NaN return values.  A
top-level rounding function would be useful for isolating the extended
precision issue into a single function.  This could then use the
appropriate assember instruction to round, rather than "volatile", or
be a no-op on platforms that do not have extended precision.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: make check error
       [not found]   ` <6040367@toto.iv>
@ 2000-11-07 13:04     ` Brian Gough
  2000-11-07 14:03       ` make check error (RH7.0 /gcc2.96) Matt Newville
  0 siblings, 1 reply; 13+ messages in thread
From: Brian Gough @ 2000-11-07 13:04 UTC (permalink / raw)
  To: Matt Newville; +Cc: gsl-discuss

Matt Newville writes:
 > FAIL: qag(f3,31pt) oscill abserr (1.28571716286847917e-14 observed vs 1.28580546442745926e-14 expected)
 > FAIL: qag(f3,31pt) oscill neval (403 observed vs 31 expected)
 > FAIL: qag(f3,31pt) oscill last (7 observed vs 1 expected)

Do these errors go away with -O0 ? This function also involves
volatile. Perhaps handling of volatile is slightly different with this
compiler -- it is suspicious that the other integration tests all
pass (they don't use volatile).

See the KNOWN-PROBLEMS file for info on the monte failures.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: make check error (IEEE ...?)
  2000-11-07 13:04       ` Brian Gough
@ 2000-11-07 13:22         ` Gerard Jungman
  2000-11-09  6:42           ` Brian Gough
  0 siblings, 1 reply; 13+ messages in thread
From: Gerard Jungman @ 2000-11-07 13:22 UTC (permalink / raw)
  To: gsl-discuss

Brian Gough wrote:
> 
> Assume the least possible. i.e. the model for ordinary numbers, +/-{0,
> [DBL_MIN, DBL_MAX]}

Perhaps it would be better if I said that I'm not so worried
about what to assume. The question is really what variation
could/should we try to encapsulate. I don't want to build
things haphazardly into the implmentation. It would be
better to figure out what functionality is needed and
introduce a layer there, which could be adjusted at
configure time.

Of course, this all should have been done on day one...


> Full IEEE support is hard to find.  Subsets are the norm. Conformance
> depends on both the compiler and the fpu (classic example, compiler
> optimisation x==x, where x=NaN). Conformance is always "claimed" by
> the manufacturer, but there is no independent test (c.f. FDIV bug).
> Programs that "depend on" (i.e. rely on) a lot of IEEE features are
> not very portable, and are almost impossible to debug when things go
> wrong.

I'm sure that is the sad truth.


> You could use the
> GSL_POSINF GSL_NEGINF GSL_NAN macros for +/-Inf,NaN return values.

Yes. That is a separate issue though. Those
cases just need to be chased down in the impl.


> top-level rounding function would be useful for isolating the extended
> precision issue into a single function.  This could then use the
> appropriate assember instruction to round, rather than "volatile", or
> be a no-op on platforms that do not have extended precision.

Yes, exactly. What I have in mind is encapsulating as much of
this as needed. This includes some of the direct functionality
like rounding, as well as some other issues, such as what
happens when you multiply two numbers, where one or both
of the inputs and/or the result may be special values.

We just need to know these things. Has anybody
out there done this already? It need not be a
complete layer (which may not even be possible),
but at least something which detects some
features or problems and configures/builds
an appropriate layer.

Does anybody know the status of arithmetic support
in C9x (or whatever it is called now)? There is supposed
to be something new there. Although we probably cannot
rely on it, it would good to see what they had
decided was feasible.


-- 
G. Jungman

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: make check error (RH7.0 /gcc2.96)
  2000-11-07 13:04     ` make check error Brian Gough
@ 2000-11-07 14:03       ` Matt Newville
  2000-11-09  1:45         ` Brian Gough
  0 siblings, 1 reply; 13+ messages in thread
From: Matt Newville @ 2000-11-07 14:03 UTC (permalink / raw)
  To: gsl-discuss

Brian,

Yes.  These errors in integration/
  
>> FAIL: qag(f3,31pt) oscill abserr (1.28571716286847917e-14 observed vs 1.28580546442745926e-14 expected)
>> FAIL: qag(f3,31pt) oscill neval (403 observed vs 31 expected)
>> FAIL: qag(f3,31pt) oscill last (7 observed vs 1 expected)

go away with -O0 optimization. 

Hope that helps,

--Matt Newville


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: make check error (RH7.0 /gcc2.96)
  2000-11-07 14:03       ` make check error (RH7.0 /gcc2.96) Matt Newville
@ 2000-11-09  1:45         ` Brian Gough
  0 siblings, 0 replies; 13+ messages in thread
From: Brian Gough @ 2000-11-09  1:45 UTC (permalink / raw)
  To: newville; +Cc: gsl-discuss

Thanks. It looks like the compiler in RH7 handles volatile differently.


   Date: Tue, 7 Nov 2000 16:03:52 -0600 (CST)
   From: Matt Newville <newville@cars6.cars.aps.anl.gov>

   Yes.  These errors in integration/
   go away with -O0 optimization. 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: make check error (IEEE ...?)
  2000-11-07 13:22         ` make check error (IEEE ...?) Gerard Jungman
@ 2000-11-09  6:42           ` Brian Gough
  0 siblings, 0 replies; 13+ messages in thread
From: Brian Gough @ 2000-11-09  6:42 UTC (permalink / raw)
  To: gsl-discuss

See the GNU-R math library for examples of handling IEEE in special
functions.

glibc-2 provides more C9X features now, we can use that in the long
run.  I don't know if there is a C9X function to do extended to double
rounding though (I don't think so).


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2000-11-09  6:42 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-11-04  7:22 make check error Andrej Prsa
2000-11-04  9:37 ` Dirk Eddelbuettel
2000-11-04 12:10 ` Brian Gough
2000-11-06  7:38   ` Matt Newville
2000-11-06 12:06     ` Gerard Jungman
2000-11-07  1:19     ` Brian Gough
2000-11-07  9:06       ` Matt Newville
     [not found]     ` <15282295@toto.iv>
2000-11-07 13:04       ` Brian Gough
2000-11-07 13:22         ` make check error (IEEE ...?) Gerard Jungman
2000-11-09  6:42           ` Brian Gough
     [not found]   ` <6040367@toto.iv>
2000-11-07 13:04     ` make check error Brian Gough
2000-11-07 14:03       ` make check error (RH7.0 /gcc2.96) Matt Newville
2000-11-09  1:45         ` Brian Gough

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).