1 SUBROUTINE dgebak( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV,
11 INTEGER IHI, ILO, INFO, LDV, M, N
14 DOUBLE PRECISION SCALE( * ), V( LDV, * )
71 parameter( one = 1.0d+0 )
92 rightv = lsame( side,
'R' )
93 leftv = lsame( side,
'L' )
96 IF( .NOT.lsame( job,
'N' ) .AND. .NOT.lsame( job,
'P' ) .AND.
97 $ .NOT.lsame( job,
'S' ) .AND. .NOT.lsame( job,
'B' ) )
THEN
99 ELSE IF( .NOT.rightv .AND. .NOT.leftv )
THEN
101 ELSE IF( n.LT.0 )
THEN
103 ELSE IF( ilo.LT.1 .OR. ilo.GT.max( 1, n ) )
THEN
105 ELSE IF( ihi.LT.min( ilo, n ) .OR. ihi.GT.n )
THEN
107 ELSE IF( m.LT.0 )
THEN
109 ELSE IF( ldv.LT.max( 1, n ) )
THEN
113 CALL xerbla(
'DGEBAK', -info )
123 IF( lsame( job,
'N' ) )
131 IF( lsame( job,
'S' ) .OR. lsame( job,
'B' ) )
THEN
136 CALL dscal( m, s, v( i, 1 ), ldv )
143 CALL dscal( m, s, v( i, 1 ), ldv )
155 IF( lsame( job,
'P' ) .OR. lsame( job,
'B' ) )
THEN
159 IF( i.GE.ilo .AND. i.LE.ihi )
166 CALL dswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )
173 IF( i.GE.ilo .AND. i.LE.ihi )
180 CALL dswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )
subroutine dgebak(JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV, INFO)
subroutine dscal(n, da, dx, incx)
subroutine dswap(n, dx, incx, dy, incy)
subroutine xerbla(SRNAME, INFO)