146 SUBROUTINE zggbak( JOB, SIDE, N, ILO, IHI, LSCALE, RSCALE, M, V,
155 INTEGER IHI, ILO, INFO, LDV, M, N
158 DOUBLE PRECISION LSCALE( * ), RSCALE( * )
159 COMPLEX*16 V( LDV, * )
165 LOGICAL LEFTV, RIGHTV
182 rightv = lsame( side, 'r
' )
183 LEFTV = LSAME( SIDE, 'l
' )
186.NOT.
IF( LSAME( JOB, 'n.AND..NOT.
' ) LSAME( JOB, 'p.AND.
' )
187.NOT.
$ LSAME( JOB, 's.AND..NOT.
' ) LSAME( JOB, 'b
' ) ) THEN
189.NOT..AND..NOT.
ELSE IF( RIGHTV LEFTV ) THEN
191.LT.
ELSE IF( N0 ) THEN
193.LT.
ELSE IF( ILO1 ) THEN
195.EQ..AND..EQ..AND..NE.
ELSE IF( N0 IHI0 ILO1 ) THEN
197.GT..AND..LT..OR..GT.
ELSE IF( N0 ( IHIILO IHIMAX( 1, N ) ) )
200.EQ..AND..EQ..AND..NE.
ELSE IF( N0 ILO1 IHI0 ) THEN
202.LT.
ELSE IF( M0 ) THEN
204.LT.
ELSE IF( LDVMAX( 1, N ) ) THEN
208 CALL XERBLA( 'zggbak', -INFO )
218 IF( LSAME( JOB, 'n
' ) )
226 IF( LSAME( JOB, 's.OR.
' ) LSAME( JOB, 'b
' ) ) THEN
232 CALL ZDSCAL( M, RSCALE( I ), V( I, 1 ), LDV )
240 CALL ZDSCAL( M, LSCALE( I ), V( I, 1 ), LDV )
248 IF( LSAME( JOB, 'p.OR.
' ) LSAME( JOB, 'b
' ) ) THEN
255 DO 40 I = ILO - 1, 1, -1
259 CALL ZSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
269 CALL ZSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
279 DO 80 I = ILO - 1, 1, -1
283 CALL ZSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
289 DO 100 I = IHI + 1, N
293 CALL ZSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
subroutine xerbla(srname, info)
XERBLA
subroutine zggbak(job, side, n, ilo, ihi, lscale, rscale, m, v, ldv, info)
ZGGBAK
subroutine zdscal(n, da, zx, incx)
ZDSCAL
subroutine zswap(n, zx, incx, zy, incy)
ZSWAP