Developer Reference for Intel® oneAPI Math Kernel Library for C
?laref
Applies Householder reflectors to matrices on their rows or columns.
Syntax
void slaref ( constchar*type , float*a , constMKL_INT*lda , constMKL_INT*wantz , float*z , constMKL_INT*ldz , constMKL_INT*block , MKL_INT*irow1 , MKL_INT*icol1 , constMKL_INT*istart , constMKL_INT*istop , constMKL_INT*itmp1 , constMKL_INT*itmp2 , constMKL_INT*liloz , constMKL_INT*lihiz , constfloat*vecs , float*v2 , float*v3 , float*t1 , float*t2 , float*t3 );
void dlaref ( constchar*type , double*a , constMKL_INT*lda , constMKL_INT*wantz , double*z , constMKL_INT*ldz , constMKL_INT*block , MKL_INT*irow1 , MKL_INT*icol1 , constMKL_INT*istart , constMKL_INT*istop , constMKL_INT*itmp1 , constMKL_INT*itmp2 , constMKL_INT*liloz , constMKL_INT*lihiz , constdouble*vecs , double*v2 , double*v3 , double*t1 , double*t2 , double*t3 );
void claref ( constchar*type , MKL_Complex8*a , constMKL_INT*lda , constMKL_INT*wantz , MKL_Complex8*z , constMKL_INT*ldz , constMKL_INT*block , MKL_INT*irow1 , MKL_INT*icol1 , constMKL_INT*istart , constMKL_INT*istop , constMKL_INT*itmp1 , constMKL_INT*itmp2 , constMKL_INT*liloz , constMKL_INT*lihiz , constMKL_Complex8*vecs , MKL_Complex8*v2 , MKL_Complex8*v3 , MKL_Complex8*t1 , MKL_Complex8*t2 , MKL_Complex8*t3 );
void zlaref ( constchar*type , MKL_Complex16*a , constMKL_INT*lda , constMKL_INT*wantz , MKL_Complex16*z , constMKL_INT*ldz , constMKL_INT*block , MKL_INT*irow1 , MKL_INT*icol1 , constMKL_INT*istart , constMKL_INT*istop , constMKL_INT*itmp1 , constMKL_INT*itmp2 , constMKL_INT*liloz , constMKL_INT*lihiz , constMKL_Complex16*vecs , MKL_Complex16*v2 , MKL_Complex16*v3 , MKL_Complex16*t1 , MKL_Complex16*t2 , MKL_Complex16*t3 );
Include Files
mkl_scalapack.h
Description
slaref dlaref ?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) REAL for slaref DOUBLE PRECISION for dlaref COMPLEX for claref DOUBLE COMPLEX for zlaref
Array, (lld_a,LOCc(ja+n-1))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) REAL for slaref DOUBLE PRECISION for dlaref COMPLEX for claref DOUBLE COMPLEX for zlaref
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) REAL for slaref DOUBLE PRECISION for dlaref COMPLEX for claref DOUBLE COMPLEX for zlaref 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) REAL for slaref DOUBLE PRECISION for dlaref COMPLEX for claref DOUBLE COMPLEX for zlaref
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.