You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: lib/node_modules/@stdlib/lapack/base/README.md
+153Lines changed: 153 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,159 @@ limitations under the License.
22
22
23
23
> Base (i.e., lower-level) linear algebra package (LAPACK) routines.
24
24
25
+
<sectionclass="intro">
26
+
27
+
## Band Storage
28
+
29
+
Many LAPACK routines work with banded matrices, which are stored compactly in two-dimensional arrays to save memory and improve computational efficiency. This section describes the different band storage formats used throughout the LAPACK library.
30
+
31
+
### General Band Matrix Storage
32
+
33
+
A general band matrix of size `M`-by-`N` with `KL` subdiagonals and `KU` superdiagonals is stored in a two-dimensional array `AB` with `KL+KU+1` rows and `N` columns.
34
+
35
+
**Storage Mapping:**
36
+
37
+
- Columns of the original matrix are stored in corresponding columns of the array `AB`
38
+
- Diagonals of the matrix are stored in rows of the array `AB`
39
+
- Element `A( i, j )` from the original matrix is stored in `AB(KU+1+i-j, j)`
40
+
- Valid range for `i`: `max(1, j-KU) <= i <= min(M, j+KL)`
Elements marked `*` need not be set and are not referenced by LAPACK routines.
80
+
81
+
**Note:** When a band matrix is supplied for LU factorization, space must be allowed to store an additional `KL` superdiagonals, generated by fill-in as a result of row interchanges. This means that the matrix is stored according to the above scheme, but with `KL + KU` superdiagonals.
82
+
83
+
### Triangular Band Matrices
84
+
85
+
Triangular band matrices are stored in the same format as general band matrices:
86
+
87
+
- If `KL = 0`, the matrix is upper triangular
88
+
- If `KU = 0`, the matrix is lower triangular
89
+
90
+
### Symmetric or Hermitian Band Matrices
91
+
92
+
For symmetric or Hermitian band matrices with `KD` subdiagonals or superdiagonals, only the upper or lower triangle (as specified by `UPLO`) needs to be stored.
93
+
94
+
**Upper Triangle Storage (UPLO = 'U'):**
95
+
96
+
- Element `A( i, j )` is stored in `AB(KD+1+i-j, j)`
0 commit comments