?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