256 SUBROUTINE ztgsy2( TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D,
257 $ LDD, E, LDE, F, LDF, SCALE, RDSUM, RDSCAL,
266 INTEGER IJOB, INFO, LDA, LDB, LDC, LDD, LDE, LDF, M, N
267 DOUBLE PRECISION RDSCAL, RDSUM, SCALE
270 COMPLEX*16 A( lda, * ), B( ldb, * ), C( ldc, * ),
271 $ d( ldd, * ), e( lde, * ), f( ldf, * )
277 DOUBLE PRECISION ZERO, ONE
279 parameter( zero = 0.0d+0, one = 1.0d+0, ldz = 2 )
283 INTEGER I, IERR, J, K
284 DOUBLE PRECISION SCALOC
288 INTEGER IPIV( ldz ), JPIV( ldz )
289 COMPLEX*16 RHS( ldz ), Z( ldz, ldz )
299 INTRINSIC dcmplx, dconjg, max
307 notran = lsame( trans,
'N' )
308 IF( .NOT.notran .AND. .NOT.lsame( trans,
'C' ) )
THEN 310 ELSE IF( notran )
THEN 311 IF( ( ijob.LT.0 ) .OR. ( ijob.GT.2 ) )
THEN 318 ELSE IF( n.LE.0 )
THEN 320 ELSE IF( lda.LT.max( 1, m ) )
THEN 322 ELSE IF( ldb.LT.max( 1, n ) )
THEN 324 ELSE IF( ldc.LT.max( 1, m ) )
THEN 326 ELSE IF( ldd.LT.max( 1, m ) )
THEN 328 ELSE IF( lde.LT.max( 1, n ) )
THEN 330 ELSE IF( ldf.LT.max( 1, m ) )
THEN 335 CALL xerbla(
'ZTGSY2', -info )
353 z( 1, 1 ) = a( i, i )
354 z( 2, 1 ) = d( i, i )
355 z( 1, 2 ) = -b( j, j )
356 z( 2, 2 ) = -e( j, j )
365 CALL zgetc2( ldz, z, ldz, ipiv, jpiv, ierr )
369 CALL zgesc2( ldz, z, ldz, rhs, ipiv, jpiv, scaloc )
370 IF( scaloc.NE.one )
THEN 372 CALL zscal( m, dcmplx( scaloc, zero ),
374 CALL zscal( m, dcmplx( scaloc, zero ),
380 CALL zlatdf( ijob, ldz, z, ldz, rhs, rdsum, rdscal,
393 CALL zaxpy( i-1, alpha, a( 1, i ), 1, c( 1, j ), 1 )
394 CALL zaxpy( i-1, alpha, d( 1, i ), 1, f( 1, j ), 1 )
397 CALL zaxpy( n-j, rhs( 2 ), b( j, j+1 ), ldb,
399 CALL zaxpy( n-j, rhs( 2 ), e( j, j+1 ), lde,
419 z( 1, 1 ) = dconjg( a( i, i ) )
420 z( 2, 1 ) = -dconjg( b( j, j ) )
421 z( 1, 2 ) = dconjg( d( i, i ) )
422 z( 2, 2 ) = -dconjg( e( j, j ) )
432 CALL zgetc2( ldz, z, ldz, ipiv, jpiv, ierr )
435 CALL zgesc2( ldz, z, ldz, rhs, ipiv, jpiv, scaloc )
436 IF( scaloc.NE.one )
THEN 438 CALL zscal( m, dcmplx( scaloc, zero ), c( 1, k ),
440 CALL zscal( m, dcmplx( scaloc, zero ), f( 1, k ),
454 f( i, k ) = f( i, k ) + rhs( 1 )*dconjg( b( k, j ) ) +
455 $ rhs( 2 )*dconjg( e( k, j ) )
458 c( k, j ) = c( k, j ) - dconjg( a( i, k ) )*rhs( 1 ) -
459 $ dconjg( d( i, k ) )*rhs( 2 )
subroutine ztgsy2(TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, RDSUM, RDSCAL, INFO)
ZTGSY2 solves the generalized Sylvester equation (unblocked algorithm).
subroutine zaxpy(N, ZA, ZX, INCX, ZY, INCY)
ZAXPY
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zlatdf(IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV)
ZLATDF uses the LU factorization of the n-by-n matrix computed by sgetc2 and computes a contribution ...
subroutine zgetc2(N, A, LDA, IPIV, JPIV, INFO)
ZGETC2 computes the LU factorization with complete pivoting of the general n-by-n matrix...
subroutine zgesc2(N, A, LDA, RHS, IPIV, JPIV, SCALE)
ZGESC2 solves a system of linear equations using the LU factorization with complete pivoting computed...
subroutine zscal(N, ZA, ZX, INCX)
ZSCAL