From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vladimir Savichev To: gsl-discuss@sources.redhat.com Subject: FAIL in make check /specfunc on FreeBSD4.3/i386 Date: Wed, 19 Dec 2001 13:20:00 -0000 Message-id: <3B1F1BAF.4010201@wesleyan.edu> X-SW-Source: 2001/msg00211.html Hi, I'm here on FreeBSD 4.3-STABLE i386 (AMD Athlon) gcc 2.95.3 trying to port gls-0.8 to FreeBSD ports collection. make check in specfunc dep gives ... PASS: gsl_sf_elljac_e(3.0|0.6) FAIL: gsl_sf_elljac_e(2.0|0.999999) PASS: gsl_sf_elljac_e(1.69695970624443|0.270378013104138) FAIL: Elliptic Functions (Jacobi) PASS: gsl_sf_erfc_e(-10.0, &r) ... here we go to dip into test_sf.c (gdb test) 883 u = 2.0; 884 m = 0.999999; 885 sa = 0; 886 stat_ej = gsl_sf_elljac_e(u, m, &sn, &cn, &dn); 887 sa += ( test_sf_frac_diff( sn, 0.96402778575700186570 ) > TEST_TOL0 ); 888 sa += ( test_sf_frac_diff( cn, 0.26580148285600686381 ) > TEST_TOL0 ); 889 sa += ( test_sf_frac_diff( dn, 0.26580323105264131136 ) > TEST_TOL0 ); 890 gsl_test(sa, " gsl_sf_elljac_e(2.0|0.999999)"); 891 s += sa; after 891 we have sn = 0.96402778575700188 wanted 0.96402778575700186570 ~ 1.4 10^-17 < 2*GSL_DBL_EPSILON cn = 0.26580148285600663 0.26580148285600686381 ~ -2.3 10^-16 < 2*GSL_DBL_EPSILON dn = 0.26580323105264092 0.26580323105264131136 ~ -3.9 10^-16 < 2*GSL_DBL_EPSILON but in test_sf_frac_diff we return fabs((x1-x2)/(x1+x2)) so we get about 8 10^-16 at dn : HAS to FAIL ! May be it is AMD issue or something particular about FreeBSD? For example on entry in gsl_sf_elljac_e(u, m, &sn, &cn, &dn) I see like m=0.99999899999999997 Shouldn't we see m=0.99999900000 for declared double m=0.999999 ? I could just make a guess what else is a matter. Thanks for your business Vladimir.