DLARFT(3)
DLARFT(3) β LAPACK Library Functions Manual π
okay bestie, gather round: this is the LAPACK manual page for DLARFT, and it's lowkey iconic. It forms the triangular factor T of a block reflector, and every tiny constraint is staying right here. No cap. π«Ά
π NAME
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dlarft.f
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine DLARFT (direct, storev, n, k, v, ldv, tau, t, ldt)
DLARFT forms the triangular factor T of a block reflector H = I - vtvH
πΈ Function/Subroutine Documentation πΈ
subroutine DLARFT (character direct, character storev, integer n, integer k,
double precision, dimension( ldv, * ) v, integer ldv, double precision,
dimension( * ) tau, double precision, dimension( ldt, * ) t, integer
ldt)
DLARFT forms the triangular factor T of a block reflector H = I - vtvH.
π― Purpose
Bestie, here's the whole vibe: DLARFT forms the triangular factor T of a real block reflector H of order n, which is defined as a product of k elementary reflectors. β¨
- If
DIRECT = 'F', thenH = H(1) H(2) . . . H(k)andTis upper triangular. - If
DIRECT = 'B', thenH = H(k) . . . H(2) H(1)andTis 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, and:
H = I - V * T * V**T
If STOREV = 'R', the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and:
H = I - V**T * T * V
π§Έ Parameters
DIRECTβDIRECT is CHARACTER*1. Specifies the order in which the elementary reflectors are multiplied to form the block reflector:= 'F':H = H(1) H(2) . . . H(k)(Forward)= 'B':H = H(k) . . . H(2) H(1)(Backward)
STOREVβSTOREV is CHARACTER*1. Specifies how the vectors which define the elementary reflectors are stored (see also Further Details):= 'C': columnwise= 'R': rowwise
NβN is INTEGER. The order of the block reflectorH.N >= 0.KβK is INTEGER. The order of the triangular factorT(= the number of elementary reflectors).K >= 1.VβV is DOUBLE PRECISION array, dimension
(LDV,K) if STOREV = 'C'
(LDV,N) if STOREV = 'R'
The matrix V. See further details.
LDVβLDV is INTEGER. The leading dimension of the arrayV. IfSTOREV = 'C',LDV >= max(1,N); ifSTOREV = 'R',LDV >= K.TAUβTAU is DOUBLE PRECISION array, dimension (K).TAU(i)must contain the scalar factor of the elementary reflectorH(i).TβT is DOUBLE PRECISION array, dimension (LDT,K). Thekbyktriangular factorTof the block reflector. IfDIRECT = 'F',Tis upper triangular; ifDIRECT = 'B',Tis lower triangular. The rest of the array is not used.LDTβLDT is INTEGER. The leading dimension of the arrayT.LDT >= K.
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π§ 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.
DIRECT = 'F' and STOREV = 'C': DIRECT = 'F' and STOREV = 'R':
V = ( 1 ) V = ( 1 v1 v1 v1 v1 )
( v1 1 ) ( 1 v2 v2 v2 )
( v1 v2 1 ) ( 1 v3 v3 )
( v1 v2 v3 )
( v1 v2 v3 )
DIRECT = 'B' and STOREV = 'C': DIRECT = 'B' and STOREV = 'R':
V = ( v1 v2 v3 ) V = ( v1 v1 1 )
( v1 v2 v3 ) ( v2 v2 v2 1 )
( 1 v2 v3 ) ( v3 v3 v3 v3 1 )
( 1 v3 )
( 1 )
Definition at line 162 of file dlarft.f.
π€ Author
Generated automatically by Doxygen for LAPACK from the source code.
Source/version sign-off, bestie: LAPACK Version 3.12.0, from /home/abui...RC/dlarft.f(3). π
β¨
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms