?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