12#ifndef TLAPACK_GELQF_HH
13#define TLAPACK_GELQF_HH
40template <
class T, TLAPACK_SMATRIX A_t, TLAPACK_SVECTOR tau_t>
50 const idx_t m = nrows(
A);
51 const idx_t n = ncols(
A);
52 const idx_t
k = min(m, n);
79template <TLAPACK_SMATRIX A_t, TLAPACK_SVECTOR tau_t, TLAPACK_WORKSPACE work_t>
86 const idx_t m = nrows(
A);
87 const idx_t n = ncols(
A);
88 const idx_t
k = min(m, n);
95 auto [
TT,
work2] = (m > nb) ? reshape(
work, nb, nb) : reshape(
work, 0, 0);
98 for (idx_t j = 0; j <
k; j += nb) {
99 const idx_t
ib = min(nb,
k - j);
156template <TLAPACK_SMATRIX A_t, TLAPACK_SVECTOR tau_t>
165 std::vector<T>
work_;
int gelqf(A_t &A, tau_t &tau, const GelqfOpts &opts={})
Computes an LQ factorization of an m-by-n matrix A using a blocked algorithm.
Definition gelqf.hpp:157
int larfb_work(side_t side, trans_t trans, direction_t direction, storage_t storeMode, const matrixV_t &V, const matrixT_t &Tmatrix, matrixC_t &C, work_t &work)
Applies a block reflector or its conjugate transpose to a m-by-n matrix C, from either the left or ...
Definition larfb.hpp:111
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
int gelqf_work(A_t &A, tau_t &tau, work_t &work, const GelqfOpts &opts={})
Computes an LQ factorization of an m-by-n matrix A using a blocked algorithm. Workspace is provided...
Definition gelqf.hpp:80
int gelq2_work(matrix_t &A, vector_t &tauw, work_t &work)
Computes an LQ factorization of a complex m-by-n matrix A using an unblocked algorithm....
Definition gelq2.hpp:59
#define tlapack_check(cond)
Throw an error if cond is false.
Definition exceptionHandling.hpp:98
constexpr WorkInfo gelqf_worksize(const A_t &A, const tau_t &tau, const GelqfOpts &opts={})
Worspace query of gelqf()
Definition gelqf.hpp:41
Applies a Householder block reflector to a matrix.
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
constexpr internal::RightSide RIGHT_SIDE
right side
Definition types.hpp:296
constexpr internal::RowwiseStorage ROWWISE_STORAGE
Rowwise storage.
Definition types.hpp:416
constexpr internal::Forward FORWARD
Forward direction.
Definition types.hpp:381
constexpr internal::NoTranspose NO_TRANS
no transpose
Definition types.hpp:260
Options struct for gelqf.
Definition gelqf.hpp:24
size_t nb
Block size.
Definition gelqf.hpp:25
Output information in the workspace query.
Definition workspace.hpp:16