bug-gsl
[Top][All Lists]
Advanced

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

[Bug-gsl] hyperg_U(a,b,x) Questions about x<0 and values of a


From: Raymond Rogers
Subject: [Bug-gsl] hyperg_U(a,b,x) Questions about x<0 and values of a
Date: Wed, 07 Jul 2010 10:14:34 -0500
User-agent: Thunderbird 2.0.0.24 (X11/20100411)

1) I was unable to find the valid domain of  the argument a when x<0. 
Experimenting yields what seem to be erratic results.  Apparently
correct answers occur when {x<0&a<0& a  integer}.  References would be
sufficient.   Unfortunately {x<0,a<0} is exactly the wrong range for my
problem; but the recursion relations can be used to stretch to a>0.  If
I can find a range of correct operation for the domain of "a" of width >1.
2) I notice the gsl specfunc testing is only at integer  values for a
when x<0.
3) Here is a fairly typical output with using Octave. I compiled and
pushed the 1.14 library in _under_  octave 3.0.5 so I may have caused
problems. 
I would appreciate somebody running and checking the results
------------------------------------------------------------------------------------
Octave run:
octave:3> hyperg_U(1.3,1,-6.1)
ans = -0.093750
octave:4> hyperg_U(1.3001,1,-6.1)
error: GSL error 1 at gamma.c, line 1205: domain error
octave:4> hyperg_U(1.3002,1,-6.1)
ans =  0.25000
octave:5> hyperg_U(-3,1,-6.1)
ans = -677.67
octave:6> hyperg_U(-3.001,1,-6.1)
error: GSL error 1 at gamma.c, line 1205: domain error
octave:6> hyperg_U(-3.002,1,-6.1)
error: GSL error 1 at gamma.c, line 1205: domain error

---------------------------------------------------------------------------------------------------------------
Maple (using their library): Unfortunately their program seems to have
found a "naked singularity"; note the step function that occurs around
x+- I .  Aside from this Maple has always passed tests on KummerU.

> KummerU(1.3, 1, -6.1);
                       -0.09771897447 + 0.1092599556 I
> KummerU(1.3001, 1, -6.1);
                       -0.09767744601 + 0.1092755612 I
> KummerU(1.3002, 1, -6.1);
                       -0.09763591893 + 0.1092911531 I
> (KummerU(1.3001, 1, -6.1+0.1e-4*I)+KummerU(1.3001, 1, -6.1-0.1e-4*I))*1/2;
                            -0.09767770036 + 0. I
> KummerU(-3, 1, -6.1);
                                -677.6710000
> KummerU(-3.001, 1, -6.1);
                        -679.3233991 - 2.134164421 I
> (KummerU(-3.001, 1, -6.1+0.1e-4*I)+KummerU(-3.001, 1, -6.1-0.1e-4*I))*1/2;
                             -679.3234068 + 0. I
> KummerU(-3.002, 1, -6.1);
                        -680.9732011 - 4.278737118 I

4) If somebody wants me to run more tests; I have spent so many hours on
my problem that a few more wouldn't bother me at all.  I am slightly
familiar with gdb if required.  "Slightly" means responses will probably
take a week :-) .

Ray




reply via email to

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