138 SUBROUTINE zlatm1( MODE, COND, IRSIGN, IDIST, ISEED, D, N, INFO )
146 INTEGER IDIST, INFO, IRSIGN, MODE, N
147 DOUBLE PRECISION COND
158 parameter ( one = 1.0d0 )
162 DOUBLE PRECISION ALPHA, TEMP
166 DOUBLE PRECISION DLARAN
168 EXTERNAL dlaran, zlarnd
174 INTRINSIC abs, dble, exp, log
189 IF( mode.LT.-6 .OR. mode.GT.6 )
THEN
191 ELSE IF( ( mode.NE.-6 .AND. mode.NE.0 .AND. mode.NE.6 ) .AND.
192 $ ( irsign.NE.0 .AND. irsign.NE.1 ) )
THEN
194 ELSE IF( ( mode.NE.-6 .AND. mode.NE.0 .AND. mode.NE.6 ) .AND.
197 ELSE IF( ( mode.EQ.6 .OR. mode.EQ.-6 ) .AND.
198 $ ( idist.LT.1 .OR. idist.GT.4 ) )
THEN
200 ELSE IF( n.LT.0 )
THEN
205 CALL xerbla(
'ZLATM1', -info )
212 GO TO ( 10, 30, 50, 70, 90, 110 )abs( mode )
237 alpha = cond**( -one / dble( n-1 ) )
239 d( i ) = alpha**( i-1 )
250 alpha = ( one-temp ) / dble( n-1 )
252 d( i ) = dble( n-i )*alpha + temp
260 alpha = log( one / cond )
262 d( i ) = exp( alpha*dlaran( iseed ) )
269 CALL zlarnv( idist, iseed, n, d )
276 IF( ( mode.NE.-6 .AND. mode.NE.0 .AND. mode.NE.6 ) .AND.
279 ctemp = zlarnd( 3, iseed )
280 d( i ) = d( i )*( ctemp / abs( ctemp ) )
subroutine zlarnv(IDIST, ISEED, N, X)
ZLARNV returns a vector of random numbers from a uniform or normal distribution.
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zlatm1(MODE, COND, IRSIGN, IDIST, ISEED, D, N, INFO)
ZLATM1