Yes, this is one of the problems I looked at. I didn't go so far as to
follow it up; and have no recommendations. Except there is a problem
with the loop terminating. As I recall similar errors are in a couple
of other places as well.
Ray
On 11/19/2015 05:16 PM, Patrick Alken wrote:
Follow-up Comment #1, bug #45926 (project gsl):
from shufflesky =at= hotmail =dot= com
I've investigated bug #45929 "error in generalized hypergeometric function".
The problem is in the
file specfunc/hyperg_2F1.c in the first function the file,
hyperg_2F1_series(). There is a loop starting
at line 59 which is intended to converge to the solution, and within this loop
is a check to insure the
loop is not executed more than 30000 times. This code is actually working and
computing the correct
value, but the error terms del_pos and del_neg eventually get no smaller and
so the loop executes the
full 30000 iterations and then reports GSL_EMAXITER error, even though it does
have the correct
value calculated.
I would fix this by saving the previous error terms and insuring they are
becoming smaller with each
iteration. If they are not getting smaller, machine precision has been reached
and the value can be
returned to the user. I can supply code or could check in myself through git
if I can get access. I have
30+ years of experience with C code and want to begin helping maintain GSL.
-Bill Maier
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?45926>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
--
Two views on life:
life is an art not to be learned by observation.
George Santayana:Interpretations of Poetry and Religion
It's kinda nice to participate in your life
Raymond Rogers