-
template<typename T>
T langb(char *norm, integer *n, integer *kl, integer *ku, T *ab, integer *ldab, T *work)# LANGB returns the value of the 1-norm, Frobenius norm, infinity-norm,
or the largest absolute value of any element of general band matrix.
Purpose:
LANGB returns the value of the one norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of an n by n band matrix A, with kl sub-diagonals and ku super-diagonals. SLANGB = (fla_max(abs(A(i,j))), NORM = 'M' or 'm' ( (norm1(A), NORM = '1', 'O' or 'o' ( (normI(A), NORM = 'I' or 'i' ( (normF(A), NORM = 'F', 'f', 'E' or 'e' where norm1 denotes the one norm of a matrix (maximum column sum), normI denotes the infinity norm of a matrix (maximum row sum) and normF denotes the Frobenius norm of a matrix (square root of sum of squares). Note that fla_max(abs(A(i,j))) is not a consistent matrix norm.
- Parameters:
NORM – [in]
NORM is CHARACTER*1
Specifies the value to be returned in SLANGB as described above.
N – [in]
N is INTEGER
The order of the matrix A. N >= 0. When N = 0, SLANGB is set to zero.
KL – [in]
KL is INTEGER
The number of sub-diagonals of the matrix A. KL >= 0.
KU – [in]
KU is INTEGER
The number of super-diagonals of the matrix A. KU >= 0.
AB – [in]
AB is REAL array, dimension (LDAB,N)
The band matrix A, stored in rows 1 to KL+KU+1. The j-th column of A is stored in the j-th column of the array AB as follows:
AB(ku+1+i-j,j) = A(i,j) for fla_max(1,j-ku)<=i<=min(n,j+kl).LDAB – [in]
LDAB is INTEGER
The leading dimension of the array AB. LDAB >= KL+KU+1.
WORK – [out]
WORK is REAL array, dimension (MAX(1,LWORK)),
where LWORK >= N when NORM = ‘I’; otherwise, WORK is not referenced.
- Returns:
Returns the value of the norm.