-
template<typename T>
T lantp(char *norm, char *uplo, char *diag, integer *n, T *ap, T *work)# LANTP returns the value of the one norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a triangular matrix A, supplied in packed form.
Purpose:
SLANTP = ( 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 SLANTP as described above.
UPLO – [in]
UPLO is CHARACTER*1
Specifies whether the matrix A is upper or lower triangular.
= ‘U’: Upper triangular
= ‘L’: Lower triangular
DIAG – [in]
DIAG is CHARACTER*1
Specifies whether or not the matrix A is unit triangular.
= ‘N’: Non-unit triangular
= ‘U’: Unit triangular
N – [in]
N is INTEGER
The order of the matrix A. N >= 0. When N = 0, SLANTP is set to zero.
AP – [in]
AP is REAL array, dimension (N*(N+1)/2)
The upper or lower triangular matrix A, packed columnwise in a linear array. The j-th column of A is stored in the array AP as follows:
if UPLO = ‘U’, AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
if UPLO = ‘L’, AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
Note that when DIAG = ‘U’, the elements of the array AP corresponding to the diagonal elements of the matrix A are not referenced, but are assumed to be one.WORK – [out]
WORK is REAL array, dimension (MAX(1,LWORK)),
where LWORK >= N when NORM = ‘I’; otherwise, WORK is not referenced.
- Returns:
Returns value of the norm.