Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Black Belt
15 Views

Documentation of Lapack ?GBSV()

The documentation of Lapack routine ?GBSV omits one important detail. The page for the routine states correctly at https://software.intel.com/en-us/node/468882#02FA8CF5-DE40-4016-BCD2-8ACFF4236AAD that argument ab should be of dimension (Ldab X n), where Ldab >= 2 kl + ku +1. The page also refers to https://software.intel.com/en-us/node/468672 for details on the band matrix storage scheme, where we find the statement

Band storage: an m-by-n band matrix with kl sub-diagonals and ku superdiagonals is stored compactly in a two-dimensional array ab with kl+ku+1 rows and n columns. 

This seems at first sight to be inconsistent (2 kl + ku + 1 OR kl + ku +1 ?), and leaves out one crucial piece of information, which we can find in the Lapack documentation at Netlib, for example, where it says:

          On entry, the matrix A in band storage, in rows KL+1 to
          2*KL+KU+1; rows 1 to KL of the array need not be set.
          The j-th column of A is stored in the j-th column of the
          array AB as follows:
          AB(KL+KU+1+i-j,j) = A(i,j) for max(1,j-KU)<=i<=min(N,j+KL)

Without this additional information, a user might declare array ab(2 kl + ku + 1, n) and fill the first kl + ku +1 rows of the array with the diagonals of the input matrix, and the solution returned would be totally wrong.

0 Kudos
1 Reply
Highlighted
Moderator
15 Views

Mecej, thanks for very useful comment. we will check and update this description. with regards.

0 Kudos