?nrm2
计算向量的欧几里得范数。
即
。x是含有n个元素的向量,||x||相当于
。
接口定义
C interface:
float cblas_snrm2 (const BLASINT N, const float *X, const BLASINT incX);
double cblas_dnrm2 (const BLASINT N, const double *X, const BLASINT incX);
float cblas_scnrm2 (const BLASINT N, const float *X, const BLASINT incX);
double cblas_dznrm2 (const BLASINT N, const double *X, const BLASINT incX);
Fortran interface:
RES = SNRM2(N, X, INCX)
RES = DNRM2(N, X, INCX)
RES = SCNRM2(N, X, INCX)
RES = DZNRM2(N, X, INCX)
参数
参数名 |
类型 |
描述 |
输入/输出 |
|---|---|---|---|
N |
整型数 |
表示X向量的元素个数。 |
输入 |
X |
|
向量X,向量规模至少是(1+(n-1)*abs(incX))。 |
输入/输出 |
incX |
整型数 |
表示X向量增长步长。 |
输入 |
返回值
向量的范数。float或双精度浮点类型。
依赖
#include "kblas.h"
示例
C interface:
int n = 5, incx = 1;
float res;
/**
* X: 0.340188, -0.105617, 0.283099, 0.298440, 0.411647
*/
float x[5] = {0.340188, -0.105617, 0.283099, 0.298440, 0.411647};
res = cblas_snrm2(n, x, incx);
/**
* Output: 0.682310
*/
Fortran interface:
INTEGER :: N=5
INTEGER :: INCX=1
REAL(4) :: RES
REAL(4) :: X(5)
DATA X/0.340188, -0.105617, 0.283099, 0.298440, 0.411647/
EXTERNAL SNRM2
RES=SNRM2(N, X, INCX)
* Output : 0.682310
父主题: KML_BLAS Level 1函数