Struct xlifepp::EigenSolverSolution#

template<class ScalarType, class MV>
struct EigenSolverSolution

Collaboration diagram for xlifepp::EigenSolverSolution:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "5" [label="CheckingPolicy< StoragePolicy< MV >::StoredType >" tooltip="CheckingPolicy< StoragePolicy< MV >::StoredType >"] "10" [label="CheckingPolicy< StoragePolicy< T >::StoredType >" tooltip="CheckingPolicy< StoragePolicy< T >::StoredType >"] "6" [label="ConversionPolicy" tooltip="ConversionPolicy"] "4" [label="OwnershipPolicy< StoragePolicy< MV >::InitPointerType >" tooltip="OwnershipPolicy< StoragePolicy< MV >::InitPointerType >"] "9" [label="OwnershipPolicy< StoragePolicy< T >::InitPointerType >" tooltip="OwnershipPolicy< StoragePolicy< T >::InitPointerType >"] "2" [label="xlifepp::SmartPtr< MV >" tooltip="xlifepp::SmartPtr< MV >"] "3" [label="StoragePolicy< MV >" tooltip="StoragePolicy< MV >"] "8" [label="StoragePolicy< T >" tooltip="StoragePolicy< T >"] "12" [label="std::vector< T >" tooltip="std::vector< T >"] "13" [label="std::vector< int >" tooltip="std::vector< int >"] "11" [label="std::vector< xlifepp::ValueEigenSolver< ScalarType > >" tooltip="std::vector< xlifepp::ValueEigenSolver< ScalarType > >"] "1" [label="xlifepp::EigenSolverSolution< ScalarType, MV >" tooltip="xlifepp::EigenSolverSolution< ScalarType, MV >" fillcolor="#BFBFBF"] "7" [label="xlifepp::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy, ConstnessPolicy >" tooltip="xlifepp::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy, ConstnessPolicy >"] "2" -> "3" [dir=forward tooltip="public-inheritance"] "2" -> "4" [dir=forward tooltip="public-inheritance"] "2" -> "5" [dir=forward tooltip="public-inheritance"] "2" -> "6" [dir=forward tooltip="public-inheritance"] "2" -> "7" [dir=forward tooltip="template-instance"] "13" -> "12" [dir=forward tooltip="template-instance"] "11" -> "12" [dir=forward tooltip="template-instance"] "1" -> "2" [dir=forward tooltip="usage"] "1" -> "11" [dir=forward tooltip="usage"] "1" -> "13" [dir=forward tooltip="usage"] "7" -> "8" [dir=forward tooltip="public-inheritance"] "7" -> "9" [dir=forward tooltip="public-inheritance"] "7" -> "10" [dir=forward tooltip="public-inheritance"] "7" -> "6" [dir=forward tooltip="public-inheritance"] }

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.