79 SUBROUTINE dget35( RMAX, LMAX, NINFO, KNT )
87 INTEGER KNT, LMAX, NINFO
94 DOUBLE PRECISION ZERO, ONE
95 parameter( zero = 0.0d0, one = 1.0d0 )
96 DOUBLE PRECISION TWO, FOUR
97 parameter( two = 2.0d0, four = 4.0d0 )
100 CHARACTER TRANA, TRANB
101 INTEGER I, IMA, IMB, IMLDA1, IMLDA2, IMLDB1, IMLOFF,
102 $ INFO, ISGN, ITRANA, ITRANB, J, M, N
103 DOUBLE PRECISION BIGNUM, CNRM, EPS, RES, RES1, RMUL, SCALE,
107 INTEGER IDIM( 8 ), IVAL( 6, 6, 8 )
108 DOUBLE PRECISION A( 6, 6 ), B( 6, 6 ), C( 6, 6 ), CC( 6, 6 ),
109 $ DUM( 1 ), VM1( 3 ), VM2( 3 )
112 DOUBLE PRECISION DLAMCH, DLANGE
113 EXTERNAL dlamch, dlange
119 INTRINSIC abs, dble, max, sin, sqrt
122 DATA idim / 1, 2, 3, 4, 3, 3, 6, 4 /
123 DATA ival / 1, 35*0, 1, 2, 4*0, -2, 0, 28*0, 1, 5*0,
124 $ 5, 1, 2, 3*0, -8, -2, 1, 21*0, 3, 4, 4*0, -5,
125 $ 3, 4*0, 1, 2, 1, 4, 2*0, -3, -9, -1, 1, 14*0,
126 $ 1, 5*0, 2, 3, 4*0, 5, 6, 7, 21*0, 1, 5*0, 1, 3,
127 $ -4, 3*0, 2, 5, 2, 21*0, 1, 2, 4*0, -2, 0, 4*0,
128 $ 5, 6, 3, 4, 2*0, -1, -9, -5, 2, 2*0, 4*8, 5, 6,
129 $ 4*9, -7, 5, 1, 5*0, 1, 5, 2, 3*0, 2, -21, 5,
130 $ 3*0, 1, 2, 3, 4, 14*0 /
137 smlnum = dlamch(
'S' )*four / eps
138 bignum = one / smlnum
139 CALL dlabad( smlnum, bignum )
143 vm1( 1 ) = sqrt( smlnum )
145 vm1( 3 ) = sqrt( bignum )
147 vm2( 2 ) = one + two*eps
159 DO 130 isgn = -1, 1, 2
179 a( i, j ) = ival( i, j, ima )
180 IF( abs( i-j ).LE.1 )
THEN
181 a( i, j ) = a( i, j )*
183 a( i, j ) = a( i, j )*
186 a( i, j ) = a( i, j )*
195 b( i, j ) = ival( i, j, imb )
196 IF( abs( i-j ).LE.1 )
THEN
197 b( i, j ) = b( i, j )*
200 b( i, j ) = b( i, j )*
210 c( i, j ) = sin( dble( i*j ) )
211 cnrm = max( cnrm, c( i, j ) )
212 cc( i, j ) = c( i, j )
216 CALL dtrsyl( trana, tranb, isgn, m, n,
217 $ a, 6, b, 6, c, 6, scale,
221 xnrm = dlange(
'M', m, n, c, 6, dum )
223 IF( xnrm.GT.one .AND. tnrm.GT.one )
225 IF( xnrm.GT.bignum / tnrm )
THEN
226 rmul = one / max( xnrm, tnrm )
229 CALL dgemm( trana,
'N', m, n, m, rmul,
230 $ a, 6, c, 6, -scale*rmul,
232 CALL dgemm(
'N', tranb, m, n, n,
233 $ dble( isgn )*rmul, c, 6, b,
235 res1 = dlange(
'M', m, n, cc, 6, dum )
236 res = res1 / max( smlnum, smlnum*xnrm,
237 $ ( ( rmul*tnrm )*eps )*xnrm )
238 IF( res.GT.rmax )
THEN