Developer Reference

  • 2021.1
  • 12/04/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

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