83 SUBROUTINE zget35( RMAX, LMAX, NINFO, KNT, NIN )
90 INTEGER KNT, LMAX, NIN, NINFO
99 DOUBLE PRECISION ZERO, ONE, TWO
100 parameter( zero = 0.0d0, one = 1.0d0, two = 2.0d0 )
101 DOUBLE PRECISION LARGE
102 parameter( large = 1.0d6 )
104 parameter( cone = 1.0d0 )
107 CHARACTER TRANA, TRANB
108 INTEGER I, IMLA, IMLAD, IMLB, IMLC, INFO, ISGN, ,
110 DOUBLE PRECISION BIGNUM, EPS, RES, RES1, SCALE, SMLNUM, TNRM,
115 DOUBLE PRECISION DUM( 1 ), VM1( 3 ), VM2( 3 )
116 COMPLEX*16 A( LDT, ), ATMP( LDT, LDT ), B( LDT, LDT ),
117 $ BTMP( LDT, LDT ), C( LDT, LDT ),
118 $ CSAV( LDT, LDT ), CTMP( , LDT )
121 DOUBLE PRECISION DLAMCH, ZLANGE
122 EXTERNAL dlamch, zlange
128 INTRINSIC abs, dble,
max, sqrt
135 smlnum = dlamch(
'S' ) / eps
136 bignum = one / smlnum
137 CALL dlabad( smlnum, bignum )
141 vm1( 1 ) = sqrt( smlnum )
145 vm2( 2 ) = one + two*eps
156 READ( nin, fmt = * )m, n
160 READ( nin, fmt = * )( atmp( i, j ), j = 1, m )
163 READ( nin, fmt = * )( btmp( i, j ), j = 1, n )
166 READ( nin, fmt = * )( ctmp( i, j ), j = 1, n )
174 DO 110 isgn = -1, 1, 2
186 a( i, j ) = atmp( i, j )*vm1( imla )
187 tnrm =
max( tnrm, abs( a( i, j ) ) )
189 a( i, i ) = a( i, i )*vm2( imlad )
190 tnrm =
max( tnrm, abs( a( i, i ) ) )
194 b( i, j ) = btmp( i, j )*vm1( imlb )
195 tnrm =
max( tnrm, abs( b( i, j ) ) )
202 c( i, j ) = ctmp( i, j )*vm1( imlc )
203 csav( i, j ) = c( i, j )
207 CALL ztrsyl( trana, tranb, isgn, m, n, a,
208 $ ldt, b, ldt, c, ldt, scale,
212 xnrm = zlange(
'M', m, n, c, ldt, dum )
214 IF( xnrm.GT.one .AND. tnrm.GT.one )
THEN
215 IF( xnrm.GT.bignum / tnrm )
THEN
216 rmul =
max( xnrm, tnrm )
220 CALL zgemm( trana,
'N', m, n, m, rmul, a,
221 $ ldt, c, ldt, -scale*rmul, csav
223 CALL zgemm(
'N', tranb, m, n, n,
224 $ dble( isgn )*rmul, c, ldt, b,
225 $ ldt, cone, csav, ldt )
226 res1 = zlange(
'M', m, n, csav, ldt, dum )
227 res = res1 /
max( smlnum, smlnum*xnrm,
228 $ ( ( abs( rmul )*tnrm )*eps )*xnrm )
229 IF( res.GT.rmax )
THEN
subroutine ztrsyl(trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info)
ZTRSYL
subroutine zgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
ZGEMM