Visible to Intel only — GUID: GUID-6364E6E5-8809-4543-8280-4195096896A8
Visible to Intel only — GUID: GUID-6364E6E5-8809-4543-8280-4195096896A8
?pbequ
Computes row and column scaling factors intended to equilibrate a symmetric (Hermitian) positive-definite band matrix and reduce its condition number.
Syntax
lapack_int LAPACKE_spbequ( int matrix_layout, char uplo, lapack_int n, lapack_int kd, const float* ab, lapack_int ldab, float* s, float* scond, float* amax );
lapack_int LAPACKE_dpbequ( int matrix_layout, char uplo, lapack_int n, lapack_int kd, const double* ab, lapack_int ldab, double* s, double* scond, double* amax );
lapack_int LAPACKE_cpbequ( int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_float* ab, lapack_int ldab, float* s, float* scond, float* amax );
lapack_int LAPACKE_zpbequ( int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_double* ab, lapack_int ldab, double* s, double* scond, double* amax );
Include Files
- mkl.h
Description
The routine computes row and column scalings intended to equilibrate a symmetric (Hermitian) positive definite band matrix A and reduce its condition number (with respect to the two-norm). The output array s returns scale factors such that contains
These factors are chosen so that the scaled matrix B with elements bij=s[i-1]*aij*s[j-1] has diagonal elements equal to 1. This choice of s puts the condition number of B within a factor n of the smallest possible condition number over all possible diagonal scalings.
Input Parameters
matrix_layout |
Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR). |
uplo |
Must be 'U' or 'L'. Indicates whether the upper or lower triangular part of A is stored in the array ab: If uplo = 'U', the array ab stores the upper triangular part of the matrix A. If uplo = 'L', the array ab stores the lower triangular part of the matrix A. |
n |
The order of matrix A; n≥ 0. |
kd |
The number of superdiagonals or subdiagonals in the matrix A; kd≥ 0. |
ab |
Array, size max(1, ldab*n) . The array ap contains either the upper or the lower triangular part of the matrix A (as specified by uplo) in band storage (see Matrix Storage Schemes). |
ldab |
The leading dimension of the array ab; ldab≥kd +1. |
Output Parameters
s |
Array, size (n). If info = 0, the array s contains the scale factors for A. |
scond |
If info = 0, scond contains the ratio of the smallest s[i] to the largest s[i]. |
amax |
Absolute value of the largest element of the matrix A. |
Return Values
This function returns a value info.
If info = 0, the execution is successful.
If info = -i, parameter i had an illegal value.
If info = i, the i-th diagonal element of A is nonpositive.
Application Notes
If scond≥ 0.1 and amax is neither too large nor too small, it is not worth scaling by s.
If amax is very close to SMLNUM or very close to BIGNUM, the matrix A should be scaled.