table of contents
larfb(3) | Library Functions Manual | larfb(3) |
NAME¶
larfb - larfb: apply block Householder reflector
SYNOPSIS¶
Functions¶
subroutine CLARFB (side, trans, direct, storev, m, n, k, v,
ldv, t, ldt, c, ldc, work, ldwork)
CLARFB applies a block reflector or its conjugate-transpose to a
general rectangular matrix. subroutine DLARFB (side, trans, direct,
storev, m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)
DLARFB applies a block reflector or its transpose to a general
rectangular matrix. subroutine SLARFB (side, trans, direct, storev,
m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)
SLARFB applies a block reflector or its transpose to a general
rectangular matrix. subroutine ZLARFB (side, trans, direct, storev,
m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)
ZLARFB applies a block reflector or its conjugate-transpose to a
general rectangular matrix.
Detailed Description¶
Function 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.
Purpose:
!> !> 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. !>
Parameters
!> 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). !> If SIDE = 'L', M >= K >= 0; !> if SIDE = 'R', N >= K >= 0. !>
V
!> V is COMPLEX array, dimension !> (LDV,K) if STOREV = 'C' !> (LDV,M) if STOREV = 'R' and SIDE = 'L' !> (LDV,N) if STOREV = 'R' and SIDE = 'R' !> The matrix V. See Further Details. !>
LDV
!> LDV is INTEGER !> The leading dimension of the array V. !> If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M); !> if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N); !> if STOREV = '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 by H*C or H**H*C or C*H or C*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. !> If SIDE = 'L', LDWORK >= max(1,N); !> if SIDE = 'R', LDWORK >= max(1,M). !>
Author
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; the corresponding !> array elements are modified but restored on exit. The rest of the !> array is not used. !> !> 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 195 of file clarfb.f.
subroutine DLARFB (character side, character trans, character direct, character storev, integer m, integer n, integer k, double precision, dimension( ldv, * ) v, integer ldv, double precision, dimension( ldt, * ) t, integer ldt, double precision, dimension( ldc, * ) c, integer ldc, double precision, dimension( ldwork, * ) work, integer ldwork)¶
DLARFB applies a block reflector or its transpose to a general rectangular matrix.
Purpose:
!> !> DLARFB applies a real block reflector H or its transpose H**T to a !> real m by n matrix C, from either the left or the right. !>
Parameters
!> SIDE is CHARACTER*1 !> = 'L': apply H or H**T from the Left !> = 'R': apply H or H**T from the Right !>
TRANS
!> TRANS is CHARACTER*1 !> = 'N': apply H (No transpose) !> = 'T': apply H**T (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). !> If SIDE = 'L', M >= K >= 0; !> if SIDE = 'R', N >= K >= 0. !>
V
!> V is DOUBLE PRECISION array, dimension !> (LDV,K) if STOREV = 'C' !> (LDV,M) if STOREV = 'R' and SIDE = 'L' !> (LDV,N) if STOREV = 'R' and SIDE = 'R' !> The matrix V. See Further Details. !>
LDV
!> LDV is INTEGER !> The leading dimension of the array V. !> If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M); !> if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N); !> if STOREV = 'R', LDV >= K. !>
T
!> T is DOUBLE PRECISION 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 DOUBLE PRECISION array, dimension (LDC,N) !> On entry, the m by n matrix C. !> On exit, C is overwritten by H*C or H**T*C or C*H or C*H**T. !>
LDC
!> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,M). !>
WORK
!> WORK is DOUBLE PRECISION array, dimension (LDWORK,K) !>
LDWORK
!> LDWORK is INTEGER !> The leading dimension of the array WORK. !> If SIDE = 'L', LDWORK >= max(1,N); !> if SIDE = 'R', LDWORK >= max(1,M). !>
Author
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; the corresponding !> array elements are modified but restored on exit. The rest of the !> array is not used. !> !> 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 195 of file dlarfb.f.
subroutine SLARFB (character side, character trans, character direct, character storev, integer m, integer n, integer k, real, dimension( ldv, * ) v, integer ldv, real, dimension( ldt, * ) t, integer ldt, real, dimension( ldc, * ) c, integer ldc, real, dimension( ldwork, * ) work, integer ldwork)¶
SLARFB applies a block reflector or its transpose to a general rectangular matrix.
Purpose:
!> !> SLARFB applies a real block reflector H or its transpose H**T to a !> real m by n matrix C, from either the left or the right. !>
Parameters
!> SIDE is CHARACTER*1 !> = 'L': apply H or H**T from the Left !> = 'R': apply H or H**T from the Right !>
TRANS
!> TRANS is CHARACTER*1 !> = 'N': apply H (No transpose) !> = 'T': apply H**T (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). !> If SIDE = 'L', M >= K >= 0; !> if SIDE = 'R', N >= K >= 0. !>
V
!> V is REAL array, dimension !> (LDV,K) if STOREV = 'C' !> (LDV,M) if STOREV = 'R' and SIDE = 'L' !> (LDV,N) if STOREV = 'R' and SIDE = 'R' !> The matrix V. See Further Details. !>
LDV
!> LDV is INTEGER !> The leading dimension of the array V. !> If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M); !> if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N); !> if STOREV = 'R', LDV >= K. !>
T
!> T is REAL 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 REAL array, dimension (LDC,N) !> On entry, the m by n matrix C. !> On exit, C is overwritten by H*C or H**T*C or C*H or C*H**T. !>
LDC
!> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,M). !>
WORK
!> WORK is REAL array, dimension (LDWORK,K) !>
LDWORK
!> LDWORK is INTEGER !> The leading dimension of the array WORK. !> If SIDE = 'L', LDWORK >= max(1,N); !> if SIDE = 'R', LDWORK >= max(1,M). !>
Author
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; the corresponding !> array elements are modified but restored on exit. The rest of the !> array is not used. !> !> 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 195 of file slarfb.f.
subroutine ZLARFB (character side, character trans, character direct, character storev, integer m, integer n, integer k, complex*16, dimension( ldv, * ) v, integer ldv, complex*16, dimension( ldt, * ) t, integer ldt, complex*16, dimension( ldc, * ) c, integer ldc, complex*16, dimension( ldwork, * ) work, integer ldwork)¶
ZLARFB applies a block reflector or its conjugate-transpose to a general rectangular matrix.
Purpose:
!> !> ZLARFB 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. !>
Parameters
!> 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). !> If SIDE = 'L', M >= K >= 0; !> if SIDE = 'R', N >= K >= 0. !>
V
!> V is COMPLEX*16 array, dimension !> (LDV,K) if STOREV = 'C' !> (LDV,M) if STOREV = 'R' and SIDE = 'L' !> (LDV,N) if STOREV = 'R' and SIDE = 'R' !> See Further Details. !>
LDV
!> LDV is INTEGER !> The leading dimension of the array V. !> If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M); !> if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N); !> if STOREV = 'R', LDV >= K. !>
T
!> T is COMPLEX*16 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*16 array, dimension (LDC,N) !> On entry, the M-by-N matrix C. !> On exit, C is overwritten by H*C or H**H*C or C*H or C*H**H. !>
LDC
!> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,M). !>
WORK
!> WORK is COMPLEX*16 array, dimension (LDWORK,K) !>
LDWORK
!> LDWORK is INTEGER !> The leading dimension of the array WORK. !> If SIDE = 'L', LDWORK >= max(1,N); !> if SIDE = 'R', LDWORK >= max(1,M). !>
Author
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; the corresponding !> array elements are modified but restored on exit. The rest of the !> array is not used. !> !> 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 195 of file zlarfb.f.
Author¶
Generated automatically by Doxygen for LAPACK from the source code.
Version 3.12.0 | LAPACK |