130 SUBROUTINE sgebak( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV,
140 INTEGER IHI, ILO, INFO, LDV, M, N
143 REAL V( ldv, * ), SCALE( * )
150 parameter ( one = 1.0e+0 )
153 LOGICAL LEFTV, RIGHTV
171 rightv = lsame( side,
'R' )
172 leftv = lsame( side,
'L' )
175 IF( .NOT.lsame( job,
'N' ) .AND. .NOT.lsame( job,
'P' ) .AND.
176 $ .NOT.lsame( job,
'S' ) .AND. .NOT.lsame( job,
'B' ) )
THEN
178 ELSE IF( .NOT.rightv .AND. .NOT.leftv )
THEN
180 ELSE IF( n.LT.0 )
THEN
182 ELSE IF( ilo.LT.1 .OR. ilo.GT.max( 1, n ) )
THEN
184 ELSE IF( ihi.LT.min( ilo, n ) .OR. ihi.GT.n )
THEN
186 ELSE IF( m.LT.0 )
THEN
188 ELSE IF( ldv.LT.max( 1, n ) )
THEN
192 CALL xerbla(
'SGEBAK', -info )
202 IF( lsame( job,
'N' ) )
210 IF( lsame( job,
'S' ) .OR. lsame( job,
'B' ) )
THEN
215 CALL sscal( m, s, v( i, 1 ), ldv )
222 CALL sscal( m, s, v( i, 1 ), ldv )
234 IF( lsame( job,
'P' ) .OR. lsame( job,
'B' ) )
THEN
238 IF( i.GE.ilo .AND. i.LE.ihi )
245 CALL sswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )
252 IF( i.GE.ilo .AND. i.LE.ihi )
259 CALL sswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )
subroutine sgebak(JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV, INFO)
SGEBAK
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine sscal(N, SA, SX, INCX)
SSCAL
subroutine sswap(N, SX, INCX, SY, INCY)
SSWAP