- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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.

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page