199 SUBROUTINE clasr( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA )
206 CHARACTER DIRECT, PIVOT,
218 parameter( one = 1.0e+0, zero = 0.0e+0 )
240 IF( .NOT.( lsame( side,
'L' ) .OR. lsame( side,
'R' ) ) )
THEN
242 ELSE IF( .NOT.( lsame( pivot,
'V' ) .OR. lsame( pivot,
243 $
'T' ) .OR. lsame( pivot,
'B' ) ) )
THEN
245 ELSE IF( .NOT.( lsame( direct,
'F' ) .OR. lsame( direct,
'B' ) ) )
248 ELSE IF( m.LT.0 )
THEN
250 ELSE IF( n.LT.0 )
THEN
252 ELSE IF( lda.LT.
max( 1, m ) )
THEN
256 CALL xerbla(
'CLASR ', info )
262 IF( ( m.EQ.0 ) .OR. ( n.EQ.0 ) )
264 IF( lsame( side,
'L' ) )
THEN
268 IF( lsame( pivot,
'V' ) )
THEN
269 IF( lsame( direct,
'F' ) )
THEN
273 IF( ( ctemp.NE.one ) .OR. ( stemp.NE.zero ) )
THEN
276 a( j+1, i ) = ctemp*temp - stemp*a( j, i )
277 a( j, i ) = stemp*temp + ctemp*a( j, i )
281 ELSE IF( lsame( direct, 'b
' ) ) THEN
282 DO 40 J = M - 1, 1, -1
285.NE..OR..NE.
IF( ( CTEMPONE ) ( STEMPZERO ) ) THEN
288 A( J+1, I ) = CTEMP*TEMP - STEMP*A( J, I )
289 A( J, I ) = STEMP*TEMP + CTEMP*A( J, I )
294 ELSE IF( LSAME( PIVOT, 't
' ) ) THEN
295 IF( LSAME( DIRECT, 'f
' ) ) THEN
299.NE..OR..NE.
IF( ( CTEMPONE ) ( STEMPZERO ) ) THEN
302 A( J, I ) = CTEMP*TEMP - STEMP*A( 1, I )
303 A( 1, I ) = STEMP*TEMP + CTEMP*A( 1, I )
307 ELSE IF( LSAME( DIRECT, 'b
' ) ) THEN
311.NE..OR..NE.
IF( ( CTEMPONE ) ( STEMPZERO ) ) THEN
314 A( J, I ) = CTEMP*TEMP - STEMP*A( 1, I )
315 A( 1, I ) = STEMP*TEMP + CTEMP*A( 1, I )
320 ELSE IF( LSAME( PIVOT, 'b
' ) ) THEN
321 IF( LSAME( DIRECT, 'f
' ) ) THEN
325.NE..OR..NE.
IF( ( CTEMPONE ) ( STEMPZERO ) ) THEN
328 A( J, I ) = STEMP*A( M, I ) + CTEMP*TEMP
329 A( M, I ) = CTEMP*A( M, I ) - STEMP*TEMP
333 ELSE IF( LSAME( DIRECT, 'b
' ) ) THEN
334 DO 120 J = M - 1, 1, -1
337.NE..OR..NE.
IF( ( CTEMPONE ) ( STEMPZERO ) ) THEN
340 A( J, I ) = STEMP*A( M, I ) + CTEMP*TEMP
341 A( M, I ) = CTEMP*A( M, I ) - STEMP*TEMP
347 ELSE IF( LSAME( SIDE, 'r
' ) ) THEN
351 IF( LSAME( PIVOT, 'v
' ) ) THEN
352 IF( LSAME( DIRECT, 'f
' ) ) THEN
356.NE..OR..NE.
IF( ( CTEMPONE ) ( STEMPZERO ) ) THEN
359 A( I, J+1 ) = CTEMP*TEMP - STEMP*A( I, J )
360 A( I, J ) = STEMP*TEMP + CTEMP*A( I, J )
364 ELSE IF( LSAME( DIRECT, 'b
' ) ) THEN
365 DO 160 J = N - 1, 1, -1
368.NE..OR..NE.
IF( ( CTEMPONE ) ( STEMPZERO ) ) THEN
371 A( I, J+1 ) = CTEMP*TEMP - STEMP*A( I, J )
372 A( I, J ) = STEMP*TEMP + CTEMP*A( I, J )
377 ELSE IF( LSAME( PIVOT, 't
' ) ) THEN
378 IF( LSAME( DIRECT, 'f
' ) ) THEN
382.NE..OR..NE.
IF( ( CTEMPONE ) ( STEMPZERO ) ) THEN
385 A( I, J ) = CTEMP*TEMP - STEMP*A( I, 1 )
386 A( I, 1 ) = STEMP*TEMP + CTEMP*A( I, 1 )
390 ELSE IF( LSAME( DIRECT, 'b
' ) ) THEN
394.NE..OR..NE.
IF( ( CTEMPONE ) ( STEMPZERO ) ) THEN
397 A( I, J ) = CTEMP*TEMP - STEMP*A( I, 1 )
398 A( I, 1 ) = STEMP*TEMP + CTEMP*A( I, 1 )
403 ELSE IF( LSAME( PIVOT, 'b
' ) ) THEN
404 IF( LSAME( DIRECT, 'f
' ) ) THEN
408.NE..OR..NE.
IF( ( CTEMPONE ) ( STEMPZERO ) ) THEN
411 A( I, J ) = STEMP*A( I, N ) + CTEMP*TEMP
412 A( I, N ) = CTEMP*A( I, N ) - STEMP*TEMP
416 ELSE IF( LSAME( DIRECT, 'b
' ) ) THEN
417 DO 240 J = N - 1, 1, -1
420.NE..OR..NE.
IF( ( CTEMPONE ) ( STEMPZERO ) ) THEN
423 A( I, J ) = STEMP*A( I, N ) + CTEMP*TEMP
424 A( I, N ) = CTEMP*A( I, N ) - STEMP*TEMP
subroutine clasr(side, pivot, direct, m, n, c, s, a, lda)
CLASR applies a sequence of plane rotations to a general rectangular matrix.