Developer Reference

  • 0.10
  • 10/21/2020
  • Public Content
Contents

?laref

Applies Householder reflectors to matrices on their rows or columns.

Syntax

void slaref
(
const
char*
type
,
float*
a
,
const
MKL_INT*
lda
,
const
MKL_INT*
wantz
,
float*
z
,
const
MKL_INT*
ldz
,
const
MKL_INT*
block
,
MKL_INT*
irow1
,
MKL_INT*
icol1
,
const
MKL_INT*
istart
,
const
MKL_INT*
istop
,
const
MKL_INT*
itmp1
,
const
MKL_INT*
itmp2
,
const
MKL_INT*
liloz
,
const
MKL_INT*
lihiz
,
const
float*
vecs
,
float*
v2
,
float*
v3
,
float*
t1
,
float*
t2
,
float*
t3
);
void dlaref
(
const
char*
type
,
double*
a
,
const
MKL_INT*
lda
,
const
MKL_INT*
wantz
,
double*
z
,
const
MKL_INT*
ldz
,
const
MKL_INT*
block
,
MKL_INT*
irow1
,
MKL_INT*
icol1
,
const
MKL_INT*
istart
,
const
MKL_INT*
istop
,
const
MKL_INT*
itmp1
,
const
MKL_INT*
itmp2
,
const
MKL_INT*
liloz
,
const
MKL_INT*
lihiz
,
const
double*
vecs
,
double*
v2
,
double*
v3
,
double*
t1
,
double*
t2
,
double*
t3
);
void claref
(
const
char*
type
,
MKL_Complex8*
a
,
const
MKL_INT*
lda
,
const
MKL_INT*
wantz
,
MKL_Complex8*
z
,
const
MKL_INT*
ldz
,
const
MKL_INT*
block
,
MKL_INT*
irow1
,
MKL_INT*
icol1
,
const
MKL_INT*
istart
,
const
MKL_INT*
istop
,
const
MKL_INT*
itmp1
,
const
MKL_INT*
itmp2
,
const
MKL_INT*
liloz
,
const
MKL_INT*
lihiz
,
const
MKL_Complex8*
vecs
,
MKL_Complex8*
v2
,
MKL_Complex8*
v3
,
MKL_Complex8*
t1
,
MKL_Complex8*
t2
,
MKL_Complex8*
t3
);
void zlaref
(
const
char*
type
,
MKL_Complex16*
a
,
const
MKL_INT*
lda
,
const
MKL_INT*
wantz
,
MKL_Complex16*
z
,
const
MKL_INT*
ldz
,
const
MKL_INT*
block
,
MKL_INT*
irow1
,
MKL_INT*
icol1
,
const
MKL_INT*
istart
,
const
MKL_INT*
istop
,
const
MKL_INT*
itmp1
,
const
MKL_INT*
itmp2
,
const
MKL_INT*
liloz
,
const
MKL_INT*
lihiz
,
const
MKL_Complex16*
vecs
,
MKL_Complex16*
v2
,
MKL_Complex16*
v3
,
MKL_Complex16*
t1
,
MKL_Complex16*
t2
,
MKL_Complex16*
t3
);
Include Files
  • mkl_scalapack.h
Description
?laref
applies one or several Householder reflectors of size 3 to one or two matrices (if column is specified) on either their rows or columns.
Input Parameters
type
(local)
If 'R': Apply reflectors to the rows of the matrix (apply from left)
Otherwise: Apply reflectors to the columns of the matrix
Unchanged on exit.
a
(local)
Array,
lld_a
*
LOCc
(
ja
+
n
-1)
On entry, the matrix to receive the reflections.
lda
(local)
On entry, the leading dimension of
a
.
Unchanged on exit.
wantz
(local)
If
wantz
0
, then apply any column reflections to
z
as well.
If
wantz
= 0
, then do no additional work on
z
.
z
(local)
Array,
ldz
*
ncols
, where the value
ncols
depends on other arguments. If
wantz
wantz
0
and
type
'R' then
ncols
=
icol1
+ 3*(
lihiz
-
liloz
+ 1). Otherwise,
ncols
is unused.
On entry, the second matrix to receive column reflections.
This is changed only if
wantz
is set.
ldz
(local)
On entry, the leading dimension of
z
.
Unchanged on exit.
block
(local)
If
nonzero
, then apply several reflectors at once and read their data from the
vecs
array.
If
zero
, apply the single reflector given by
v2
,
v3
,
t1
,
t2
, and
t3
.
irow1
(local)
On entry, the local row element of
a
.
icol1
(local)
On entry, the local column element of
a
.
istart
(local)
Specifies the "number" of the first reflector. This is used as an index into
vecs
if
block
is set.
istart
is ignored if
block
is
zero
.
istop
(local)
Specifies the "number" of the last reflector. This is used as an index into
vecs
if
block
is set.
istop
is ignored if
block
is
zero
.
itmp1
(local)
Starting range into
a
. For rows, this is the local first column. For columns, this is the local first row.
itmp2
(local)
Ending range into
a
. For rows, this is the local last column. For columns, this is the local last row.
liloz
,
lihiz
(local)
These serve the same purpose as
itmp1
,
itmp2
but for
z
when
wantz
is set.
vecs
(local)
Array of size 3*N (matrix size)
This holds the size 3 reflectors one after another and this is only accessed when
block
is
nonzero
v2
,
v3
,
t1
,
t2
,
t3
(local)
This holds information on a single size 3 Householder reflector and is read when
block
is
zero
, and overwritten when
block
is
nonzero
Output Parameters
a
The updated matrix on exit.
z
This is changed only if
wantz
is set.
irow1
Undefined on output.
icol1
Undefined on output.
v2
,
v3
,
t1
,
t2
,
t3
Overwritten when
block
is
nonzero.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804