Visible to Intel only — GUID: GUID-56A16635-89A1-4D37-AD19-359E09778CA5
Visible to Intel only — GUID: GUID-56A16635-89A1-4D37-AD19-359E09778CA5
?gbbrd
Reduces a general band matrix to bidiagonal form.
lapack_int LAPACKE_sgbbrd( int matrix_layout, char vect, lapack_int m, lapack_int n, lapack_int ncc, lapack_int kl, lapack_int ku, float* ab, lapack_int ldab, float* d, float* e, float* q, lapack_int ldq, float* pt, lapack_int ldpt, float* c, lapack_int ldc );
lapack_int LAPACKE_dgbbrd( int matrix_layout, char vect, lapack_int m, lapack_int n, lapack_int ncc, lapack_int kl, lapack_int ku, double* ab, lapack_int ldab, double* d, double* e, double* q, lapack_int ldq, double* pt, lapack_int ldpt, double* c, lapack_int ldc );
lapack_int LAPACKE_cgbbrd( int matrix_layout, char vect, lapack_int m, lapack_int n, lapack_int ncc, lapack_int kl, lapack_int ku, lapack_complex_float* ab, lapack_int ldab, float* d, float* e, lapack_complex_float* q, lapack_int ldq, lapack_complex_float* pt, lapack_int ldpt, lapack_complex_float* c, lapack_int ldc );
lapack_int LAPACKE_zgbbrd( int matrix_layout, char vect, lapack_int m, lapack_int n, lapack_int ncc, lapack_int kl, lapack_int ku, lapack_complex_double* ab, lapack_int ldab, double* d, double* e, lapack_complex_double* q, lapack_int ldq, lapack_complex_double* pt, lapack_int ldpt, lapack_complex_double* c, lapack_int ldc );
- mkl.h
The routine reduces an m-by-n band matrix A to upper bidiagonal matrix B: A = Q*B*PH. Here the matrices Q and P are orthogonal (for real A) or unitary (for complex A). They are determined as products of Givens rotation matrices, and may be formed explicitly by the routine if required. The routine can also update a matrix C as follows: C = QH*C.
- matrix_layout
-
Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).
- vect
-
Must be 'N' or 'Q' or 'P' or 'B'.
If vect = 'N', neither Q nor PH is generated.
If vect = 'Q', the routine generates the matrix Q.
If vect = 'P', the routine generates the matrix PH.
If vect = 'B', the routine generates both Q and PH.
- m
-
The number of rows in the matrix A (m≥ 0).
- n
-
The number of columns in A (n≥ 0).
- ncc
-
The number of columns in C (ncc≥ 0).
- kl
-
The number of sub-diagonals within the band of A (kl≥ 0).
- ku
-
The number of super-diagonals within the band of A (ku≥ 0).
- ab, c
-
Arrays:
ab(size max(1, ldab*n) for column major layout and max(1, ldab*m) for row major layout) contains the matrix A in band storage (see Matrix Storage Schemes).
c(size max(1, ldc*ncc) for column major layout and max(1, ldc*m) for row major layout) contains an m-by-ncc matrix C.
If ncc = 0, the array c is not referenced.
- ldab
-
The leading dimension of the array ab (ldab≥kl + ku + 1).
- ldq
-
The leading dimension of the output array q.
ldq≥ max(1, m) if vect = 'Q' or 'B', ldq≥ 1 otherwise.
- ldpt
-
The leading dimension of the output array pt.
ldpt≥ max(1, n) if vect = 'P' or 'B', ldpt≥ 1 otherwise.
- ldc
-
The leading dimension of the array c.
ldc≥ max(1, m) if ncc > 0; ldc≥ 1 if ncc = 0.
- ab
-
Overwritten by values generated during the reduction.
- d
-
Array, size at least max(1, min(m, n)). Contains the diagonal elements of the matrix B.
- e
-
Array, size at least max(1, min(m, n) - 1).
Contains the off-diagonal elements of B.
- q, pt
-
Arrays:
qsize max(1, ldq*m) contains the output m-by-m matrix Q.
psize max(1, ldpt*n) contains the output n-by-n matrix PT.
- c
-
Overwritten by the product QH*C.
c is not referenced if ncc = 0.
This function returns a value info.
If info=0, the execution is successful.
If info = -i, the i-th parameter had an illegal value.
The computed matrices Q, B, and P satisfy Q*B*PH = A + E, where ||E||2 = c(n)ε ||A||2, c(n) is a modestly increasing function of n, and ε is the machine precision.
If m = n, the total number of floating-point operations for real flavors is approximately the sum of:
6*n2*(kl + ku) if vect = 'N' and ncc = 0,
3*n2*ncc*(kl + ku - 1)/(kl + ku) if C is updated, and
3*n3*(kl + ku - 1)/(kl + ku) if either Q or PH is generated (double this if both).
To estimate the number of operations for complex flavors, use the same formulas with the coefficients 20 and 10 (instead of 6 and 3).