Developer Reference for Intel® oneAPI Math Kernel Library for C
?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.  |