12#ifndef TLAPACK_UNG2R_HH
13#define TLAPACK_UNG2R_HH
32template <
class T, TLAPACK_SMATRIX matrix_t, TLAPACK_VECTOR vector_t>
39 const idx_t n = ncols(
A);
42 auto&&
C = cols(
A,
range{1, n});
44 col(
A, 0),
tau[0],
C);
95template <TLAPACK_SMATRIX matrix_t, TLAPACK_VECTOR vector_t>
105 const idx_t n = ncols(
A);
108 if (n <= 0)
return 0;
112 std::vector<T>
work_;
constexpr internal::Forward FORWARD
Forward direction.
Definition types.hpp:381
constexpr internal::ColumnwiseStorage COLUMNWISE_STORAGE
Columnwise storage.
Definition types.hpp:414
constexpr internal::LeftSide LEFT_SIDE
left side
Definition types.hpp:294
#define TLAPACK_SMATRIX
Macro for tlapack::concepts::SliceableMatrix compatible with C++17.
Definition concepts.hpp:899
#define TLAPACK_WORKSPACE
Macro for tlapack::concepts::Workspace compatible with C++17.
Definition concepts.hpp:912
#define TLAPACK_VECTOR
Macro for tlapack::concepts::Vector compatible with C++17.
Definition concepts.hpp:906
int ung2r(matrix_t &A, const vector_t &tau)
Generates a matrix Q with orthogonal columns.
Definition ung2r.hpp:96
int ung2r_work(matrix_t &A, const vector_t &tau, work_t &work)
Generates a matrix Q with orthogonal columns.
Definition ung2r.hpp:72
int ungq_level2_work(direction_t direction, storage_t storeMode, matrix_t &A, const vector_t &tau, work_t &work)
Generates a matrix Q that is the product of elementary reflectors. Workspace is provided as an argu...
Definition ungq_level2.hpp:90
constexpr WorkInfo ung2r_worksize(const matrix_t &A, const vector_t &tau)
Worspace query of ung2r()
Definition ung2r.hpp:33
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
Output information in the workspace query.
Definition workspace.hpp:16