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
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 )
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)
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. |