Developer Reference

Contents

p?larfg

Generates an elementary reflector (Householder matrix).

Syntax

void
pslarfg
(
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
);
void
pdlarfg
(
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
);
void
pclarfg
(
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
);
void
pzlarfg
(
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
The
p?larfg
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 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).
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)
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).
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
.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.