88 SUBROUTINE zlatsy( UPLO, N, X, LDX, ISEED )
100 COMPLEX*16 X( LDX, * )
107 parameter( eye = ( 0.0d0, 1.0d0 ) )
111 DOUBLE PRECISION ALPHA, ALPHA3, BETA
112 COMPLEX*16 A, B, C, R
125 alpha = ( 1.d0+sqrt( 17.d0 ) ) / 8.d0
126 beta = alpha - 1.d0 / 1000.d0
127 alpha3 = alpha*alpha*alpha
131 IF( uplo.EQ.
'U' )
THEN
144 a = alpha3*zlarnd( 5, iseed )
145 b = zlarnd( 5, iseed ) / alpha
152 x( i-1, i-1 ) = zlarnd( 2, iseed )
153 x( i-3, i-3 ) = zlarnd( 2, iseed )
154 x( i-4, i-4 ) = zlarnd( 2, iseed )
155 IF( abs( x( i-3, i-3 ) ).GT.abs( x( i-4, i-4 ) ) )
THEN
156 x( i-4, i-3 ) = 2.0d0*x( i-3, i-3 )
158 x( i-4, i-3 ) = 2.0d0*x( i-4, i-4 )
166 a = alpha3*zlarnd( 5, iseed )
167 b = zlarnd( 5, iseed ) / alpha
174 x( i-1, i-1 ) = zlarnd( 2, iseed )
178 x( i, i ) = zlarnd( 2, iseed )
179 x( i-1, i-1 ) = zlarnd( 2, iseed )
180 IF( abs( x( i, i ) ).GT.abs( x( i-1, i-1 ) ) )
THEN
181 x( i-1, i ) = 2.0d0*x( i, i )
183 x( i-1, i ) = 2.0d0*x( i-1, i-1 )
186 ELSE IF( i.EQ.1 )
THEN
187 x( i, i ) = zlarnd( 2, iseed )
206 a = alpha3*zlarnd( 5, iseed )
207 b = zlarnd( 5, iseed ) / alpha
214 x( i+1, i+1 ) = zlarnd( 2, iseed )
215 x( i+3, i+3 ) = zlarnd( 2, iseed )
216 x( i+4, i+4 ) = zlarnd( 2, iseed )
217 IF( abs( x( i+3, i+3 ) ).GT.abs( x( i+4, i+4 ) ) )
THEN
218 x( i+4, i+3 ) = 2.0d0*x( i+3, i+3 )
220 x( i+4, i+3 ) = 2.0d0*x( i+4, i+4 )
228 a = alpha3*zlarnd( 5, iseed )
229 b = zlarnd( 5, iseed ) / alpha
236 x( i+1, i+1 ) = zlarnd( 2, iseed )
240 x( i, i ) = zlarnd( 2, iseed )
241 x( i+1, i+1 ) = zlarnd( 2, iseed )
242 IF( abs( x( i, i ) ).GT.abs( x( i+1, i+1 ) ) )
THEN
243 x( i+1, i ) = 2.0d0*x( i, i )
245 x( i+1, i ) = 2.0d0*x( i+1, i+1 )
248 ELSE IF( i.EQ.n )
THEN
249 x( i, i ) = zlarnd( 2, iseed )
subroutine zlatsy(uplo, n, x, ldx, iseed)
ZLATSY