larft#
Functions
-
void slarft(const char *direct, const char *storev, const INT n, const INT k, const f32 *restrict V, const INT ldv, const f32 *restrict tau, f32 *restrict T, const INT ldt)#
SLARFT 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”, H = H(1) H(2) … H(k) and T is upper triangular; If DIRECT = “B”, H = H(k) … H(2) H(1) and T is 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
Uses the recursive Elmroth-Gustavson algorithm.
Parameters
indirect‘F’: Forward; ‘B’: Backward.
instorev‘C’: Columnwise; ‘R’: Rowwise.
innThe order of the block reflector H. n >= 0.
inkThe order of T (number of reflectors). k >= 1.
inVThe matrix V containing reflector vectors. Dimension (ldv, k) if storev=’C’, (ldv, n) if storev=’R’.
inldvLeading dimension of V.
intauArray of dimension k. Scalar factors of reflectors.
outTThe k-by-k triangular factor T. Dimension (ldt, k).
inldtLeading dimension of T. ldt >= k.
void slarft(
const char* direct,
const char* storev,
const INT n,
const INT k,
const f32* restrict V,
const INT ldv,
const f32* restrict tau,
f32* restrict T,
const INT ldt
);
Functions
-
void dlarft(const char *direct, const char *storev, const INT n, const INT k, const f64 *restrict V, const INT ldv, const f64 *restrict tau, f64 *restrict T, const INT ldt)#
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”, H = H(1) H(2) … H(k) and T is upper triangular; If DIRECT = “B”, H = H(k) … H(2) H(1) and T is 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
Uses the recursive Elmroth-Gustavson algorithm.
Parameters
indirect‘F’: Forward; ‘B’: Backward.
instorev‘C’: Columnwise; ‘R’: Rowwise.
innThe order of the block reflector H. n >= 0.
inkThe order of T (number of reflectors). k >= 1.
inVThe matrix V containing reflector vectors. Dimension (ldv, k) if storev=’C’, (ldv, n) if storev=’R’.
inldvLeading dimension of V.
intauArray of dimension k. Scalar factors of reflectors.
outTThe k-by-k triangular factor T. Dimension (ldt, k).
inldtLeading dimension of T. ldt >= k.
void dlarft(
const char* direct,
const char* storev,
const INT n,
const INT k,
const f64* restrict V,
const INT ldv,
const f64* restrict tau,
f64* restrict T,
const INT ldt
);
Functions
-
void clarft(const char *direct, const char *storev, const INT n, const INT k, const c64 *restrict V, const INT ldv, const c64 *restrict tau, c64 *restrict T, const INT ldt)#
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) and T is upper triangular; If DIRECT = “B”, H = H(k) … H(2) H(1) and T is 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**H
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**H * T * V
Uses the recursive Elmroth-Gustavson algorithm.
Parameters
indirect‘F’: Forward; ‘B’: Backward.
instorev‘C’: Columnwise; ‘R’: Rowwise.
innThe order of the block reflector H. n >= 0.
inkThe order of T (number of reflectors). k >= 1.
inVThe matrix V containing reflector vectors. Dimension (ldv, k) if storev=’C’, (ldv, n) if storev=’R’.
inldvLeading dimension of V.
intauArray of dimension k. Scalar factors of reflectors.
outTThe k-by-k triangular factor T. Dimension (ldt, k).
inldtLeading dimension of T. ldt >= k.
void clarft(
const char* direct,
const char* storev,
const INT n,
const INT k,
const c64* restrict V,
const INT ldv,
const c64* restrict tau,
c64* restrict T,
const INT ldt
);
Functions
-
void zlarft(const char *direct, const char *storev, const INT n, const INT k, const c128 *restrict V, const INT ldv, const c128 *restrict tau, c128 *restrict T, const INT ldt)#
ZLARFT 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) and T is upper triangular; If DIRECT = “B”, H = H(k) … H(2) H(1) and T is 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**H
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**H * T * V
Uses the recursive Elmroth-Gustavson algorithm.
Parameters
indirect‘F’: Forward; ‘B’: Backward.
instorev‘C’: Columnwise; ‘R’: Rowwise.
innThe order of the block reflector H. n >= 0.
inkThe order of T (number of reflectors). k >= 1.
inVThe matrix V containing reflector vectors. Dimension (ldv, k) if storev=’C’, (ldv, n) if storev=’R’.
inldvLeading dimension of V.
intauArray of dimension k. Scalar factors of reflectors.
outTThe k-by-k triangular factor T. Dimension (ldt, k).
inldtLeading dimension of T. ldt >= k.
void zlarft(
const char* direct,
const char* storev,
const INT n,
const INT k,
const c128* restrict V,
const INT ldv,
const c128* restrict tau,
c128* restrict T,
const INT ldt
);