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. By the way, when I do a git clone to get the code and then run ./autogen, it fails with message "autoreconf: not found". Has this file been left out of the git repository? -Bill Maier
