XLPack 7.0
XLPack Numerical Library (C API) Reference Manual
Loading...
Searching...
No Matches

◆ 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 
)

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 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]transaSpecifies the option op(A):
= 'N': op(A) = A (No transpose)
= 'C': op(A) = A^H (Conjugate transpose)
[in]transbSpecifies the option op(B):
= 'N': op(B) = B (No transpose)
= 'C': op(B) = B^H (Conjugate transpose)
[in]isgnSpecifies 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]mThe 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]nThe 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]ldaLeading dimension of the two dimensional array a[][]. (lda >= max(1, m))
[in]a[][]Array a[la][lda] (la >= m)
The upper triangular matrix A.
[in]ldbLeading dimension of the two dimensional array b[][]. (ldb >= max(1, n))
[in]b[][]Array b[lb][ldb] (lb >= n)
The upper triangular matrix B.
[in]ldcLeading dimension of the two dimensional array c[][]. (ldc >= max(1, m))
[in,out]c[][]Array c[lc][ldc] (lc >= n)
[in] The m x n right hand side matrix C.
[out] Overwritten by the solution matrix X.
[out]scaleThe 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 lda had an illegal value (lda < max(1, m))
= -8: The argument ldb had an illegal value (ldb < max(1, n))
= -10: The argument ldc had an illegal value (ldc < max(1, m))
= 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