[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-gsl] [bug #28767] gsl_linalg_SV_decomp gives NaN when tb, tab, dt =
From: |
Brian Gough |
Subject: |
[Bug-gsl] [bug #28767] gsl_linalg_SV_decomp gives NaN when tb, tab, dt = 0 |
Date: |
Wed, 24 Feb 2010 17:43:59 +0000 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.11) Gecko/2009061118 Fedora/3.0.11-1.fc9 Firefox/3.0.11 |
Update of bug #28767 (project gsl):
Status: Confirmed => Fixed
Open/Closed: Open => Closed
_______________________________________________________
Follow-up Comment #2:
fixed by commit 7946d551c30943f38bfcd1c31e109919e12fbe5a
fix for bug #28767: gsl_linalg_SV_decomp gives NaN when tb, tab, dt = 0
nans were generated in gsl_linalg_householder_transform from overflow
in 1/(alpha-beta) when alpha=0 and beta is subnormal.
nans were also generated in trailing_eigenvalue when dt=0 and tab=0.
It was also possible to generate negative mu from cancellation error.
Since we know the roots are non-negative and have the underlying
expressions for them we can calculate them without cancellation error
using only positive terms.
in gsl_linalg_SV_decomp we can avoid a lot of numerical problems by
rescaling the bidiagonal matrix before carrying out the implicit shift
procedure. Following LAPACK's QR eigenvalue routine, we rescale if the
max abs value A is in the range A > sqrt(DBL_MAX) or 0 < A <
sqrt(DBL_MIN).
added a test case for bug #28767, added check for nans when none
present in input, added subnormal matrix that triggers potential
overflow in gsl_linalg_householder_transform.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?28767>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug-gsl] [bug #28767] gsl_linalg_SV_decomp gives NaN when tb, tab, dt = 0,
Brian Gough <=