ESMF_DLARFG Subroutine

subroutine ESMF_DLARFG(N, ALPHA, X, INCX, TAU)

\brief \b ESMF_DLARFG \htmlonly Download ESMF_DLARFG + dependencies [TGZ] [ZIP] [TXT] \endhtmlonly \par Purpose:

\verbatim

ESMF_DLARFG generates a real elementary reflector H of order n, such that

  H * ( alpha ) = ( beta ),   H**T * H = I.
      (   x   )   (   0  )

where alpha and beta are scalars, and x is an (n-1)-element real vector. H is represented in the form

  H = I - tau * ( 1 ) * ( 1 v**T ) ,
                ( v )

where tau is a real scalar and v is a real (n-1)-element vector.

If the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix.

Otherwise 1 <= tau <= 2. \endverbatim \param[in] N \verbatim N is INTEGER The order of the elementary reflector. \endverbatim

\param[in,out] ALPHA \verbatim ALPHA is DOUBLE PRECISION On entry, the value alpha. On exit, it is overwritten with the value beta. \endverbatim

\param[in,out] X \verbatim X is DOUBLE PRECISION array, dimension (1+(N-2)*abs(INCX)) On entry, the vector x. On exit, it is overwritten with the vector v. \endverbatim

\param[in] INCX \verbatim INCX is INTEGER The increment between elements of X. INCX > 0. \endverbatim

\param[out] TAU \verbatim TAU is DOUBLE PRECISION The value tau. \endverbatim \author Univ. of Tennessee \author Univ. of California Berkeley \author Univ. of Colorado Denver \author NAG Ltd. \date November 2011 \ingroup doubleOTHERauxiliary

Arguments

Type IntentOptional Attributes Name
integer :: N
double precision :: ALPHA
double precision :: X(*)
integer :: INCX
double precision :: TAU

Calls

proc~~esmf_dlarfg~~CallsGraph proc~esmf_dlarfg ESMF_DLARFG esmf_dlamch esmf_dlamch proc~esmf_dlarfg->esmf_dlamch esmf_dlapy2 esmf_dlapy2 proc~esmf_dlarfg->esmf_dlapy2 esmf_dnrm2 esmf_dnrm2 proc~esmf_dlarfg->esmf_dnrm2 esmf_dscal esmf_dscal proc~esmf_dlarfg->esmf_dscal