Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Namespaces | Functions
schur.hpp File Reference

Fixed-output dense Schur decomposition and reordering operations. More...

#include <uni20/linalg/backends/lapack/schur.hpp>
#include <uni20/linalg/dispatch.hpp>
#include <uni20/linalg/operation_tags.hpp>
#include <uni20/tensor/concepts.hpp>
#include <span>
#include <utility>
Include dependency graph for ops/schur.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  uni20
 
namespace  uni20::linalg
 

Functions

template<class BackendSelector , uni20::MutableRankedTensorView< 2 > MatrixTensor, class EigenScalar , uni20::MutableRankedTensorView< 2 > SchurVectorTensor>
void uni20::linalg::hessenberg_schur (BackendSelector &&selector, MatrixTensor &&matrix_work, std::span< EigenScalar > eigenvalues, SchurVectorTensor &&schur_vectors, bool compute_vectors)
 Replace a real upper-Hessenberg matrix by its real Schur form.
 
template<uni20::MutableRankedTensorView< 2 > MatrixTensor, class EigenScalar , uni20::MutableRankedTensorView< 2 > SchurVectorTensor>
void uni20::linalg::hessenberg_schur (MatrixTensor &&matrix_work, std::span< EigenScalar > eigenvalues, SchurVectorTensor &&schur_vectors, bool compute_vectors)
 Apply the destructive hessenberg_schur contract using tensor storage policy.
 
template<class BackendSelector , uni20::MutableRankedTensorView< 2 > SchurFormTensor, uni20::MutableRankedTensorView< 2 > SchurVectorTensor>
void uni20::linalg::reorder_schur (BackendSelector &&selector, SchurFormTensor &&schur_form, SchurVectorTensor &&schur_vectors, std::size_t from, std::size_t to, bool update_vectors)
 Reorder a Schur form in place, optionally updating its Schur vectors.
 
template<uni20::MutableRankedTensorView< 2 > SchurFormTensor, uni20::MutableRankedTensorView< 2 > SchurVectorTensor>
void uni20::linalg::reorder_schur (SchurFormTensor &&schur_form, SchurVectorTensor &&schur_vectors, std::size_t from, std::size_t to, bool update_vectors)
 Apply the in-place reorder_schur contract using tensor storage policy.
 
template<class BackendSelector , uni20::MutableRankedTensorView< 2 > MatrixTensor, class EigenScalar , uni20::MutableRankedTensorView< 2 > SchurVectorTensor>
void uni20::linalg::schur (BackendSelector &&selector, MatrixTensor &&matrix_work, std::span< EigenScalar > eigenvalues, SchurVectorTensor &&schur_vectors, bool compute_vectors)
 Replace a square matrix by its Schur form and optionally return Schur vectors.
 
template<uni20::MutableRankedTensorView< 2 > MatrixTensor, class EigenScalar , uni20::MutableRankedTensorView< 2 > SchurVectorTensor>
void uni20::linalg::schur (MatrixTensor &&matrix_work, std::span< EigenScalar > eigenvalues, SchurVectorTensor &&schur_vectors, bool compute_vectors)
 Apply the destructive schur contract using tensor storage policy.
 

Detailed Description

Fixed-output dense Schur decomposition and reordering operations.