SRC/clarfb.f(3)
SRC/clarfb.f(3) π¦
okay bestie, this page lives in the Library Functions Manual and itβs giving βLAPACK subroutine that makes block reflectors move.β π Weβre talking about clarfb, and yes, every parameter gets its moment.
πΈ NAME
SRC/clarfb.f
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine clarfb (side, trans, direct, storev, m, n, k, v, ldv, t, ldt,
c, ldc, work, ldwork)
clarfb β CLARFB applies a block reflector or its conjugate-transpose to a general rectangular matrix. π«Ά
π§ Function/Subroutine Documentation
subroutine clarfb (character side, character trans, character direct,
character storev, integer m, integer n, integer k, complex, dimension(
ldv, * ) v, integer ldv, complex, dimension( ldt, * ) t, integer ldt,
complex, dimension( ldc, * ) c, integer ldc, complex, dimension( ldwork,
* ) work, integer ldwork)
CLARFB applies a block reflector or its conjugate-transpose to a general rectangular matrix. No cap, thatβs the whole mood. π
π― Purpose
okay so the actual assignment: CLARFB applies a complex block reflector H or its transpose H**H to a complex M-by-N matrix C, from either the left or the right. Thatβs the tea. πβ¨
π§ Parameters
SIDEβSIDE is CHARACTER*1π= 'L': apply H or H**H from the Left= 'R': apply H or H**H from the Right
TRANSβTRANS is CHARACTER*1= 'N': apply H (No transpose)= 'C': apply H**H (Conjugate transpose)
DIRECTβDIRECT is CHARACTER*1; indicates how H is formed from a product of elementary reflectors π= 'F':H = H(1) H(2) . . . H(k)(Forward)= 'B':H = H(k) . . . H(2) H(1)(Backward)
STOREVβSTOREV is CHARACTER*1; indicates how the vectors which define the elementary reflectors are stored:= 'C': Columnwise= 'R': Rowwise
MβM is INTEGER; the number of rows of the matrix C.NβN is INTEGER; the number of columns of the matrix C.KβK is INTEGER; the order of the matrix T (= the number of elementary reflectors whose product defines the block reflector). IfSIDE = 'L',M >= K >= 0; ifSIDE = 'R',N >= K >= 0. πVβV is COMPLEX array, dimension:(LDV,K)ifSTOREV = 'C'(LDV,M)ifSTOREV = 'R'andSIDE = 'L'(LDV,N)ifSTOREV = 'R'andSIDE = 'R'
The matrix V. See Further Details. π¦
LDVβLDV is INTEGER; the leading dimension of the array V. IfSTOREV = 'C'andSIDE = 'L',LDV >= max(1,M); ifSTOREV = 'C'andSIDE = 'R',LDV >= max(1,N); ifSTOREV = 'R',LDV >= K.TβT is COMPLEX array, dimension (LDT,K); the triangular K-by-K matrix T in the representation of the block reflector.LDTβLDT is INTEGER; the leading dimension of the array T.LDT >= K.CβC is COMPLEX array, dimension (LDC,N). On entry, the M-by-N matrix C. On exit, C is overwritten byH*CorH**H*CorC*HorC*H**H. πLDCβLDC is INTEGER; the leading dimension of the array C.LDC >= max(1,M).WORKβWORK is COMPLEX array, dimension (LDWORK,K).LDWORKβLDWORK is INTEGER; the leading dimension of the array WORK. IfSIDE = 'L',LDWORK >= max(1,N); ifSIDE = 'R',LDWORK >= max(1,M). π
π 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 triangular part of V (including its diagonal) is not referenced. iykyk β¨
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 194 of file clarfb.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code.
and thatβs the whole page, bestie! footer vibes: LAPACK Version 3.12.0, source page SRC/clarfb.f(3) β mwah πβ¨
π¦ 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