Struct xlifepp::EigenSolverSolution#

template<class ScalarType, class MV>
struct EigenSolverSolution

Struct for storing an eigenproblem solution.

Public Members

SmartPtr<MV> espace#

An orthonormal basis for the computed eigenspace.

std::vector<ValueEigenSolver<ScalarType>> evals#

The computed eigenvalues.

SmartPtr<MV> evecs#

The computed eigenvectors.

std::vector<int> index#

An index into evecs to allow compressed storage of eigenvectors for real, non-Hermitian problems.

index has length numVecs, where each entry is 0, +1, or -1. These have the following interpretation:

  • index[i] == 0: signifies that the corresponding eigenvector is stored as the i column of evecs. This will usually be the case when ScalarType is complex, an eigenproblem is Hermitian, or a real, non-Hermitian eigenproblem has a real eigenvector.

  • index[i] == +1: signifies that the corresponding eigenvector is stored in two vectors: the real part in the i column of evecs and the imaginary part in the i+1 column of evecs.

  • index[i] == -1: signifies that the corresponding eigenvector is stored in two vectors: the real part in the i-1 column of evecs and the imaginary part in the i column of evecs

int numVecs#

The number of computed eigenpairs.