Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?laref
Applies Householder reflectors to matrices on their rows or columns.
Syntax
call slaref ( type , a , lda , wantz , z , ldz , block , irow1 , icol1 , istart , istop , itmp1 , itmp2 , liloz , lihiz , vecs , v2 , v3 , t1 , t2 , t3 )
call dlaref ( type , a , lda , wantz , z , ldz , block , irow1 , icol1 , istart , istop , itmp1 , itmp2 , liloz , lihiz , vecs , v2 , v3 , t1 , t2 , t3 )
call claref ( type , a , lda , wantz , z , ldz , block , irow1 , icol1 , istart , istop , itmp1 , itmp2 , liloz , lihiz , vecs , v2 , v3 , t1 , t2 , t3 )
call zlaref ( type , a , lda , wantz , z , ldz , block , irow1 , icol1 , istart , istop , itmp1 , itmp2 , liloz , lihiz , vecs , v2 , v3 , t1 , t2 , 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)
CHARACTER*1.
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))
On entry, the matrix to receive the reflections.
- lda
-
(local)
INTEGER.
On entry, the leading dimension of a . Unchanged on exit.
- wantz
-
(local)
LOGICAL.
If .TRUE. , then apply any column reflections to z as well.
If .FALSE. , 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 wantz == .TRUE. 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)
INTEGER.
On entry, the leading dimension of z . Unchanged on exit.
- block
-
(local)
LOGICAL.
If .TRUE. , then apply several reflectors at once and read their data from the vecs array.
If .FALSE. , apply the single reflector given by v2 , v3 , t1 , t2 , and t3 .
- irow1
-
(local)
INTEGER.
On entry, the local row element of a .
- icol1
-
(local)
INTEGER.
On entry, the local column element of a .
- istart
-
(local)
INTEGER.
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 .FALSE. .
- istop
-
(local)
INTEGER.
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 .FALSE. .
- itmp1
-
(local)
INTEGER.
Starting range into a . For rows, this is the local first column. For columns, this is the local first row.
- itmp2
-
(local)
INTEGER.
Ending range into a . For rows, this is the local last column. For columns, this is the local last row.
- liloz , lihiz
-
(local)
INTEGER.
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 .TRUE.
- 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 .FALSE. , and overwritten when block is .TRUE.
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 .TRUE.