|
◆ Ztrsyl()
Sub Ztrsyl |
( |
Transa As |
String, |
|
|
Transb As |
String, |
|
|
Isign As |
Long, |
|
|
M As |
Long, |
|
|
N As |
Long, |
|
|
A() As |
Complex, |
|
|
B() As |
Complex, |
|
|
C() As |
Complex, |
|
|
Scal As |
Double, |
|
|
Info As |
Long |
|
) |
| |
Solve complex Sylvester matrix equation
- Purpose
- This routine solves the complex Sylvester matrix equation:
op(A)*X + X*op(B) = scale*C or
op(A)*X - X*op(B) = scale*C
where op(A) = A or A^H, and A and B are both upper quasi-triangular. A is M x M and B is N x N. The right hand side C and the solution X are M x N. scale is an output scale factor, set <= 1 by the routine to avoid overflow in X.
- Parameters
-
[in] | Transa | Specifies the option op(A):
= "N": op(A) = A (No transpose)
= "C": op(A) = A^H (Conjugate transpose) |
[in] | Transb | Specifies the option op(B):
= "N": op(B) = B (No transpose)
= "C": op(B) = B^H (Conjugate transpose) |
[in] | Isgn | Specifies the sign in the equation:
= +1: Solve op(A)*X + X*op(B) = scale*C
= -1: Solve op(A)*X - X*op(B) = scale*C |
[in] | M | The order of the matrix A, and the number of rows in the matrices X and C. (M >= 0) (If M = 0, returns without computation) |
[in] | N | The order of the matrix B, and the number of columns in the matrices X and C. (N >= 0) (If N = 0, returns without computation) |
[in] | A() | Array A(LA1 - 1, LA2 - 1) (LA1 >= M, LA2 >= M)
The upper triangular matrix A. |
[in] | B() | Array B(LB1 - 1, LB2 - 1) (LB1 >= N, LB2 >= N)
The upper triangular matrix B. |
[in,out] | C() | Array C(LC1 - 1, LC2 - 1) (LC1 >= M, LC2 >= N)
[in] The M x N right hand side matrix C.
[out] Overwritten by the solution matrix X. |
[out] | Scal | The scale factor, scale, set <= 1 by the routine to avoid overflow in X. |
[out] | Info | = 0: Successful exit.
= -1: The argument Transa had an illegal value. (Transa <> "N" nor "C")
= -2: The argument Transb had an illegal value. (Transb <> "N" nor "C")
= -3: The argument Isgn had an illegal value. (Isign <> 1 nor -1)
= -4: The argument M had an illegal value. (M < 0)
= -5: The argument N had an illegal value. (N < 0)
= -6: The argument A() is invalid.
= -7: The argument B() is invalid.
= -8: The argument C() is invalid.
= 1: A and B have common or very close eigenvalues; perturbed values were used to solve the equation (but the matrices A and B are unchanged). |
- Reference
- LAPACK
|