Visible to Intel only — GUID: GUID-BC9F3571-D003-48A8-A893-1A93BB51A2EE
Visible to Intel only — GUID: GUID-BC9F3571-D003-48A8-A893-1A93BB51A2EE
?larfg
Generates an elementary reflector (Householder matrix).
Syntax
call slarfg( n, alpha, x, incx, tau )
call dlarfg( n, alpha, x, incx, tau )
call clarfg( n, alpha, x, incx, tau )
call zlarfg( n, alpha, x, incx, tau )
Include Files
- mkl.fi
Description
The routine ?larfg generates a real/complex elementary reflector H of order n, such that
for real flavors and
for complex flavors,
where alpha and beta are scalars (with beta real for all flavors), and x is an (n-1)-element real/complex vector. H is represented in the form
for real flavors and
for complex flavors,
where tau is a real/complex scalar and v is a real/complex (n-1)-element vector, respectively. Note that for clarfg/zlarfg, 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
The data types are given for the Fortran interface.
- n
-
INTEGER. The order of the elementary reflector.
- alpha
-
REAL for slarfg
DOUBLE PRECISION for dlarfg
COMPLEX for clarfg
DOUBLE COMPLEX for zlarfg On entry, the value alpha.
- x
-
REAL for slarfg
DOUBLE PRECISION for dlarfg
COMPLEX for clarfg
DOUBLE COMPLEX for zlarfg
Array, size (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 slarfg
DOUBLE PRECISION for dlarfg
COMPLEX for clarfg
DOUBLE COMPLEX for zlarfg The value tau.