77 SUBROUTINE dget35( RMAX, LMAX, NINFO, KNT )
84 INTEGER KNT, LMAX, NINFO
91 DOUBLE PRECISION ZERO, ONE
92 parameter( zero = 0.0d0, one = 1.0d0 )
93 DOUBLE PRECISION TWO, FOUR
94 parameter( two = 2.0d0, four = 4.0d0 )
97 CHARACTER TRANA, TRANB
98 INTEGER I, IMA, IMB, IMLDA1, IMLDA2, IMLDB1, IMLOFF,
99 $ INFO, ISGN, ITRANA, ITRANB, J, M, N
100 DOUBLE PRECISION BIGNUM, CNRM, EPS, RES, RES1, RMUL, SCALE,
104 INTEGER IDIM( 8 ), IVAL( 6, 6, 8 )
105 DOUBLE PRECISION A( 6, 6 ), B( 6, 6 ), C( 6, 6 ), CC( 6, 6 ),
106 $ DUM( 1 ), VM1( 3 ), VM2( 3 )
109 DOUBLE PRECISION DLAMCH, DLANGE
110 EXTERNAL dlamch, dlange
116 INTRINSIC abs, dble, max, sin, sqrt
119 DATA idim / 1, 2, 3, 4, 3, 3, 6, 4 /
120 DATA ival / 1, 35*0, 1, 2, 4*0, -2, 0, 28*0, 1, 5*0,
121 $ 5, 1, 2, 3*0, -8, -2, 1, 21*0, 3, 4, 4*0, -5,
122 $ 3, 4*0, 1, 2, 1, 4, 2*0, -3, -9, -1, 1, 14*0,
123 $ 1, 5*0, 2, 3, 4*0, 5, 6, 7, 21*0, 1, 5*0, 1, 3,
124 $ -4, 3*0, 2, 5, 2, 21*0, 1, 2, 4*0, -2, 0, 4*0,
125 $ 5, 6, 3, 4, 2*0, -1, -9, -5, 2, 2*0, 4*8, 5, 6,
126 $ 4*9, -7, 5, 1, 5*0, 1, 5, 2, 3*0, 2, -21, 5,
127 $ 3*0, 1, 2, 3, 4, 14*0 /
134 smlnum = dlamch(
'S' )*four / eps
135 bignum = one / smlnum
139 vm1( 1 ) = sqrt( smlnum )
141 vm1( 3 ) = sqrt( bignum )
143 vm2( 2 ) = one + two*eps
155 DO 130 isgn = -1, 1, 2
175 a( i, j ) = ival( i, j, ima )
176 IF( abs( i-j ).LE.1 )
THEN
177 a( i, j ) = a( i, j )*
179 a( i, j ) = a( i, j )*
182 a( i, j ) = a( i, j )*
191 b( i, j ) = ival( i, j, imb )
192 IF( abs( i-j ).LE.1 )
THEN
193 b( i, j ) = b( i, j )*
196 b( i, j ) = b( i, j )*
206 c( i, j ) = sin( dble( i*j ) )
207 cnrm = max( cnrm, c( i, j ) )
208 cc( i, j ) = c( i, j )
212 CALL dtrsyl( trana, tranb, isgn, m, n,
213 $ a, 6, b, 6, c, 6, scale,
217 xnrm = dlange(
'M', m, n, c, 6, dum )
219 IF( xnrm.GT.one .AND. tnrm.GT.one )
221 IF( xnrm.GT.bignum / tnrm )
THEN
222 rmul = one / max( xnrm, tnrm )
225 CALL dgemm( trana,
'N', m, n, m, rmul,
226 $ a, 6, c, 6, -scale*rmul,
228 CALL dgemm(
'N', tranb, m, n, n,
229 $ dble( isgn )*rmul, c, 6, b,
231 res1 = dlange(
'M', m, n, cc, 6, dum )
232 res = res1 / max( smlnum, smlnum*xnrm,
233 $ ( ( rmul*tnrm )*eps )*xnrm )
234 IF( res.GT.rmax )
THEN
subroutine dget35(rmax, lmax, ninfo, knt)
DGET35
subroutine dgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
DGEMM
subroutine dtrsyl(trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info)
DTRSYL