Index: mathieu_angfunc.c =================================================================== RCS file: /cvs/gsl/gsl/specfunc/mathieu_angfunc.c,v retrieving revision 1.1 diff -u -r1.1 mathieu_angfunc.c --- mathieu_angfunc.c 18 Apr 2006 17:59:46 -0000 1.1 +++ mathieu_angfunc.c 24 May 2006 01:52:53 -0000 @@ -54,7 +54,9 @@ fn = cos(order*zz)/norm; result->val = fn; - result->err = GSL_DBL_EPSILON*fabs(fn); + result->err = 2.0*GSL_DBL_EPSILON; + if (fabs(fn) > 1.0) + result->err *= fabs(fn); return GSL_SUCCESS; } @@ -97,7 +99,9 @@ fn /= norm; result->val = fn; - result->err = GSL_DBL_EPSILON*fabs(fn); + result->err = 2.0*GSL_DBL_EPSILON; + if (fabs(fn) > 1.0) + result->err *= fabs(fn); return GSL_SUCCESS; } @@ -126,7 +130,9 @@ fn = sin(order*zz); result->val = fn; - result->err = GSL_DBL_EPSILON*fabs(fn); + result->err = 2.0*GSL_DBL_EPSILON; + if (fabs(fn) > 1.0) + result->err *= fabs(fn); return GSL_SUCCESS; } @@ -167,7 +173,9 @@ fn /= norm; result->val = fn; - result->err = GSL_DBL_EPSILON*fabs(fn); + result->err = 2.0*GSL_DBL_EPSILON; + if (fabs(fn) > 1.0) + result->err *= fabs(fn); return GSL_SUCCESS; } Index: mathieu_radfunc.c =================================================================== RCS file: /cvs/gsl/gsl/specfunc/mathieu_radfunc.c,v retrieving revision 1.1 diff -u -r1.1 mathieu_radfunc.c --- mathieu_radfunc.c 18 Apr 2006 17:59:46 -0000 1.1 +++ mathieu_radfunc.c 24 May 2006 01:52:54 -0000 @@ -141,7 +141,9 @@ } result->val = fn; - result->err = GSL_DBL_EPSILON*fabs(fn); + result->err = 2.0*GSL_DBL_EPSILON; + if (fabs(fn) > 1.0) + result->err *= fabs(fn); return GSL_SUCCESS; } @@ -268,7 +270,9 @@ } result->val = fn; - result->err = GSL_DBL_EPSILON*fabs(fn); + result->err = 2.0*GSL_DBL_EPSILON; + if (fabs(fn) > 1.0) + result->err *= fabs(fn); return GSL_SUCCESS; }