Class template Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
class Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>

Note

If the provided options contain a subtree “matrix-inverter” that one is forwarded on eigenvector inversion.

See also: default_eigen_solver_options

Method Dune::XT::LA::internal::EigenSolverBase::options

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
const Common::Configuration &Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::options() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::matrix

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
const MatrixType &Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::matrix() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::compute

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
virtual void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::compute() const = 0

Does the actual computation.

Warning

The implementor has to fill the appropriate members!

Note

The implementor can assume that the given options_ contain a valid ‘type’ and all default keys.

Note

The implementor does not need to guard against multiple calls of this method.

Method Dune::XT::LA::internal::EigenSolverBase::eigenvalues

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
const std::vector<ComplexType> &Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::eigenvalues() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::real_eigenvalues

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
const std::vector<RealType> &Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::real_eigenvalues() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::min_eigenvalues

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
std::vector<RealType> Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::min_eigenvalues(const size_t num_evs = std::numeric_limits<size_t>::max()) const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::max_eigenvalues

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
std::vector<RealType> Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::max_eigenvalues(const size_t num_evs = std::numeric_limits<size_t>::max()) const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::eigenvectors

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
const ComplexMatrixType &Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::eigenvectors() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::eigenvectors_inverse

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
const ComplexMatrixType &Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::eigenvectors_inverse() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::real_eigenvectors

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
const RealMatrixType &Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::real_eigenvectors() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::real_eigenvectors_inverse

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
const MatrixType &Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::real_eigenvectors_inverse() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::compute_and_check

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::compute_and_check() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::pre_checks

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::pre_checks()

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::post_checks

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::post_checks() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::compute_real_eigenvalues

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::compute_real_eigenvalues() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::compute_real_eigenvectors

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::compute_real_eigenvectors() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::invert_eigenvectors

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::invert_eigenvectors() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::invert_real_eigenvectors

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::invert_real_eigenvectors() const

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::complex_eigendecomposition_check

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
static void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::complex_eigendecomposition_check(const ThisType &self, const double &tolerance)

No documentation provided.

Constructor Dune::XT::LA::internal::EigenSolverBase::EigenSolverBase

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
explicit Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::EigenSolverBase(const MatrixType &matrix, const std::string &type = "")

No documentation provided.

Constructor Dune::XT::LA::internal::EigenSolverBase::EigenSolverBase

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::EigenSolverBase(const MatrixType &matrix, const Common::Configuration &opts)

No documentation provided.

Constructor Dune::XT::LA::internal::EigenSolverBase::EigenSolverBase

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::EigenSolverBase(const MatrixType &matrix, Common::Configuration *opts)

No documentation provided.

Constructor Dune::XT::LA::internal::EigenSolverBase::EigenSolverBase

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::EigenSolverBase(const ThisType &other) = default

No documentation provided.

Constructor Dune::XT::LA::internal::EigenSolverBase::EigenSolverBase

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::EigenSolverBase(ThisType &&source) noexcept = default

No documentation provided.

Destructor Dune::XT::LA::internal::EigenSolverBase::~EigenSolverBase

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
virtual Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::~EigenSolverBase() = default

No documentation provided.

Field Dune::XT::LA::internal::EigenSolverBase::matrix_

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
const MatrixType &Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::matrix_

No documentation provided.

Field Dune::XT::LA::internal::EigenSolverBase::stored_options_

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
Common::Configuration Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::stored_options_

No documentation provided.

Field Dune::XT::LA::internal::EigenSolverBase::options_

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
Common::Configuration *Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::options_

No documentation provided.

Field Dune::XT::LA::internal::EigenSolverBase::computed_

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
bool Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::computed_

No documentation provided.

Field Dune::XT::LA::internal::EigenSolverBase::eigenvalues_

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
std::unique_ptr<std::vector<ComplexType>> Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::eigenvalues_

No documentation provided.

Field Dune::XT::LA::internal::EigenSolverBase::real_eigenvalues_

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
std::unique_ptr<std::vector<RealType>> Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::real_eigenvalues_

No documentation provided.

Field Dune::XT::LA::internal::EigenSolverBase::eigenvectors_

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
std::unique_ptr<ComplexMatrixType> Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::eigenvectors_

No documentation provided.

Field Dune::XT::LA::internal::EigenSolverBase::real_eigenvectors_

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
std::unique_ptr<RealMatrixType> Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::real_eigenvectors_

No documentation provided.

Field Dune::XT::LA::internal::EigenSolverBase::eigenvectors_inverse_

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
std::unique_ptr<ComplexMatrixType> Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::eigenvectors_inverse_

No documentation provided.

Field Dune::XT::LA::internal::EigenSolverBase::real_eigenvectors_inverse_

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
std::unique_ptr<RealMatrixType> Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::real_eigenvectors_inverse_

No documentation provided.

Field Dune::XT::LA::internal::EigenSolverBase::disable_checks_

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
const bool Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::disable_checks_

No documentation provided.

Type alias Dune::XT::LA::internal::EigenSolverBase::ThisType

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
using Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::ThisType = EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>

No documentation provided.

Type alias Dune::XT::LA::internal::EigenSolverBase::MatrixType

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
using Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::MatrixType = MatrixImp

No documentation provided.

Type alias Dune::XT::LA::internal::EigenSolverBase::RealType

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
using Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::RealType = XT::Common::field_t<FieldImp>

No documentation provided.

Type alias Dune::XT::LA::internal::EigenSolverBase::ComplexType

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
using Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::ComplexType = XT::Common::complex_t<RealType>

No documentation provided.

Type alias Dune::XT::LA::internal::EigenSolverBase::RealMatrixType

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
using Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::RealMatrixType = RealMatrixImp

No documentation provided.

Type alias Dune::XT::LA::internal::EigenSolverBase::ComplexMatrixType

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
using Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::ComplexMatrixType = ComplexMatrixImp

No documentation provided.

Function template Dune::XT::LA::internal::EigenSolverBase::assert_eigendecomposition

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
template<class A, class B, class C, class D>
void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::assert_eigendecomposition(const std::unique_ptr<A> &mat, const B &eigenvalues, const C &eigenvectors, const D &eigenvectors_inverse, const double &tolerance) const

No documentation provided.

Function template Dune::XT::LA::internal::EigenSolverBase::assert_eigendecomposition

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
template<class A, class B, class C, class D>
void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::assert_eigendecomposition(const A &mat, const B &eigenvalues, const C &eigenvectors, const D &eigenvectors_inverse, const double &tolerance) const

No documentation provided.

Function template Dune::XT::LA::internal::EigenSolverBase::check_size

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
template<class M>
void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::check_size(const MatrixInterface<M> &mat) const

No documentation provided.

Function template Dune::XT::LA::internal::EigenSolverBase::check_size

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
template<class M>
typename std::enable_if<XT::Common::is_matrix<M>::value && !is_matrix<M>::value, void>::type Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::check_size(const M &mat) const

No documentation provided.

Function template Dune::XT::LA::internal::EigenSolverBase::contains_inf_or_nan

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
template<class T>
bool Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::contains_inf_or_nan(const std::vector<T> &vec) const

No documentation provided.

Function template Dune::XT::LA::internal::EigenSolverBase::contains_inf_or_nan

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
template<class M>
bool Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::contains_inf_or_nan(const MatrixInterface<M> &mat) const

No documentation provided.

Function template Dune::XT::LA::internal::EigenSolverBase::contains_inf_or_nan

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
template<class M>
typename std::enable_if<XT::Common::is_matrix<M>::value && !is_matrix<M>::value, bool>::type Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::contains_inf_or_nan(const M &mat) const

No documentation provided.

Class template Dune::XT::LA::internal::EigenSolverBase::real_eigenvectors_helper<is_common_matrix, T>

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
template<bool is_common_matrix = XT::Common::is_matrix<MatrixType>::value, class T = MatrixType>
class Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::real_eigenvectors_helper<is_common_matrix, T>

No documentation provided.

Class template Dune::XT::LA::internal::EigenSolverBase::real_eigenvectors_helper<true, T>

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
template<class T>
class Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::real_eigenvectors_helper<true, T>

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::real_eigenvectors_helper::compute

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
template<class T>
static void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::real_eigenvectors_helper<true, T>::compute(const ThisType &self, const double &tolerance)

No documentation provided.

Class template Dune::XT::LA::internal::EigenSolverBase::real_eigenvectors_helper<false, T>

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
template<class T>
class Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::real_eigenvectors_helper<false, T>

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::real_eigenvectors_helper::set_real_entry

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
template<class T>
static void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::real_eigenvectors_helper<false, T>::set_real_entry(ThisType &self, const size_t ii, const size_t jj, const double &tolerance)

No documentation provided.

Method Dune::XT::LA::internal::EigenSolverBase::real_eigenvectors_helper::compute

template<class MatrixImp, class FieldImp, class RealMatrixImp, class ComplexMatrixImp>
template<class T>
static void Dune::XT::LA::internal::EigenSolverBase<MatrixImp, FieldImp, RealMatrixImp, ComplexMatrixImp>::real_eigenvectors_helper<false, T>::compute(ThisType &self, const double &tolerance)

No documentation provided.