XLPack 7.0
XLPack 数値計算ライブラリ (C API) リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ ztrsyl()

void ztrsyl ( char  transa,
char  transb,
int  isgn,
int  m,
int  n,
int  lda,
doublecomplex  a[],
int  ldb,
doublecomplex  b[],
int  ldc,
doublecomplex  c[],
double *  scale,
int *  info 
)

シルベスター方程式の解 (複素行列)

目的
本ルーチンは次の複素シルベスター方程式を解く.
op(A)*X + X*op(B) = scale*C または
op(A)*X - X*op(B) = scale*C
ただし, op(A) = A または A^H で, A と B は両方とも上三角行列である. A は m x m, B は n x n, 右辺行列 C および 解行列 X は m x n 行列である. scale は出力スケール因子で, X のオーバーフローを避けるために scale <= 1 と設定される.
引数
[in]transaop(A) を指定する.
= 'N': op(A) = A (転置なし)
= 'C': op(A) = A^H (共役転置)
[in]transbop(B) を指定する.
= 'N': op(B) = B (転置なし)
= 'C': op(B) = B^H (共役転置)
[in]isgn方程式の符号を指定する.
= +1: op(A)*X + X*op(B) = scale*C を解く.
= -1: op(A)*X - X*op(B) = scale*C を解く.
[in]m行列 A の行および列数. また, 行列 X および C の行数. (m >= 0) (m = 0 の場合, 処理を行わずに戻る)
[in]n行列 B の行および列数. また, 行列 X および C の列数. (n >= 0) (n = 0 の場合, 処理を行わずに戻る)
[in]lda二次元配列 a[][] の整合寸法. (lda >= max(1, m))
[in]a[][]Array a[la][lda] (la >= m)
上三角行列 A.
[in]ldb二次元配列 b[][] の整合寸法. (ldb >= max(1, n))
[in]b[][]Array b[lb][ldb] (lb >= n)
上三角行列 B.
[in]ldc二次元配列 c[][] の整合寸法. (ldc >= max(1, m))
[in,out]c[][]配列 c[lc][ldc] (lc >= n)
[in] m x n 右辺行列 C.
[out] 解行列 X で上書きされる.
[out]scaleスケール因子 scale. 本ルーチンは X のオーバーフローを避けるために scale <= 1 と設定する.
[out]info= 0: 正常終了
= -1: 入力パラメータ transa の誤り (transa != 'N' および 'C')
= -2: 入力パラメータ transb の誤り (transb != 'N' および 'C')
= -3: 入力パラメータ isgn の誤り (isign != 1 および -1)
= -4: 入力パラメータ m の誤り (m < 0)
= -5: 入力パラメータ n の誤り (n < 0)
= -6: 入力パラメータ lda の誤り (lda < max(1, m))
= -7: 入力パラメータ ldb の誤り (ldb < max(1, n))
= -10: 入力パラメータ ldc の誤り (ldc < max(1, m))
= 1: A と B が同じまたは非常に近い固有値を持ち, 方程式を解くために摂動を加えた値が使われた(A と B は変更されない).
出典
LAPACK