?TRSM_
List
strsm_ | 単精度実 数三角行列を係数行列とする行列方程式を解く |
dtrsm_ | 倍精度実 数三角行列を係数行列とする行列方程式を解く |
ctrsm_ | 単精度複素数三角行列を係数行列とする行列方程式を解く |
ztrsm_ | 倍精度複素数三角行列を係数行列とする行列方程式を解く |
概略
三角行列を係数とする行列方程式を解きます。Bに単位行列を指定して渡すと、逆行列が計算できます。(数値計算上、逆行列を持つ方が不利になる場合が多いのでほんとうに必要か(特に三角行列なので)を良く考えて使う必要はありますが)計算式
B := alpha A^-1 Bまたは
B := alpha B A^-1
プロトタイプ宣言
void strsm_(char *side, char *uplo, char *trans, char *diag, int *m, int *n,float *alpha, float *A, int *ldA, float *B, int *ldB);
void dtrsm_(char *side, char *uplo, char *trans, char *diag, int *m, int *n,
double *alpha, double *A, int *ldA, double *B, int *ldB);
void ctrsm_(char *side, char *uplo, char *trans, char *diag, int *m, int *n,
complex *alpha, complex *A, int *ldA, complex *B, int *ldB);
void ztrsm_(char *side, char *uplo, char *trans, char *diag, int *m, int *n,
doublecomplex *alpha, doublecomplex *A, int *ldA, doublecomplex *B, int *ldB);
引数/戻り値
変数名 | 型 | 概要 |
side | char* | 行列Aがどちらに来るか ("L"(左側 A^-1 B),"R"(右側 B A^-1)から選択) |
uplo | char* | 行列Aのどの部分を使うか指定 ("L"(下三角),"U"(上三角)から選択) |
trans | char* | 行列Aの転置を指定 ("N"(そのまま),"T"(転置),"C"(共役転置)から選択) |
diag | char* | 単位三角行列か指定 ("U"(単位三角行列),"N"(そうでない)から選択) |
m | int* | 行列Bの行数 行列Aの行数・列数 |
n | int* | 行列Bの列数 |
alpha | double* | スカラーalpha |
A | double* | 行列Aの先頭ポインタ |
ldA | int* | Aのleading dimension (通常は行数を指定すれば良い) |
B | double* | 行列Bの先頭ポインタ |
ldB | int* | Bのleading dimension (通常は行数を指定すれば良い) |
戻り値 | void |