136 SUBROUTINE slatm1( MODE, COND, IRSIGN, IDIST, ISEED, D, N, INFO )
144 INTEGER idist, info, irsign, mode, n
156 parameter( one = 1.0e0 )
158 parameter( half = 0.5e0 )
172 INTRINSIC abs, exp, log, real
187 IF( mode.LT.-6 .OR. mode.GT.6 )
THEN
189 ELSE IF( ( mode.NE.-6 .AND. mode.NE.0 .AND. mode.NE.6 ) .AND.
190 $ ( irsign.NE.0 .AND. irsign.NE.1 ) )
THEN
192 ELSE IF( ( mode.NE.-6 .AND. mode.NE.0 .AND. mode.NE.6 ) .AND.
195 ELSE IF( ( mode.EQ.6 .OR. mode.EQ.-6 ) .AND.
196 $ ( idist.LT.1 .OR. idist.GT.3 ) )
THEN
198 ELSE IF( n.LT.0 )
THEN
203 CALL
xerbla(
'SLATM1', -info )
210 go to( 10, 30, 50, 70, 90, 110 )abs( mode )
235 alpha = cond**( -one /
REAL( N-1 ) )
237 d( i ) = alpha**( i-1 )
248 alpha = ( one-temp ) /
REAL( n-1 )
250 d( i ) =
REAL( n-i )*alpha + temp
258 alpha = log( one / cond )
260 d( i ) = exp( alpha*
slaran( iseed ) )
267 CALL
slarnv( idist, iseed, n, d )
274 IF( ( mode.NE.-6 .AND. mode.NE.0 .AND. mode.NE.6 ) .AND.