bug-gsl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-gsl] Fwd: Error estimate in hyperg_U


From: Brian Gough
Subject: Re: [Bug-gsl] Fwd: Error estimate in hyperg_U
Date: Fri, 29 Oct 2010 22:18:09 +0100
User-agent: Wanderlust/2.15.6 (Almost Unreal) Emacs/23.2 Mule/6.0 (HANACHIRUSATO)

At Mon, 25 Oct 2010 19:51:49 -0500,
Raymond Rogers wrote:
> 
> Below is a program demonstrating what I think is a bogus error estimate 
> for gsl_sf_hyperg_U_e(4.111,.11,6.4)
> The output with gsl 1.14 is:
> Values a0,a1,a2,b,x                            4.109000e+00,    
> 4.110000e+00,    4.111000e+00     1.100000e-01,    6.400000e+00
> Values hyperg_U_e result.val =         6.439287e-05,      
> 6.422378e-05,      6.405513e-05
> Error return hyperg_U_e result.err=   1.217053e-18,     
> 6.422378e-05,      1.224921e-18
> hyperg_U = 6.422378e-05

Thanks for the bug report, you are right. I've found the problem and
committed a fix.

-- 
Brian Gough

------------------------------------------------------------
revno: 4693
committer: Brian Gough <address@hidden>
branch nick: trunk
timestamp: Fri 2010-10-29 22:16:02 +0100
message:
  fix bad error term for hyperg_U_small_a_bgt0(a=0,b,x)
diff:
=== modified file 'specfunc/ChangeLog'
--- specfunc/ChangeLog  2010-08-31 18:14:47 +0000
+++ specfunc/ChangeLog  2010-10-29 21:16:02 +0000
@@ -1,3 +1,8 @@
+2010-10-29  Brian Gough  <address@hidden>
+
+       * hyperg_U.c (hyperg_U_small_a_bgt0): corrected result->err for
+       case where a==0.0
+
 2010-08-31  Brian Gough  <address@hidden>
 
        * beta_inc.c (gsl_sf_beta_inc_e): ignore underflow error when term

=== modified file 'specfunc/hyperg_U.c'
--- specfunc/hyperg_U.c 2010-03-02 14:05:27 +0000
+++ specfunc/hyperg_U.c 2010-10-29 21:16:02 +0000
@@ -771,7 +771,7 @@
 {
   if(a == 0.0) {
     result->val = 1.0;
-    result->err = 1.0;
+    result->err = 0.0;
     *ln_multiplier = 0.0;
     return GSL_SUCCESS;
   }

=== modified file 'specfunc/test_hyperg.c'
--- specfunc/test_hyperg.c      2010-08-27 09:05:07 +0000
+++ specfunc/test_hyperg.c      2010-10-29 21:16:02 +0000
@@ -583,6 +583,10 @@
   TEST_SF(s, gsl_sf_hyperg_U_int_e, (3, 7, -0.5, &r), 2824, TEST_TOL0, 
GSL_SUCCESS);
   TEST_SF(s, gsl_sf_hyperg_U_int_e, (5, 12, -1.7, &r), 
-153.262676210016018065768591104, TEST_TOL2, GSL_SUCCESS);
 
+  /* Bug report from Raymond Rogers */
+
+  TEST_SF(s, gsl_sf_hyperg_U_e, (4.11, 0.11, 6.4, &r), 
6.422378238765078623739153038e-5, TEST_TOL2, GSL_SUCCESS);
+
   /* 2F1 */
 
   TEST_SF(s, gsl_sf_hyperg_2F1_e, (1, 1, 1, 0.5, &r), 2.0, TEST_TOL0, 
GSL_SUCCESS);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]