Visible to Intel only — GUID: GUID-27A2B68E-D3FD-414C-89D6-C016198ED01C
Visible to Intel only — GUID: GUID-27A2B68E-D3FD-414C-89D6-C016198ED01C
?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 wantzwantz≠ 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. |