|
| From: | Brian Gladman |
| Subject: | [Bug-gsl] [bug #39713] roots/secant.c "derivative value is not finite" for a good guess |
| Date: | Sat, 05 Oct 2013 13:14:01 +0000 |
| User-agent: | Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36 |
Update of bug #39713 (project gsl):
Status: Ready For Test => Fixed
_______________________________________________________
Follow-up Comment #17:
Thanks for testing the fix on Linux, which allows me to mark it as fixed.
The form df_new = df * (1 - f_new / f) is better than the earlier expression
because it avoids the severe loss of precision when (x_new - x) is used in the
demominator of the expression for df_new (this was the primary cause of the
problems you experienced).
In fact I have just made a further change to:
df_new = df * ((f - f_new) / f);
which avoids the possible loss of precision in using (1 - f_new / f).
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?39713>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
| [Prev in Thread] | Current Thread | [Next in Thread] |