SRC/clarft.f(3)
Bestie, welcome to SRC/clarft.f from the Library Functions Manual β this page is all about clarft, and itβs lowkey iconic. π
πΈ NAME πΈ
SRC/clarft.f β thatβs the file, periodt. β¨
β¨ SYNOPSIS β¨
π§ Functions/Subroutines
recursive subroutine clarft (direct, storev, n, k, v, ldv, tau, t, ldt)β CLARFT forms the triangular factor T of a block reflector H = I - vtvH.
CLARFT forms the triangular factor T of a block reflector H = I -
vtvH
π Function/Subroutine Documentation π
π«Ά recursive subroutine clarft
Hereβs the whole signature, bestie β no cap, copied exactly:
recursive subroutine clarft (character direct, character storev, integer n,
integer k, complex, dimension( ldv, * ) v, integer ldv, complex,
dimension( * ) tau, complex, dimension( ldt, * ) t, integer ldt)
And the one-liner vibe is literally:
CLARFT forms the triangular factor T of a block reflector H = I -
vtvH
π― Purpose
Okay so CLARFT forms the triangular factor T of a complex block reflector H of order n, which is defined as a product of k elementary reflectors. π¦
- If
DIRECT = 'F',H = H(1) H(2) . . . H(k)andTis upper triangular; - If
DIRECT = 'B',H = H(k) . . . H(2) H(1)andTis lower triangular. - If
STOREV = 'C', the vector which defines the elementary reflectorH(i)is stored in the i-th column of the arrayV, and
H = I - V * T * V**H
- If
STOREV = 'R', the vector which defines the elementary reflectorH(i)is stored in the i-th row of the arrayV, and
H = I - V**H * 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 COMPLEX array, dimension (LDV,K) if STOREV = 'C'; (LDV,N) if STOREV = 'R'. The matrixV. 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 COMPLEX array, dimension (K).TAU(i)must contain the scalar factor of the elementary reflectorH(i).TβT is COMPLEX array, dimension (LDT,K). The k by k triangular 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
Definition at line 162 of file clarft.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code.
Thatβs the whole page, bestie. Final sign-off vibe: LAPACK Version 3.12.0, page SRC/clarft.f(3) β slay, bye! π
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms