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);
パラメーターを以下に示します。
- trans
- これは単一文字で入力行列の書式 a を示します。ここで、
- 'N' または 'n' は、a が計算に使用されることを示しています。
- 'T' または 't' は a の転置 (transpose) が計算に使用されることを示しています。
- m
- 以下を表しています。
- 入力行列 a 内の行数
- ベクトル y の長さ、もし 'N' または 'n' が trans パラメーターに使用されている場合。
- ベクトル x の長さ、もし 'T' または 't' が trans パラメーターに使用されている場合。
行数はゼロ以上で、行列 a (lda に指定済み) の先導ディメンション (leading dimension) より小でなければならない。
- n
- 以下を表しています。
- 入力行列 a 内の列数
- ベクトル x の長さ、もし 'N' または 'n' が trans パラメーターに使用されている場合。
- ベクトル y の長さ、もし 'T' または 't' が trans パラメーターに使用されている場合。
列数はゼロ以上でなければならない。
- alpha
- これは行列 a のスケーリング定数です。
- a
- これは float (sgemv 用) または double (dgemv 用) 値の入力行列です。
- lda
- これは、a で指定される配列の先導ディメンション (leading dimension) です。先導ディメンション (leading dimension) はゼロより大でなければなりません。
先導ディメンションは (leading dimension) 1 以上で、m で指定された値以上でなければなりません。
- x
- これは、float (sgemv 用) の入力ベクトル、または double (dgemv 用) 値です。
- incx
- これはベクトル x のストライド。任意の値を持てる。
- beta
- これはベクトル y のスケーリング定数です。
- y
- これは、float (sgemv 用) の出力ベクトル、または double (dgemv 用) 値です。
- incy
- これはベクトル y のストライド。ゼロであってはならない。
注: ベクトル 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 の転置 (transpose) が計算に使用されることを示しています。
- transb
- これは単一文字で入力行列の書式 b を示します。ここで、
- 'N' または 'n' は、b が計算に使用されることを示しています。
- 'T' または 't' は b の転置 (transpose) が計算に使用されることを示しています。
- l
- 出力行列 c の行数を表します。行数はゼロ以上で、c の先導ディメンション (leading dimension) より小でなければならない。
- n
- 出力行列 c の列数を表します。列数はゼロ以上でなければならない。
- m
- 以下を表しています。
- 行列 a の列数。'N' または 'n' が transa パラメーターに対して使用されている場合
- 行列 a の行数。'T' または 't' が transa パラメーターに対して使用されている場合
そして、
- 行列 b の行数。'N' または 'n' が transb パラメーターに対して使用されている場合
- 行列 b の列数。'T' または 't' が transb パラメーターに対して使用されている場合
m はゼロ以上でなければなりません。
- alpha
- これは行列 a のスケーリング定数です。
- a
- これは float (sgemm 用) または double (dgemm 用) 値の入力行列 a です。
- lda
- これは、a で指定される配列の先導ディメンション (leading dimension) です。先導ディメンション (leading dimension) はゼロより大でなければなりません。
もし transa が 'N' または 'n' として指定されると、先導ディメンション (leading dimension) は 1 以上でなければなりません。
もし transa が 'T' または 't' として指定されると、先導ディメンション (leading dimension) は m で指定された値以上でなければなりません。
- b
- これは float (sgemm 用) または double (dgemm 用) 値の入力行列 b です。
- ldb
- これは、b で指定される配列の先導ディメンション (leading dimension) です。先導ディメンション (leading dimension) はゼロより大でなければなりません。
もし transb が 'N' または 'n' として指定されると、先導ディメンション (leading dimension) は m
で指定された値以上でなければなりません。
もし transa が 'T' または 't' として指定されると、先導ディメンション (leading dimension) は n
で指定された値以上でなければなりません。
- beta
- これは行列 c のスケーリング定数です。
- c
- これは float (sgemm 用) または double (dgemm 用) 値の出力行列 c です。
- ldc
- これは、c で指定される配列の先導ディメンション (leading dimension) です。先導ディメンション (leading dimension) はゼロより大でなければなりません。
もし transb が 'N' または 'n' として指定されると、先導ディメンション (leading dimension) は 0 以上で、
l で指定された値以上でなければなりません。
注: 行列 c は、行列 a または b と共通エレメントを持ってはならない。
そうでない場合、結果は予測不能です。