URL:
<http://savannah.gnu.org/bugs/?52321>
Summary: gsl_linalg_bidiag_unpack2 functioan has wrong
householder transform call for V in GSL1.8
Project: GNU Scientific Library
Submitted by: psa
Submitted on: 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:
Discussion Lock: Any
_______________________________________________________
Details:
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);
}
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?52321>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/