?larfgp

Generates an elementary reflector (Householder matrix) with non-negative beta .

Syntax

call slarfgp( n, alpha, x, incx, tau )

call dlarfgp( n, alpha, x, incx, tau )

call clarfgp( n, alpha, x, incx, tau )

call zlarfgp( n, alpha, x, incx, tau )

Include Files

  • Fortran: mkl.fi
  • C: mkl.h

Description

The routine ?larfgp generates a real/complex elementary reflector H of order n, such that

Equation for real flavors and

Equation for complex flavors,

where alpha and beta are scalars (with beta real and non-negative for all flavors), and x is an (n-1)-element real/complex vector. H is represented in the form

Equation for real flavors and

Equation for complex flavors,

where tau is a real/complex scalar and v is a real/complex (n-1)-element vector. Note that for c/zlarfgp, H is not Hermitian.

If the elements of x are all zero (and, for complex flavors, alpha is real), then tau = 0 and H is taken to be the unit matrix.

Otherwise, 1 ≤ tau ≤ 2 (for real flavors), or

1 ≤ Re(tau) ≤ 2 and abs(tau-1) ≤ 1 (for complex flavors).

Input Parameters

n

INTEGER. The order of the elementary reflector.

alpha

REAL for slarfgp

DOUBLE PRECISION for dlarfgp

COMPLEX for clarfgp

DOUBLE COMPLEX for zlarfgp

On entry, the value alpha.

x

REAL for s

DOUBLE PRECISION for dlarfgp

COMPLEX for clarfgp

DOUBLE COMPLEX for zlarfgp

Array, DIMENSION (1+(n-2)*abs(incx)).

On entry, the vector x.

incx

INTEGER.

The increment between elements of x. incx > 0.

Output Parameters

alpha

On exit, it is overwritten with the value beta.

x

On exit, it is overwritten with the vector v.

tau

REAL for slarfgp

DOUBLE PRECISION for dlarfgp

COMPLEX for clarfgp

DOUBLE COMPLEX for zlarfgp

The value tau.

如需更全面地了解编译器优化,请参阅优化注意事项