larzt#
Functions
-
void slarzt(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)#
SLARZT 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
Currently, only STOREV = ‘R’ and DIRECT = ‘B’ are supported.
Parameters
indirectSpecifies the order in which the elementary reflectors are multiplied to form the block reflector: = ‘F’: H = H(1) H(2) … H(k) (Forward, not supported yet) = ‘B’: H = H(k) … H(2) H(1) (Backward)
instorevSpecifies how the vectors which define the elementary reflectors are stored: = ‘C’: columnwise (not supported yet) = ‘R’: rowwise
innThe order of the block reflector H. n >= 0.
inkThe order of the triangular factor T (= the number of elementary reflectors). k >= 1.
inoutVDouble precision array, dimension (ldv, n). The matrix V. See Further Details in LAPACK documentation.
inldvThe leading dimension of the array V. ldv >= k.
intauDouble precision array, dimension (k). tau[i] must contain the scalar factor of the elementary reflector H(i).
outTDouble precision array, dimension (ldt, k). The k by k triangular factor T of the block reflector. T is lower triangular (since only DIRECT = ‘B’ is supported). The rest of the array is not used.
inldtThe leading dimension of the array T. ldt >= k.
void slarzt(
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 dlarzt(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)#
DLARZT 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
Currently, only STOREV = ‘R’ and DIRECT = ‘B’ are supported.
Parameters
indirectSpecifies the order in which the elementary reflectors are multiplied to form the block reflector: = ‘F’: H = H(1) H(2) … H(k) (Forward, not supported yet) = ‘B’: H = H(k) … H(2) H(1) (Backward)
instorevSpecifies how the vectors which define the elementary reflectors are stored: = ‘C’: columnwise (not supported yet) = ‘R’: rowwise
innThe order of the block reflector H. n >= 0.
inkThe order of the triangular factor T (= the number of elementary reflectors). k >= 1.
inoutVDouble precision array, dimension (ldv, n). The matrix V. See Further Details in LAPACK documentation.
inldvThe leading dimension of the array V. ldv >= k.
intauDouble precision array, dimension (k). tau[i] must contain the scalar factor of the elementary reflector H(i).
outTDouble precision array, dimension (ldt, k). The k by k triangular factor T of the block reflector. T is lower triangular (since only DIRECT = ‘B’ is supported). The rest of the array is not used.
inldtThe leading dimension of the array T. ldt >= k.
void dlarzt(
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 clarzt(const char *direct, const char *storev, const INT n, const INT k, c64 *restrict V, const INT ldv, const c64 *restrict tau, c64 *restrict T, const INT ldt)#
CLARZT 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
Currently, only STOREV = ‘R’ and DIRECT = ‘B’ are supported.
Parameters
indirectSpecifies the order in which the elementary reflectors are multiplied to form the block reflector: = ‘F’: H = H(1) H(2) … H(k) (Forward, not supported yet) = ‘B’: H = H(k) … H(2) H(1) (Backward)
instorevSpecifies how the vectors which define the elementary reflectors are stored: = ‘C’: columnwise (not supported yet) = ‘R’: rowwise
innThe order of the block reflector H. n >= 0.
inkThe order of the triangular factor T (= the number of elementary reflectors). k >= 1.
inoutVSingle complex array, dimension (ldv, n). The matrix V. See Further Details in LAPACK documentation.
inldvThe leading dimension of the array V. ldv >= k.
intauSingle complex array, dimension (k). tau[i] must contain the scalar factor of the elementary reflector H(i).
outTSingle complex array, dimension (ldt, k). The k by k triangular factor T of the block reflector. T is lower triangular (since only DIRECT = ‘B’ is supported). The rest of the array is not used.
inldtThe leading dimension of the array T. ldt >= k.
void clarzt(
const char* direct,
const char* storev,
const INT n,
const INT k,
c64* restrict V,
const INT ldv,
const c64* restrict tau,
c64* restrict T,
const INT ldt
);
Functions
-
void zlarzt(const char *direct, const char *storev, const INT n, const INT k, c128 *restrict V, const INT ldv, const c128 *restrict tau, c128 *restrict T, const INT ldt)#
ZLARZT 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
Currently, only STOREV = ‘R’ and DIRECT = ‘B’ are supported.
Parameters
indirectSpecifies the order in which the elementary reflectors are multiplied to form the block reflector: = ‘F’: H = H(1) H(2) … H(k) (Forward, not supported yet) = ‘B’: H = H(k) … H(2) H(1) (Backward)
instorevSpecifies how the vectors which define the elementary reflectors are stored: = ‘C’: columnwise (not supported yet) = ‘R’: rowwise
innThe order of the block reflector H. n >= 0.
inkThe order of the triangular factor T (= the number of elementary reflectors). k >= 1.
inoutVDouble complex array, dimension (ldv, n). The matrix V. See Further Details in LAPACK documentation.
inldvThe leading dimension of the array V. ldv >= k.
intauDouble complex array, dimension (k). tau[i] must contain the scalar factor of the elementary reflector H(i).
outTDouble complex array, dimension (ldt, k). The k by k triangular factor T of the block reflector. T is lower triangular (since only DIRECT = ‘B’ is supported). The rest of the array is not used.
inldtThe leading dimension of the array T. ldt >= k.
void zlarzt(
const char* direct,
const char* storev,
const INT n,
const INT k,
c128* restrict V,
const INT ldv,
const c128* restrict tau,
c128* restrict T,
const INT ldt
);