1ZLARZT(1)                LAPACK routine (version 3.2)                ZLARZT(1)
2
3
4

NAME

6       ZLARZT  -  forms the triangular factor T of a complex block reflector H
7       of order > n, which is defined as a product of k elementary reflectors
8

SYNOPSIS

10       SUBROUTINE ZLARZT( DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT )
11
12           CHARACTER      DIRECT, STOREV
13
14           INTEGER        K, LDT, LDV, N
15
16           COMPLEX*16     T( LDT, * ), TAU( * ), V( LDV, * )
17

PURPOSE

19       ZLARZT forms the triangular factor T of a complex block reflector H  of
20       order  >  n,  which is defined as a product of k elementary reflectors.
21       If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If
22       DIRECT  =  'B', H = H(k) . . . H(2) H(1) and T is lower triangular.  If
23       STOREV = 'C', the vector which defines the elementary reflector H(i) is
24       stored in the i-th column of the array V, and
25          H  =  I - V * T * V'
26       If STOREV = 'R', the vector which defines the elementary reflector H(i)
27       is stored in the i-th row of the array V, and
28          H  =  I - V' * T * V
29       Currently, only STOREV = 'R' and DIRECT = 'B' are supported.
30

ARGUMENTS

32       DIRECT  (input) CHARACTER*1
33               Specifies the order in which the elementary reflectors are mul‐
34               tiplied to form the block reflector:
35               = 'F': H = H(1) H(2) . . . H(k) (Forward, not supported yet)
36               = 'B': H = H(k) . . . H(2) H(1) (Backward)
37
38       STOREV  (input) CHARACTER*1
39               Specifies  how  the vectors which define the elementary reflec‐
40               tors are stored (see also Further Details):
41               = 'R': rowwise
42
43       N       (input) INTEGER
44               The order of the block reflector H. N >= 0.
45
46       K       (input) INTEGER
47               The order of the triangular factor T (= the number  of  elemen‐
48               tary reflectors). K >= 1.
49
50       V       (input/output) COMPLEX*16 array, dimension
51               (LDV,K)  if  STOREV = 'C' (LDV,N) if STOREV = 'R' The matrix V.
52               See further details.
53
54       LDV     (input) INTEGER
55               The leading dimension of the array V.  If STOREV = 'C', LDV  >=
56               max(1,N); if STOREV = 'R', LDV >= K.
57
58       TAU     (input) COMPLEX*16 array, dimension (K)
59               TAU(i) must contain the scalar factor of the elementary reflec‐
60               tor H(i).
61
62       T       (output) COMPLEX*16 array, dimension (LDT,K)
63               The k by k triangular factor T  of  the  block  reflector.   If
64               DIRECT  =  'F',  T  is  upper triangular; if DIRECT = 'B', T is
65               lower triangular. The rest of the array is not used.
66
67       LDT     (input) INTEGER
68               The leading dimension of the array T. LDT >= K.
69

FURTHER DETAILS

71       Based on contributions by
72         A. Petitet, Computer Science Dept., Univ. of  Tenn.,  Knoxville,  USA
73       The  shape  of the matrix V and the storage of the vectors which define
74       the H(i) is best illustrated by the following example with n = 5 and  k
75       =  3.  The  elements equal to 1 are not stored; the corresponding array
76       elements are modified but restored on exit. The rest of  the  array  is
77       not used.
78       DIRECT = 'F' and STOREV = 'C':         DIRECT = 'F' and STOREV = 'R':
79                                                   ______V_____
80              (  v1 v2 v3 )                        /                   ( v1 v2
81       v3 )                      ( v1 v1 v1 v1 v1 . . . . 1 )
82          V = ( v1 v2 v3 )                      ( v2 v2 v2 v2 v2 . . . 1   )
83              ( v1 v2 v3 )                      ( v3 v3 v3 v3 v3 . . 1     )
84              ( v1 v2 v3 )
85                 .  .  .
86                 .  .  .
87                 1  .  .
88                    1  .
89                       1
90       DIRECT = 'B' and STOREV = 'C':         DIRECT = 'B' and STOREV = 'R':
91                                                             ______V_____
92                 1                                                           /
93       .  1                           ( 1 . . . . v1 v1 v1 v1 v1 )
94                 .  .  1                        ( . 1 . . . v2 v2 v2 v2 v2 )
95                 .  .  .                        ( . . 1 . . v3 v3 v3 v3 v3 )
96                 .  .  .
97              ( v1 v2 v3 )
98              ( v1 v2 v3 )
99          V = ( v1 v2 v3 )
100              ( v1 v2 v3 )
101              ( v1 v2 v3 )
102
103
104
105 LAPACK routine (version 3.2)    November 2008                       ZLARZT(1)
Impressum