table of contents
PZLARZT(l) | LAPACK auxiliary routine (version 1.5) | PZLARZT(l) |
NAME¶
PZLARZT - form the triangular factor T of a complex block reflector H of order > n, which is defined as a product of k elementary reflectors as returned by PZTZRZFSYNOPSIS¶
- SUBROUTINE PZLARZT(
- DIRECT, STOREV, N, K, V, IV, JV, DESCV, TAU, T, WORK )
PURPOSE¶
PZLARZT forms the triangular factor T of a complex block reflector H of order > n, which is defined as a product of k elementary reflectors as returned by PZTZRZF. If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. If STOREV = 'C', the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, andH = I - V * T * V'
H = I - V' * T * V
DTYPE_A = 1.
the BLACS process grid A is distribu-
ted over. The context itself is glo-
bal, but the handle (the integer
value) may vary.
array A.
array A.
the rows of the array.
the columns of the array.
row of the array A is distributed. CSRC_A (global) DESCA( CSRC_ ) The process column over which the
first column of the array A is
distributed.
array. LLD_A >= MAX(1,LOCr(M_A)). Let K be the number of rows or columns of a distributed matrix, and assume that its process grid has dimension p x q.
LOCr( M ) = NUMROC( M, MB_A, MYROW, RSRC_A, NPROW ),
LOCc( N ) = NUMROC( N, NB_A, MYCOL, CSRC_A, NPCOL ). An upper bound for these quantities may be computed by:
LOCr( M ) <= ceil( ceil(M/MB_A)/NPROW )*MB_A
LOCc( N ) <= ceil( ceil(N/NB_A)/NPCOL )*NB_A
ARGUMENTS¶
- DIRECT (global input) CHARACTER
- Specifies the order in which the elementary reflectors are multiplied to
form the block reflector:
- STOREV (global input) CHARACTER
- Specifies how the vectors which define the elementary reflectors are
stored (see also Further Details):
- N (global input) INTEGER
- The number of meaningful entries of the block reflector H. N >= 0.
- K (global input) INTEGER
- The order of the triangular factor T (= the number of elementary reflectors). 1 <= K <= MB_V (= NB_V).
- V (input/output) COMPLEX*16 pointer into the local memory
- to an array of local dimension (LOCr(IV+K-1),LOCc(JV+N-1)). The distributed matrix V contains the Householder vectors. See further details.
- IV (global input) INTEGER
- The row index in the global array V indicating the first row of sub( V ).
- JV (global input) INTEGER
- The column index in the global array V indicating the first column of sub( V ).
- DESCV (global and local input) INTEGER array of dimension DLEN_.
- The array descriptor for the distributed matrix V.
- TAU (local input) COMPLEX*16, array, dimension LOCr(IV+K-1)
- if INCV = M_V, and LOCc(JV+K-1) otherwise. This array contains the Householder scalars related to the Householder vectors. TAU is tied to the distributed matrix V.
- T (local output) COMPLEX*16 array, dimension (MB_V,MB_V)
- It contains the k-by-k triangular factor of the block reflector associated with V. T is lower triangular.
- WORK (local workspace) COMPLEX*16 array,
- dimension (K*(K-1)/2)
FURTHER DETAILS¶
The shape of the matrix V and the storage of the vectors which define the H(i) is best illustrated by the following example with n = 5 and k = 3. The elements equal to 1 are not stored; the corresponding array elements are modified but restored on exit. The rest of the array is not used.______V_____
( v1 v2 v3 ) / ( v1 v2 v3 ) ( v1 v1 v1 v1 v1 . . . . 1 )
V = ( v1 v2 v3 ) ( v2 v2 v2 v2 v2 . . . 1 )
( v1 v2 v3 ) ( v3 v3 v3 v3 v3 . . 1 )
( v1 v2 v3 )
. . .
. . .
1 . .
1 .
1
______V_____
1 / . 1 ( 1 . . . . v1 v1 v1 v1 v1 )
. . 1 ( . 1 . . . v2 v2 v2 v2 v2 )
. . . ( . . 1 . . v3 v3 v3 v3 v3 )
. . .
( v1 v2 v3 )
( v1 v2 v3 )
V = ( v1 v2 v3 )
( v1 v2 v3 )
( v1 v2 v3 )
12 May 1997 | LAPACK version 1.5 |