Subject: [ublas] [bindings] Possible bug in GBCON
From: Marco Guazzone (marco.guazzone_at_[hidden])
Date: 2010-07-27 05:00:50
I'm facing a problem with GBCON.
I use it to estimate the reciprocal matrix condition number of a banded matrix.
Firstly, I call GBTRF to get the LUP decomposition (AB, IPIV) of my
input matrix A.
Then, I compute the matrix norm (specifically, the 1-norm).
Finally, I call GBCON using as parameters the above (AB,IPIV) pair and
the matrix norm:
bindings::lapack::gbcon('O', AB, IPIV, norm, rcond)
The result is stored in 'rcond'.
Well, when I call GBCON the following assertion fails (gbcon.hpp -
BOOST_ASSERT( bindings::stride_major(ab) >=
I think the problem is in the use of
which IMHO should be replaced with
bindings::bandwidth_upper(ab) - bindings::bandwidth_lower(ab)
As a matter of fact, LAPACK doc
refers to KL and KU with respect to the original input matrix A and
not to its LUP decomposition AB.
I submit a test case and a possible patch (the patch also fixes a
similar issue when calling detail::gbcon).
What do you think?
Thank you very much!!