GNU Scientific Library - Bugs: bug #52321, gsl_linalg_bidiag_unpack2...
You are not allowed to post comments on this tracker with your current authentication level.
bug #52321: gsl_linalg_bidiag_unpack2 functioan has wrong householder transform call for V in GSL1.8
Submitter: | Patrick Alken <psa> | ||
Submitted: | Wed 01 Nov 2017 09:05:27 AM UTC | ||
Category: | Runtime error | Severity: | 3 - Normal |
Operating System: | Status: | None | |
Assigned to: | None | Open/Closed: | Open |
Release: |
No files currently attached
Depends on the following items: None found
Items that depend on this one: None found
Carbon-Copy List
No changes have been made to this item
from actionafterthought =at= gmail =dot= com
Hey,
This bug might have been fixed. Since it is in GSL 1.8 source. And it is noticed that the wrong householder transform
Function call is made for a row vector from V (see below code). And the correct function call for highlighted line is
supposed to be:
gsl_linalg_householder_mh (ti, &h.vector, &m.matrix);
int
gsl_linalg_bidiag_unpack2 (gsl_matrix * A,
gsl_vector * tau_U,
gsl_vector * tau_V,
gsl_matrix * V)
{
…
/* Initialize V to the identity */
gsl_matrix_set_identity (V);
for (i = N - 1; i > 0 && i--;)
{
/* Householder row transformation to accumulate V */
gsl_vector_const_view r = gsl_matrix_const_row (A, i);
gsl_vector_const_view h =
gsl_vector_const_subvector (&r.vector, i + 1, N - (i+1));
double ti = gsl_vector_get (tau_V, i);
gsl_matrix_view m =
gsl_matrix_submatrix (V, i + 1, i + 1, N-(i+1), N-(i+1));
gsl_linalg_householder_hm (ti, &h.vector, &m.matrix);
}