10#ifndef TLAPACK_BIDIAG_HH
11#define TLAPACK_BIDIAG_HH
42template <
class T, TLAPACK_SMATRIX matrix_t, TLAPACK_SVECTOR vector_t>
49 if (opts.variant == BidiagVariant::Level2)
50 return gebd2_worksize<T>(A, tauv, tauw);
52 return gebrd_worksize<T>(A, tauv, tauw, opts);
73 if (opts.variant == BidiagVariant::Level2)
133template <TLAPACK_SMATRIX matrix_t, TLAPACK_SVECTOR vector_t>
140 if (opts.variant == BidiagVariant::Level2)
141 return gebd2(A, tauv, tauw);
143 return gebrd(A, tauv, tauw, opts);
BidiagVariant
Variant of the bidiagonal reduction algorithm.
Definition bidiag.hpp:20
#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 gebrd(matrix_t &A, vector_t &tauv, vector_t &tauw, const GebrdOpts &opts={})
Reduces a general m by n matrix A to an upper real bidiagonal form B by a unitary transformation:
Definition gebrd.hpp:202
int gebd2(matrix_t &A, vector_t &tauv, vector_t &tauw)
Reduces a general m by n matrix A to an upper real bidiagonal form B by a unitary transformation:
Definition gebd2.hpp:210
int gebd2_work(matrix_t &A, vector_t &tauv, vector_t &tauw, work_t &work)
Reduces a general m by n matrix A to an upper real bidiagonal form B by a unitary transformation: W...
Definition gebd2.hpp:76
int gebrd_work(matrix_t &A, vector_t &tauv, vector_t &tauw, work_t &work, const GebrdOpts &opts={})
Reduces a general m by n matrix A to an upper real bidiagonal form B by a unitary transformation: W...
Definition gebrd.hpp:76
int bidiag_work(matrix_t &A, vector_t &tauv, vector_t &tauw, work_t &work, const BidiagOpts &opts={})
Reduces a general m by n matrix A to an upper real bidiagonal form B by a unitary transformation: W...
Definition bidiag.hpp:66
int bidiag(matrix_t &A, vector_t &tauv, vector_t &tauw, const BidiagOpts &opts={})
Reduces a general m by n matrix A to an upper real bidiagonal form B by a unitary transformation:
Definition bidiag.hpp:134
constexpr WorkInfo bidiag_worksize(const matrix_t &A, const vector_t &tauv, const vector_t &tauw, const BidiagOpts &opts={})
Worspace query of bidiag()
Definition bidiag.hpp:43
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 bidiag()
Definition bidiag.hpp:23
Options struct for gebrd()
Definition gebrd.hpp:24
Output information in the workspace query.
Definition workspace.hpp:16