larzb#
Functions
-
void slarzb(const char *side, const char *trans, const char *direct, const char *storev, const INT m, const INT n, const INT k, const INT l, const f32 *restrict V, const INT ldv, const f32 *restrict T, const INT ldt, f32 *restrict C, const INT ldc, f32 *restrict work, const INT ldwork)#
SLARZB applies a real block reflector H or its transpose H**T to a real distributed M-by-N matrix C from either the left or the right.
Currently, only STOREV = ‘R’ and DIRECT = ‘B’ are supported.
Parameters
inside‘L’: apply H or H**T from the Left; ‘R’: apply H or H**T from the Right.
intrans‘N’: apply H (No transpose); ‘C’: apply H**T (Transpose).
indirectIndicates how H is formed from a product of elementary reflectors. ‘F’: H = H(1) H(2) … H(k) (Forward, not supported); ‘B’: H = H(k) … H(2) H(1) (Backward).
instorevIndicates how the vectors which define the elementary reflectors are stored: ‘C’: Columnwise (not supported); ‘R’: Rowwise.
inmNumber of rows of the matrix C. m >= 0.
innNumber of columns of the matrix C. n >= 0.
inkThe order of the matrix T (= the number of elementary reflectors whose product defines the block reflector).
inlThe number of columns of the matrix V containing the meaningful part of the Householder reflectors. If side = “L”, m >= l >= 0; if side = “R”, n >= l >= 0.
inVDouble precision array, dimension (ldv, nv). If storev = “C”, nv = k; if storev = “R”, nv = l.
inldvLeading dimension of V. If storev = “C”, ldv >= l; if storev = “R”, ldv >= k.
inTDouble precision array, dimension (ldt, k). The triangular k-by-k matrix T in the representation of the block reflector.
inldtLeading dimension of T. ldt >= k.
inoutCDouble 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.
inldcLeading dimension of C. ldc >= max(1, m).
outworkDouble precision array, dimension (ldwork, k).
inldworkLeading dimension of work. If side = “L”, ldwork >= max(1, n); if side = “R”, ldwork >= max(1, m).
void slarzb(
const char* side,
const char* trans,
const char* direct,
const char* storev,
const INT m,
const INT n,
const INT k,
const INT l,
const f32* restrict V,
const INT ldv,
const f32* restrict T,
const INT ldt,
f32* restrict C,
const INT ldc,
f32* restrict work,
const INT ldwork
);
Functions
-
void dlarzb(const char *side, const char *trans, const char *direct, const char *storev, const INT m, const INT n, const INT k, const INT l, const f64 *restrict V, const INT ldv, const f64 *restrict T, const INT ldt, f64 *restrict C, const INT ldc, f64 *restrict work, const INT ldwork)#
DLARZB applies a real block reflector H or its transpose H**T to a real distributed M-by-N matrix C from either the left or the right.
Currently, only STOREV = ‘R’ and DIRECT = ‘B’ are supported.
Parameters
inside‘L’: apply H or H**T from the Left; ‘R’: apply H or H**T from the Right.
intrans‘N’: apply H (No transpose); ‘C’: apply H**T (Transpose).
indirectIndicates how H is formed from a product of elementary reflectors. ‘F’: H = H(1) H(2) … H(k) (Forward, not supported); ‘B’: H = H(k) … H(2) H(1) (Backward).
instorevIndicates how the vectors which define the elementary reflectors are stored: ‘C’: Columnwise (not supported); ‘R’: Rowwise.
inmNumber of rows of the matrix C. m >= 0.
innNumber of columns of the matrix C. n >= 0.
inkThe order of the matrix T (= the number of elementary reflectors whose product defines the block reflector).
inlThe number of columns of the matrix V containing the meaningful part of the Householder reflectors. If side = “L”, m >= l >= 0; if side = “R”, n >= l >= 0.
inVDouble precision array, dimension (ldv, nv). If storev = “C”, nv = k; if storev = “R”, nv = l.
inldvLeading dimension of V. If storev = “C”, ldv >= l; if storev = “R”, ldv >= k.
inTDouble precision array, dimension (ldt, k). The triangular k-by-k matrix T in the representation of the block reflector.
inldtLeading dimension of T. ldt >= k.
inoutCDouble 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.
inldcLeading dimension of C. ldc >= max(1, m).
outworkDouble precision array, dimension (ldwork, k).
inldworkLeading dimension of work. If side = “L”, ldwork >= max(1, n); if side = “R”, ldwork >= max(1, m).
void dlarzb(
const char* side,
const char* trans,
const char* direct,
const char* storev,
const INT m,
const INT n,
const INT k,
const INT l,
const f64* restrict V,
const INT ldv,
const f64* restrict T,
const INT ldt,
f64* restrict C,
const INT ldc,
f64* restrict work,
const INT ldwork
);
Functions
-
void clarzb(const char *side, const char *trans, const char *direct, const char *storev, const INT m, const INT n, const INT k, const INT l, c64 *restrict V, const INT ldv, c64 *restrict T, const INT ldt, c64 *restrict C, const INT ldc, c64 *restrict work, const INT ldwork)#
CLARZB applies a complex block reflector H or its transpose H**H to a complex distributed M-by-N C from the left or the right.
Currently, only STOREV = ‘R’ and DIRECT = ‘B’ are supported.
Parameters
inside‘L’: apply H or H**H from the Left; ‘R’: apply H or H**H from the Right.
intrans‘N’: apply H (No transpose); ‘C’: apply H**H (Conjugate transpose).
indirectIndicates how H is formed from a product of elementary reflectors. ‘F’: H = H(1) H(2) … H(k) (Forward, not supported); ‘B’: H = H(k) … H(2) H(1) (Backward).
instorevIndicates how the vectors which define the elementary reflectors are stored: ‘C’: Columnwise (not supported); ‘R’: Rowwise.
inmNumber of rows of the matrix C. m >= 0.
innNumber of columns of the matrix C. n >= 0.
inkThe order of the matrix T (= the number of elementary reflectors whose product defines the block reflector).
inlThe number of columns of the matrix V containing the meaningful part of the Householder reflectors. If side = “L”, m >= l >= 0; if side = “R”, n >= l >= 0.
inVComplex array, dimension (ldv, nv). If storev = “C”, nv = k; if storev = “R”, nv = l.
inldvLeading dimension of V. If storev = “C”, ldv >= l; if storev = “R”, ldv >= k.
inTComplex array, dimension (ldt, k). The triangular k-by-k matrix T in the representation of the block reflector.
inldtLeading dimension of T. ldt >= k.
inoutCComplex 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.
inldcLeading dimension of C. ldc >= max(1, m).
outworkComplex array, dimension (ldwork, k).
inldworkLeading dimension of work. If side = “L”, ldwork >= max(1, n); if side = “R”, ldwork >= max(1, m).
void clarzb(
const char* side,
const char* trans,
const char* direct,
const char* storev,
const INT m,
const INT n,
const INT k,
const INT l,
c64* restrict V,
const INT ldv,
c64* restrict T,
const INT ldt,
c64* restrict C,
const INT ldc,
c64* restrict work,
const INT ldwork
);
Functions
-
void zlarzb(const char *side, const char *trans, const char *direct, const char *storev, const INT m, const INT n, const INT k, const INT l, c128 *restrict V, const INT ldv, c128 *restrict T, const INT ldt, c128 *restrict C, const INT ldc, c128 *restrict work, const INT ldwork)#
ZLARZB applies a complex block reflector H or its transpose H**H to a complex distributed M-by-N C from the left or the right.
Currently, only STOREV = ‘R’ and DIRECT = ‘B’ are supported.
Parameters
inside‘L’: apply H or H**H from the Left; ‘R’: apply H or H**H from the Right.
intrans‘N’: apply H (No transpose); ‘C’: apply H**H (Conjugate transpose).
indirectIndicates how H is formed from a product of elementary reflectors. ‘F’: H = H(1) H(2) … H(k) (Forward, not supported); ‘B’: H = H(k) … H(2) H(1) (Backward).
instorevIndicates how the vectors which define the elementary reflectors are stored: ‘C’: Columnwise (not supported); ‘R’: Rowwise.
inmNumber of rows of the matrix C. m >= 0.
innNumber of columns of the matrix C. n >= 0.
inkThe order of the matrix T (= the number of elementary reflectors whose product defines the block reflector).
inlThe number of columns of the matrix V containing the meaningful part of the Householder reflectors. If side = “L”, m >= l >= 0; if side = “R”, n >= l >= 0.
inVComplex array, dimension (ldv, nv). If storev = “C”, nv = k; if storev = “R”, nv = l.
inldvLeading dimension of V. If storev = “C”, ldv >= l; if storev = “R”, ldv >= k.
inTComplex array, dimension (ldt, k). The triangular k-by-k matrix T in the representation of the block reflector.
inldtLeading dimension of T. ldt >= k.
inoutCComplex 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.
inldcLeading dimension of C. ldc >= max(1, m).
outworkComplex array, dimension (ldwork, k).
inldworkLeading dimension of work. If side = “L”, ldwork >= max(1, n); if side = “R”, ldwork >= max(1, m).
void zlarzb(
const char* side,
const char* trans,
const char* direct,
const char* storev,
const INT m,
const INT n,
const INT k,
const INT l,
c128* restrict V,
const INT ldv,
c128* restrict T,
const INT ldt,
c128* restrict C,
const INT ldc,
c128* restrict work,
const INT ldwork
);