BLAS 函数语法
此部分包含有关 sgemv 和 dgemv 函数以及 sgemm 和 dgemm 函数的原型的信息。
sgemv 和 dgemv 函数的原型如下所示:void sgemv(const char *trans, int *m, int *n, float *alpha,
void *a, int *lda, void *x, int *incx,
float *beta, void *y, int *incy); void dgemv(const char *trans, int *m, int *n, double *alpha,
void *a, int *lda, void *x, int *incx,
double *beta, void *y, int *incy);参数如下所示:- 事务
- 是单个字符,指示输入矩阵 a的格式,其中:
'N'或'n'指示将在计算中使用 a'T'或't'指示将在计算中使用 a 的转置
- m
- 表示:
- 输入矩阵 a 中的行数
- 向量 y的长度 (如果
'N'或'n'用于 trans 参数) - 向量 x的长度 (如果
'T'或't'用于 trans 参数)
- n
- 表示:
- 输入矩阵 a 中的列数
- 向量 x的长度 (如果
'N'或'n'用于 trans 参数) - 向量 y的长度 (如果
'T'或't'用于 trans 参数)
- alpha
- 是矩阵 a 的缩放常量
- a
- 是
float(对于sgemv) 或double(对于dgemv) 值的输入矩阵 - lda
- 是由 a指定的数组的前导维度。 前导维度必须大于零。 前导维度必须大于或等于 1 ,且大于或等于 m中指定的值。
- x
- 是
float(对于sgemv) 或double(对于dgemv) 值的输入向量。 - incx
- 是向量 x的条带。 它可以具有任何值。
- Beta
- 是向量 y 的标度常量
- y
- 是
float(对于sgemv) 或double(对于dgemv) 值的输出向量。 - 包括
- 是向量 y的 stride。 不能为零。
注: 向量 y 不得具有具有矩阵 a 或向量 x的公共元素; 否则,结果不可预测。
sgemm 和 dgemm 函数的原型如下所示:void sgemm(const char *transa, const char *transb,
int *l, int *n, int *m, float *alpha,
const void *a, int *lda, void *b, int *ldb,
float *beta, void *c, int *ldc); void dgemm(const char *transa, const char *transb,
int *l, int *n, int *m, double *alpha,
const void *a, int *lda, void *b, int *ldb,
double *beta, void *c, int *ldc);参数如下所示:- transa
- 是单个字符,指示输入矩阵 a的格式,其中:
'N'或'n'指示将在计算中使用 a'T'或't'指示将在计算中使用 a 的转置
- 事务
- 是指示输入矩阵 b格式的单个字符,其中:
'N'或'n'指示将在计算中使用 b'T'或't'指示将在计算中使用 b 的转置
- L
- 表示输出矩阵 c中的行数。 行数必须大于或等于零,并且小于 c的前导维数。
- n
- 表示输出矩阵 c中的列数。 列数必须大于或等于零。
- m
- 表示:
- 矩阵 a中的列数 (如果
'N'或'n'用于 transa 参数) - 矩阵 a中的行数 (如果
'T'或't'用于 transa 参数)
- 矩阵 b中的行数 (如果
'N'或'n'用于 transb 参数) - 矩阵 b中的列数 (如果
'T'或't'用于 transb 参数)
- 矩阵 a中的列数 (如果
- alpha
- 是矩阵 a 的缩放常量
- a
- 是
float(对于sgemm) 或double(对于dgemm) 值的输入矩阵 a - lda
- 是由 a指定的数组的前导维度。 前导维度必须大于零。 如果将 transa 指定为
'N'或'n',那么前导维度必须大于或等于 1。 如果将 transa 指定为'T'或't',那么前导维度必须大于或等于 m中指定的值。 - b
- 是
float(对于sgemm) 或double(对于dgemm) 值的输入矩阵 b 。 - ldb
- 是由 b指定的数组的前导维度。 前导维度必须大于零。 如果 transb 指定为
'N'或'n',那么前导维度必须大于或等于 m中指定的值。 如果将 transa 指定为'T'或't',那么前导维度必须大于或等于 n中指定的值。 - Beta
- 是矩阵 c 的缩放常量
- c
- 是
float(对于sgemm) 或double(对于dgemm) 值的输出矩阵 c 。 - 最不发达国家
- 是由 c指定的数组的前导维度。 前导维度必须大于零。 如果 transb 指定为
'N'或'n',那么前导维度必须大于或等于 0 且大于或等于 l中指定的值。
注: 矩阵 c 不得具有具有矩阵 a 或 b的公共元素; 否则,结果不可预测。