Class template Dune::XT::LA::internal::RealQrEigenSolver

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
class Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>

No documentation provided.

Method Dune::XT::LA::internal::RealQrEigenSolver::resize

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
static void Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::resize(DynamicMatrix<FieldType> &mat, const int num_rows, const int num_cols, const FieldType &val)

No documentation provided.

Method Dune::XT::LA::internal::RealQrEigenSolver::mat_mult_rhs_transposed

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
static void Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::mat_mult_rhs_transposed(MatrixType &out, const MatrixType &lhs, const MatrixType &rhs_transposed, const int out_rows, const int out_cols, const int inner)

No documentation provided.

Method Dune::XT::LA::internal::RealQrEigenSolver::mat_mult

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
static void Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::mat_mult(MatrixType &out, const MatrixType &lhs, const MatrixType &rhs, const int out_rows, const int cc_begin, const int cc_end, const int inner)

No documentation provided.

Method Dune::XT::LA::internal::RealQrEigenSolver::calculate_eigenvalues_by_shifted_qr

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
static void Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::calculate_eigenvalues_by_shifted_qr(MatrixType &A, const int &Q, int &eigvals)

No documentation provided.

Method Dune::XT::LA::internal::RealQrEigenSolver::get_eigenvalues

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
static void Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::get_eigenvalues(MatrixType &A, int &ret, const int &Q)

No documentation provided.

Method Dune::XT::LA::internal::RealQrEigenSolver::get_eigenvectors

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
static void Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::get_eigenvectors(const MatrixType &A_triangular, const MatrixType &Q, MatrixType &ret)

No documentation provided.

Method Dune::XT::LA::internal::RealQrEigenSolver::xi

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
static FieldType Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::xi(FieldType val)

modified sign function returning 1 instead of 0 if the value is 0

Method Dune::XT::LA::internal::RealQrEigenSolver::get_norm_x

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
static FieldType Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::get_norm_x(const MatrixType &A, const int col_index, int num_rows)

No documentation provided.

Method Dune::XT::LA::internal::RealQrEigenSolver::multiply_householder_from_left

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
static void Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::multiply_householder_from_left(MatrixType &A, const FieldType &beta, const VectorType &v, const int first_row, const int past_last_row)

No documentation provided.

Method Dune::XT::LA::internal::RealQrEigenSolver::multiply_householder_from_right

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
static void Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::multiply_householder_from_right(MatrixType &A, const FieldType &beta, const VectorType &v, const int first_col, const int past_last_col)

No documentation provided.

Method Dune::XT::LA::internal::RealQrEigenSolver::multiply_householder_from_right_col_major

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
static void Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::multiply_householder_from_right_col_major(MatrixType &A, const FieldType &beta, const VectorType &v, const int first_col, const int past_last_col)

No documentation provided.

Method Dune::XT::LA::internal::RealQrEigenSolver::QR_decomp

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
static void Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::QR_decomp(const MatrixType &A, MatrixType &Q, MatrixType &R, int num_rows, int num_cols)

This is a simple QR scheme using Householder reflections. The householder matrix is written as H = I - 2 v v^T, where v = u/||u|| and u = x - s ||x|| e_1, s = ±1 has the opposite sign of u_1 and x is the current column of A. The matrix H is rewritten as H = I - tau w w^T, where w=u/u_1 and tau = -s u_1/||x||. The num_rows and num_cols parameter is used to restrict the rows and columns, the Q and R will only contain the QR decomposition of A[0:num_rows, 0:num_cols].

See also: https://en.wikipedia.org/wiki/QR_decomposition#Using_Householder_reflections., http://www.cs.cornell.edu/~bindel/class/cs6210-f09/lec18.pdf

Method Dune::XT::LA::internal::RealQrEigenSolver::hessenberg_transformation

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
static void Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::hessenberg_transformation(MatrixType &A, const int &Q)

Transform A to Hessenberg form by transformation P^T A P

See also: https://lp.uni-goettingen.de/get/text/2137

Variable Dune::XT::LA::internal::RealQrEigenSolver::max_iterations

const int Dune::XT::LA::internal::RealQrEigenSolver::max_iterations

No documentation provided.

Type alias Dune::XT::LA::internal::RealQrEigenSolver::M

type Dune::XT::LA::internal::RealQrEigenSolver::M

No documentation provided.

Type alias Dune::XT::LA::internal::RealQrEigenSolver::V

type Dune::XT::LA::internal::RealQrEigenSolver::V

No documentation provided.

Function template Dune::XT::LA::internal::RealQrEigenSolver::resize

template<class FieldType, class MatrixType = DynamicMatrix<FieldType>>
template<int rows, int cols>
static void Dune::XT::LA::internal::RealQrEigenSolver<FieldType, MatrixType, VectorType>::resize(FieldMatrix<FieldType, rows, cols>&, const int, const int, const FieldType&)

No documentation provided.