Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
dense_subspace.hpp File Reference
#include <uni20/krylov/dense_linalg.hpp>
#include <algorithm>
#include <array>
#include <complex>
#include <cstddef>
#include <limits>
#include <numeric>
#include <stdexcept>
#include <utility>
#include <vector>
Include dependency graph for dense_subspace.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  uni20::krylov::ComplexNonsymmetricEigensystem< Real >
 Generalized real Schur decomposition of a dense real matrix pencil. More...
 
struct  uni20::krylov::ComplexSchurDecomposition< Real >
 Complex Schur decomposition stored in column-major DenseMatrix values. More...
 
struct  uni20::krylov::RealNonsymmetricEigensystem< Real >
 Eigenvalues and optional eigenvectors of a dense real symmetric matrix. More...
 
struct  uni20::krylov::RealSchurBlock< Scalar >
 Expert eigensystem diagnostics for a dense real nonsymmetric matrix. More...
 
struct  uni20::krylov::RealSchurDecomposition< Scalar >
 
struct  uni20::krylov::RightComplexSchurDecomposition< Real >
 Complex Schur decomposition stored in prototype layout-right matrices. More...
 
struct  uni20::krylov::RightRealSchurDecomposition< Scalar >
 Real Schur decomposition stored in prototype layout-right matrices. More...
 
struct  uni20::krylov::TridiagonalEigensystem< Scalar >
 Eigenvalues and optional eigenvectors of a symmetric tridiagonal matrix. More...
 

Namespaces

namespace  uni20
 
namespace  uni20::krylov
 

Functions

template<uni20::LapackReal Real>
ComplexNonsymmetricEigensystem< Real > uni20::krylov::complex_nonsymmetric_eigensystem (uni20::DenseMatrix< uni20::detail::standard_complex< Real > > matrix, bool compute_right_vectors)
 Solve a dense real nonsymmetric eigensystem through LAPACK geevx.
 
template<uni20::LapackReal Real>
ComplexSchurDecomposition< Real > uni20::krylov::complex_schur (uni20::DenseMatrix< uni20::detail::standard_complex< Real > > matrix, bool compute_vectors)
 Compute the complex Schur decomposition of a column-major DenseMatrix.
 
template<uni20::LapackReal Real>
RightComplexSchurDecomposition< Real > uni20::krylov::complex_schur_layout_right (RightMatrix< uni20::detail::standard_complex< Real > > matrix, bool compute_vectors)
 Compute the complex Schur decomposition of a layout-right matrix through LAPACK gees.
 
template<uni20::LapackReal Scalar>
RealSchurDecomposition< Scalar > uni20::krylov::real_hessenberg_schur (uni20::DenseMatrix< Scalar > hessenberg, bool compute_vectors)
 Compute the real Schur decomposition of an upper Hessenberg matrix through LAPACK hseqr.
 
template<uni20::LapackReal Real>
RealNonsymmetricEigensystem< Real > uni20::krylov::real_nonsymmetric_eigensystem (uni20::DenseMatrix< Real > matrix, bool compute_right_vectors)
 
template<uni20::LapackReal Scalar>
RealSchurDecomposition< Scalar > uni20::krylov::real_schur (uni20::DenseMatrix< Scalar > matrix, bool compute_vectors)
 Compute the real Schur decomposition of a column-major DenseMatrix.
 
template<uni20::LapackReal Scalar>
RightRealSchurDecomposition< Scalar > uni20::krylov::real_schur_layout_right (RightMatrix< Scalar > matrix, bool compute_vectors)
 Solve a real symmetric tridiagonal eigensystem through LAPACK stevd.
 
template<uni20::LapackReal Real>
ComplexSchurDecomposition< Real > uni20::krylov::reorder_complex_schur (ComplexSchurDecomposition< Real > decomposition, std::vector< std::size_t > const &leading_order)
 Reorder a column-major complex Schur decomposition by moving selected entries to the front.
 
template<uni20::LapackReal Real>
RightComplexSchurDecomposition< Real > uni20::krylov::reorder_complex_schur_layout_right (RightComplexSchurDecomposition< Real > decomposition, std::vector< std::size_t > const &leading_order)
 Move selected real Schur blocks to the leading invariant subspace and estimate conditioning.
 
template<uni20::LapackReal Scalar>
RealSchurDecomposition< Scalar > uni20::krylov::reorder_real_schur (RealSchurDecomposition< Scalar > decomposition, std::vector< std::size_t > const &leading_block_order)
 Reorder a column-major real Schur decomposition by moving selected blocks to the front.
 
template<uni20::LapackReal Scalar>
RightRealSchurDecomposition< Scalar > uni20::krylov::reorder_real_schur_layout_right (RightRealSchurDecomposition< Scalar > decomposition, std::vector< std::size_t > const &leading_block_order)
 Reorder a layout-right real Schur decomposition by moving selected blocks to the front.
 
template<uni20::LapackReal Scalar>
TridiagonalEigensystem< Scalar > uni20::krylov::symmetric_tridiagonal_eigensystem (std::vector< Scalar > diagonal, std::vector< Scalar > subdiagonal, bool compute_vectors)
 Solve a real symmetric tridiagonal eigensystem through LAPACK sterf or steqr.
 
template<uni20::LapackReal Scalar>
std::vector< Scalar > uni20::krylov::symmetric_tridiagonal_eigenvalues (std::vector< Scalar > diagonal, std::vector< Scalar > subdiagonal)