?lange
计算矩阵的范数,包含:1范数,F范数,无穷范数等。
接口定义
C Interface:
float slange_(const char *norm, const int *m, const int *n, const float *a, const int *lda, float *work);
double dlange_(const char *norm, const int *m, const int *n, const double *a, const int *lda, double *work);
float clange_(const char *norm, const int *m, const int *n, const float _Complex *a, const int *lda, float _Complex *work);
double zlange_(const char *norm, const int *m, const int *n, const double _Complex *a, const int *lda, double _Complex *work);
Fortran Interface:
SLANGE(NORM, M, N, A, LDA, WORK);
DLANGE(NORM, M, N, A, LDA, WORK);
CLANGE(NORM, M, N, A, LDA, WORK);
ZLANGE(NORM, M, N, A, LDA, WORK);
参数
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
NORM |
字符型 |
|
输入 |
M |
整数型 |
矩阵A的行数,M≥0。当M=0时,返回0。 |
输入 |
N |
整数型 |
矩阵A的列数,N≥0。当N=0时,返回0。 |
输入 |
A |
|
矩阵A,大小为LDA*N。 |
输入 |
LDA |
整数型 |
矩阵A的主维,LDA≥max(M,1)。 |
输入 |
WORK |
|
工作数组,大小为max(1, LWORK)。
|
输出 |
依赖
#include "klapack.h"
示例
C Interface:
const char norm = 'M'; const int n = 4; const int m = 4; const int lda = m; int info = 0; double a[] = {1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0}; double work; double res = dlange_(&norm, &m, &n, a, &lda, &work); /* * Output: * res: 4.000000
Fortran Interface:
CHARACTER :: norm = "M" PARAMETER (m = 4) PARAMETER (n = 4) PARAMETER (lda = 4) REAL(8) :: work REAL(8) :: a(lda, n) DATA a / 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0 / EXTERNAL DLANGE CALL DLANGE(norm, m, n, a, lda, work); * * Output: * res: 4.000000