10#ifndef TLAPACK_HESSENBERG_HH
11#define TLAPACK_HESSENBERG_HH
42template <
class T, TLAPACK_SMATRIX matrix_t, TLAPACK_SVECTOR vector_t>
50 if (opts.variant == HessenbergVariant::Level2)
51 return gehd2_worksize<T>(ilo, ihi, A, tau);
53 return gehrd_worksize<T>(ilo, ihi, A, tau, opts);
75 if (opts.variant == HessenbergVariant::Level2)
78 return gehrd_work(ilo, ihi, A, tau, work, opts);
121template <TLAPACK_SMATRIX matrix_t, TLAPACK_SVECTOR vector_t>
129 if (opts.variant == HessenbergVariant::Level2)
130 return gehd2(ilo, ihi, A, tau);
132 return gehrd(ilo, ihi, A, tau, opts);
#define TLAPACK_SVECTOR
Macro for tlapack::concepts::SliceableVector compatible with C++17.
Definition concepts.hpp:909
#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
int gehrd(size_type< matrix_t > ilo, size_type< matrix_t > ihi, matrix_t &A, vector_t &tau, const GehrdOpts &opts={})
Reduces a general square matrix to upper Hessenberg form.
Definition gehrd.hpp:222
int gehd2(size_type< matrix_t > ilo, size_type< matrix_t > ihi, matrix_t &A, vector_t &tau)
Reduces a general square matrix to upper Hessenberg form.
Definition gehd2.hpp:153
int gehrd_work(size_type< matrix_t > ilo, size_type< matrix_t > ihi, matrix_t &A, vector_t &tau, work_t &work, const GehrdOpts &opts={})
Reduces a general square matrix to upper Hessenberg form. Workspace is provided as an argument.
Definition gehrd.hpp:99
int gehd2_work(size_type< matrix_t > ilo, size_type< matrix_t > ihi, matrix_t &A, vector_t &tau, work_t &work)
Reduces a general square matrix to upper Hessenberg form. Workspace is provided as an argument.
Definition gehd2.hpp:76
int hessenberg(size_type< matrix_t > ilo, size_type< matrix_t > ihi, matrix_t &A, vector_t &tau, const HessenbergOpts &opts={})
Reduces a general square matrix to upper Hessenberg form.
Definition hessenberg.hpp:122
int hessenberg_work(size_type< matrix_t > ilo, size_type< matrix_t > ihi, matrix_t &A, vector_t &tau, work_t &work, const HessenbergOpts &opts={})
Reduces a general square matrix to upper Hessenberg form. Workspace is provided as an argument.
Definition hessenberg.hpp:67
constexpr WorkInfo hessenberg_worksize(size_type< matrix_t > ilo, size_type< matrix_t > ihi, const matrix_t &A, const vector_t &tau, const HessenbergOpts &opts={})
Workspace query of hessenberg()
Definition hessenberg.hpp:43
HessenbergVariant
Variants of the algorithm to reduce a matrix to upper Hessenberg form.
Definition hessenberg.hpp:21
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
Options struct for gehrd.
Definition gehrd.hpp:27
Options struct for hessenberg()
Definition hessenberg.hpp:24
Output information in the workspace query.
Definition workspace.hpp:16