DLARF(3)                   MathKeisan LAPACK routine                  DLARF(3)



NAME
       DLARF  -  a real elementary reflector H to a real m by n matrix C, from
       either the left or the right

SYNOPSIS
       SUBROUTINE DLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )

           CHARACTER     SIDE

           INTEGER       INCV, LDC, M, N

           DOUBLE        PRECISION TAU

           DOUBLE        PRECISION C( LDC, * ), V( * ), WORK( * )

PURPOSE
       DLARF applies a real elementary reflector H to a real m by n matrix  C,
       from either the left or the right. H is represented in the form

             H = I - tau * v * v'

       where tau is a real scalar and v is a real vector.

       If tau = 0, then H is taken to be the unit matrix.


ARGUMENTS
       SIDE    (input) CHARACTER*1
               = 'L': form  H * C
               = 'R': form  C * H

       M       (input) INTEGER
               The number of rows of the matrix C.

       N       (input) INTEGER
               The number of columns of the matrix C.

       V       (input) DOUBLE PRECISION array, dimension
               (1 + (M-1)*abs(INCV)) if SIDE = 'L' or (1 + (N-1)*abs(INCV)) if
               SIDE = 'R' The vector v in the representation of H.  V  is  not
               used if TAU = 0.

       INCV    (input) INTEGER
               The increment between elements of v. INCV <> 0.

       TAU     (input) DOUBLE PRECISION
               The value tau in the representation of H.

       C       (input/output) DOUBLE PRECISION array, dimension (LDC,N)
               On  entry,  the  m by n matrix C.  On exit, C is overwritten by
               the matrix H * C if SIDE = 'L', or C * H if SIDE = 'R'.

       LDC     (input) INTEGER
               The leading dimension of the array C. LDC >= max(1,M).

       WORK    (workspace) DOUBLE PRECISION array, dimension
               (N) if SIDE = 'L' or (M) if SIDE = 'R'



 LAPACK auxiliary routine (versionNo3v.e1m)ber 2006                        DLARF(3)