13#ifndef TLAPACK_GEQRT3_HH
14#define TLAPACK_GEQRT3_HH
52template <TLAPACK_MATRIX matrix_a, TLAPACK_MATRIX matrix_h>
61 const idx_t m = nrows(
A);
62 const idx_t n = ncols(
A);
66 std::cout <<
"Error: m < n" << std::endl;
81 else if (n <=
opts.nx) {
143 for (idx_t j = 0; j <
n2; ++j) {
144 for (idx_t i = 0; i <
m1; ++i) {
153 for (idx_t j = 0; j <
n2; ++j) {
154 for (idx_t i = 0; i <
m1; ++i) {
156 T12(i, j) = std::conj(
A21(j, i));
int geqrf(A_t &A, tau_t &tau, const GeqrfOpts &opts={})
Computes a QR factorization of an m-by-n matrix A using a blocked algorithm.
Definition geqrf.hpp:158
int larft(direction_t direction, storage_t storeMode, const matrixV_t &V, const vector_t &tau, matrixT_t &T)
Forms the triangular factor T of a block reflector H of order n, which is defined as a product of k e...
Definition larft.hpp:92
void larfg(storage_t storeMode, type_t< vector_t > &alpha, vector_t &x, type_t< vector_t > &tau)
Generates a elementary Householder reflection.
Definition larfg.hpp:73
void lacpy(uplo_t uplo, const matrixA_t &A, matrixB_t &B)
Copies a matrix from A to B.
Definition lacpy.hpp:38
void trmm(Side side, Uplo uplo, Op trans, Diag diag, const alpha_t &alpha, const matrixA_t &A, matrixB_t &B)
Triangular matrix-matrix multiply:
Definition trmm.hpp:72
void gemm(Op transA, Op transB, const alpha_t &alpha, const matrixA_t &A, const matrixB_t &B, const beta_t &beta, matrixC_t &C)
General matrix-matrix multiply:
Definition gemm.hpp:61
void geqrt3(matrix_a &A, matrix_h &Tmatrix, const Geqrt3Opts &opts={})
Recursive QR factorization using compact WY Householder representation.
Definition geqrt3.hpp:53
Forms the triangular factor T of a block reflector.
Sort the numbers in D in increasing order (if ID = 'I') or in decreasing order (if ID = 'D' ).
Definition arrayTraits.hpp:15
typename traits::real_type_traits< Types..., int >::type real_type
The common real type of the list of types.
Definition scalar_type_traits.hpp:113
@ Unit
The main diagonal is assumed to consist of 1's.
@ NonUnit
The main diagonal is not assumed to consist of 1's.
@ Forward
Forward direction.
constexpr auto diag(T &A, int diagIdx=0) noexcept
Get the Diagonal of an Eigen Matrix.
Definition eigen.hpp:576
@ ConjTrans
conjugate transpose
@ Columnwise
Columnwise storage.
@ General
0 <= i <= m, 0 <= j <= n.
@ Upper
0 <= i <= j, 0 <= j <= n.
@ Lower
0 <= i <= m, 0 <= j <= i.
By toggling isw to true, the geqrt3 routine will stop its loop before computing the the upper right b...
Definition geqrt3.hpp:32