152 SUBROUTINE dlatzm( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK )
161 INTEGER INCV, LDC, M, N
165 DOUBLE PRECISION C1( ldc, * ), C2( ldc, * ), V( * ), WORK( * )
171 DOUBLE PRECISION ONE, ZERO
172 parameter ( one = 1.0d+0, zero = 0.0d+0 )
186 IF( ( min( m, n ).EQ.0 ) .OR. ( tau.EQ.zero ) )
189 IF( lsame( side,
'L' ) )
THEN
193 CALL dcopy( n, c1, ldc, work, 1 )
194 CALL dgemv(
'Transpose', m-1, n, one, c2, ldc, v, incv, one,
200 CALL daxpy( n, -tau, work, 1, c1, ldc )
201 CALL dger( m-1, n, -tau, v, incv, work, 1, c2, ldc )
203 ELSE IF( lsame( side,
'R' ) )
THEN
207 CALL dcopy( m, c1, 1, work, 1 )
208 CALL dgemv(
'No transpose', m, n-1, one, c2, ldc, v, incv, one,
213 CALL daxpy( m, -tau, work, 1, c1, 1 )
214 CALL dger( m, n-1, -tau, work, 1, v, incv, c2, ldc )
subroutine dcopy(N, DX, INCX, DY, INCY)
DCOPY
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV
subroutine daxpy(N, DA, DX, INCX, DY, INCY)
DAXPY
subroutine dlatzm(SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK)
DLATZM
subroutine dger(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
DGER