129 SUBROUTINE zgebak( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV,
138 INTEGER IHI, ILO, INFO, LDV, M, N
141 DOUBLE PRECISION SCALE( * )
142 COMPLEX*16 V( LDV, * )
149 parameter( one = 1.0d+0 )
152 LOGICAL LEFTV, RIGHTV
170 rightv = lsame( side,
'R' )
171 leftv = lsame( side,
'L' )
174 IF( .NOT.lsame( job,
'N' ) .AND. .NOT.lsame( job,
'P' ) .AND.
175 $ .NOT.lsame( job,
'S' ) .AND. .NOT.lsame( job,
'B' ) )
THEN
177 ELSE IF( .NOT.rightv .AND. .NOT.leftv )
THEN
179 ELSE IF( n.LT.0 )
THEN
181 ELSE IF( ilo.LT.1 .OR. ilo.GT.max( 1, n ) )
THEN
183 ELSE IF( ihi.LT.min( ilo, n ) .OR. ihi.GT.n )
THEN
185 ELSE IF( m.LT.0 )
THEN
187 ELSE IF( ldv.LT.max( 1, n ) )
THEN
191 CALL xerbla(
'ZGEBAK', -info )
201 IF( lsame( job,
'N' ) )
209 IF( lsame( job,
'S' ) .OR. lsame( job,
'B' ) )
THEN
214 CALL zdscal( m, s, v( i, 1 ), ldv )
221 CALL zdscal( m, s, v( i, 1 ), ldv )
233 IF( lsame( job,
'P' ) .OR. lsame( job,
'B' ) )
THEN
237 IF( i.GE.ilo .AND. i.LE.ihi )
241 k = int( scale( i ) )
244 CALL zswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )
251 IF( i.GE.ilo .AND. i.LE.ihi )
255 k = int( scale( i ) )
258 CALL zswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )
subroutine xerbla(srname, info)
subroutine zgebak(job, side, n, ilo, ihi, scale, m, v, ldv, info)
ZGEBAK
subroutine zdscal(n, da, zx, incx)
ZDSCAL
subroutine zswap(n, zx, incx, zy, incy)
ZSWAP