?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