?TRSV_
List
strsv_ | 単精度実 数三角行列を係数行列とする連立一次方程式を解く |
dtrsv_ | 倍精度実 数三角行列を係数行列とする連立一次方程式を解く |
ctrsv_ | 単精度複素数三角行列を係数行列とする連立一次方程式を解く |
ztrsv_ | 倍精度複素数三角行列を係数行列とする連立一次方程式を解く |
概略
三角行列を係数とする連立方程式を解きます。与えた右辺ベクトルは破壊されます。引数で上三角部分を利用するか下三角部分を利用するか選択できます。また、行列を転置してとかせることも出来ます。一見無意味なように見えますが、上三角部分だけに要素が入った三角行列をCholesky分解されている物と考えると、上三角で転置→上三角でそのまま の行列を係数とすることなどが必要になります。適宜状態に応じて使い分けるようにしてください。
計算式
x := A^-1 xプロトタイプ宣言
void strsv_(char *uplo, char *trans, char *diag, int *n, float *A, int *ldA, float *x, int *incx);void dtrsv_(char *uplo, char *trans, char *diag, int *n, double *A, int *ldA, double *x, int *incx);
void ctrsv_(char *uplo, char *trans, char *diag, int *n, complex *A, int *ldA, complex *x, int *incx);
void ztrsv_(char *uplo, char *trans, char *diag, int *n, doublecomplex *A, int *ldA, doublecomplex *x, int *incx);
引数/戻り値
変数名 | 型 | 概要 |
uplo | char* | 行列のどちら側を使うか指定("U"(上三角),"L"(下三角)から選択) |
trans | char* | 行列の転置を指定 ("N"(そのまま),"T"(転置),"C"(共役転置)から選択) |
diag | char* | 単位三角行列か指定 ("U"(単位三角行列),"N"(そうでない)から選択) |
n | int* | 行列の行数・列数 |
A | double* | 行列Aの先頭ポインタ |
ldA | int* | Aのleading dimension (通常は行数を指定すれば良い) |
x | double* | ベクトルxの先頭ポインタ |
incx | int* | Xのインクリメント幅(通常1を指定すれば良い) |
戻り値 | void |