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 dger(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
DGER
LOGICAL function lsame(CA, CB)
LSAME
subroutine dcopy(N, DX, INCX, DY, INCY)
DCOPY
subroutine dlatzm(SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK)
DLATZM
subroutine daxpy(N, DA, DX, INCX, DY, INCY)
DAXPY
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV