public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
* Bug #45926
@ 2015-11-18  1:50 Bill Maier
  2015-11-18  4:45 ` Dirk Eddelbuettel
  2015-11-19 22:21 ` Patrick Alken
  0 siblings, 2 replies; 4+ messages in thread
From: Bill Maier @ 2015-11-18  1:50 UTC (permalink / raw)
  To: gsl-discuss

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 		 	   		  

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Bug #45926
  2015-11-18  1:50 Bug #45926 Bill Maier
@ 2015-11-18  4:45 ` Dirk Eddelbuettel
  2015-11-19 22:21 ` Patrick Alken
  1 sibling, 0 replies; 4+ messages in thread
From: Dirk Eddelbuettel @ 2015-11-18  4:45 UTC (permalink / raw)
  To: Bill Maier; +Cc: gsl-discuss


On 17 November 2015 at 19:50, Bill Maier wrote:
| 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?

That is a standard part of autoconf:

  edd@max:~$ which autoreconf
  /usr/bin/autoreconf
  edd@max:~$ dpkg -S $(which autoreconf)
  autoconf: /usr/bin/autoreconf
  edd@max:~$

Dirk

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd@debian.org

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Bug #45926
  2015-11-18  1:50 Bug #45926 Bill Maier
  2015-11-18  4:45 ` Dirk Eddelbuettel
@ 2015-11-19 22:21 ` Patrick Alken
  2015-11-20 15:54   ` Bill Maier
  1 sibling, 1 reply; 4+ messages in thread
From: Patrick Alken @ 2015-11-19 22:21 UTC (permalink / raw)
  To: gsl-discuss, shufflesky

Hi Bill,

   Thanks for your help on this. It would be great if you can make a 
patch to fix this, and I'll have a look. For now you can do an anonymous 
checkout of the gsl repository and work from there. We typically reserve 
write access to the git until we have a chance to look at someone's code 
to make sure its high quality, and also to make sure they're serious 
about contributing in the future. But in general I'm very grateful to 
have someone interested in becoming involved.

Patrick

On 11/17/2015 06:50 PM, Bill Maier wrote:
> 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 		 	   		

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: Bug #45926
  2015-11-19 22:21 ` Patrick Alken
@ 2015-11-20 15:54   ` Bill Maier
  0 siblings, 0 replies; 4+ messages in thread
From: Bill Maier @ 2015-11-20 15:54 UTC (permalink / raw)
  To: gsl-discuss

I understand about keeping the repository safe. I'll just send a gzipped tar file to your email address with the code changes for you to copy into your sandbox. I've been playing with this for a couple of days now and I believe the issue is fixed without any side effects. Besides the code change I also added a couple of tests to try out the changes.

-Bill

----------------------------------------
> Subject: Re: Bug #45926
> To: gsl-discuss@sourceware.org; shufflesky@hotmail.com
> From: alken@colorado.edu
> Date: Thu, 19 Nov 2015 15:21:06 -0700
>
> Hi Bill,
>
> Thanks for your help on this. It would be great if you can make a
> patch to fix this, and I'll have a look. For now you can do an anonymous
> checkout of the gsl repository and work from there. We typically reserve
> write access to the git until we have a chance to look at someone's code
> to make sure its high quality, and also to make sure they're serious
> about contributing in the future. But in general I'm very grateful to
> have someone interested in becoming involved.
>
> Patrick
>
> On 11/17/2015 06:50 PM, Bill Maier wrote:
>> 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
>
 		 	   		  

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-11-20 15:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-18  1:50 Bug #45926 Bill Maier
2015-11-18  4:45 ` Dirk Eddelbuettel
2015-11-19 22:21 ` Patrick Alken
2015-11-20 15:54   ` Bill Maier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).