Developer Reference for Intel® oneAPI Math Kernel Library for C
p?larfg
Generates an elementary reflector (Householder matrix).
Syntax
voidpslarfg ( MKL_INT*n , float*alpha , MKL_INT*iax , MKL_INT*jax , float*x , MKL_INT*ix , MKL_INT*jx , MKL_INT*descx , MKL_INT*incx , float*tau );
voidpdlarfg ( MKL_INT*n , double*alpha , MKL_INT*iax , MKL_INT*jax , double*x , MKL_INT*ix , MKL_INT*jx , MKL_INT*descx , MKL_INT*incx , double*tau );
voidpclarfg ( MKL_INT*n , MKL_Complex8*alpha , MKL_INT*iax , MKL_INT*jax , MKL_Complex8*x , MKL_INT*ix , MKL_INT*jx , MKL_INT*descx , MKL_INT*incx , MKL_Complex8*tau );
voidpzlarfg ( MKL_INT*n , MKL_Complex16*alpha , MKL_INT*iax , MKL_INT*jax , MKL_Complex16*x , MKL_INT*ix , MKL_INT*jx , MKL_INT*descx , MKL_INT*incx , MKL_Complex16*tau );
Include Files
mkl_scalapack.h
Description
pslarfg pdlarfg pclarfg pzlarfg The p?larfg routine function generates a real/complex elementary reflector H of order n , such that
where alpha is a scalar (a real scalar - for complex flavors), and sub( X ) is an ( n -1)-element real/complex distributed vector X(ix:ix+n-2, jx) if incx = 1 and X(ix, jx:jx+n-2) if incx = m_x . H is represented in the form
where tau is a real/complex scalar and v is a real/complex ( n -1)-element vector. Note that H is not Hermitian.
If the elements of sub( X ) are all zero (and X(iax, jax) is real for complex flavors), then tau = 0 and H is taken to be the unit matrix.
Otherwise 1 ≤ real(tau) ≤ 2 and abs(tau-1) ≤ 1 .
Input Parameters
n
(global)
The global order of the elementary reflector. n ≥ 0 .
iax , jax
(global)
The global row and column indices of X(iax, jax) in the global matrix X .
- x
-
(local). REAL for pslarfg DOUBLE PRECISION for pdlarfg COMPLEX for pclarfg COMPLEX*16 for pzlarfg .
Pointer into the local memory to an array of size lld_x * LOCc ( n_x ) . This array contains the local pieces of the distributed vector sub( X ). Before entry, the incremented array sub( X ) must contain vector x .
ix , jx
(global)
The row and column indices in the global matrix X indicating the first row and the first column of sub( X ), respectively.
descx
(global and local)
Array of size dlen_ . The array descriptor for the distributed matrix X .
incx
(global)
The global increment for the elements of x . Only two values of incx are supported in this version, namely 1 and m_x . incx must not be zero.
Output Parameters
- alpha
-
(local) REAL for pslafg DOUBLE PRECISION for pdlafg COMPLEX for pclafg COMPLEX*16 for pzlafg . On exit, alpha is computed in the process scope having the vector sub( X ).
- x
-
(local). On exit, it is overwritten with the vector v .
- tau
-
(local). REAL for pslarfg DOUBLE PRECISION for pdlarfg COMPLEX for pclarfg COMPLEX*16 for pzlarfg . Array of size LOCc ( jx ) if incx = 1 , and LOCr(ix) otherwise. This array contains the Householder scalars related to the Householder vectors. tau is tied to the distributed matrix X .