Contains information about the matrix before a purification step and about the step. More...
#include <PuriStepInfo.h>
Public Member Functions | |
PuriStepInfo (int nn=-1, int noc=-1, Treal eigvalConvCrit=0.0) | |
~PuriStepInfo () | |
bool | converged () const |
void | setChosenThresh (Treal const thr) |
Treal | getChosenThresh () const |
void | setActualThresh (Treal const thr) |
Treal | getActualThresh () const |
void | setEstimatedStepsLeft (int const stepsleft) |
int | getEstimatedStepsLeft () const |
void | setTraceX (Treal const trX) |
void | setTraceX2 (Treal const trX2) |
Treal | getTraceX () const |
Treal | getTraceX2 () const |
void | setPoly () |
int | getPoly () const |
void | setXmX2EuclNorm (Interval< Treal > const XmX2eucl) |
Sets XmX2EuclNorm bounds. | |
Interval< Treal > | getXmX2EuclNorm () const |
void | setEigVecPtr (Tvector *eigVecPtr_) |
Improves homo and lumo bounds if the new ones are better. | |
Tvector const *const | getEigVecPtr () const |
void | improveHomoLumo (Interval< Treal > const homoInt, Interval< Treal > const lumoInt) |
Interval< Treal > const & | getHomo () const |
Interval< Treal > const & | getLumo () const |
Interval< Treal > const & | getEigInterval () const |
void | exchangeInfoWithNext (PuriStepInfo< Treal, Tvector, TdebugPolicy > &next) |
void | setCorrectOccupation () |
Set correct occ. | |
int | getCorrectOccupation () const |
Treal | subspaceError () const |
void | improveEigInterval (Interval< Treal > const eInt) |
Improve eigenvalue bounds and delta if possible. | |
void | setNnzX (size_t const nzX) |
size_t | getNnzX () const |
void | setNnzX2 (size_t const nzX2) |
size_t | getNnzX2 () const |
void | computeEigAccLoss () |
Computes a probable upper bound of the accuracy that is lost in the eigenvalues of X * X because of limited relative precision in the storage of X. | |
Treal | getEigAccLoss () const |
Treal | getN0 () const |
Treal | getN1 () const |
Treal | getDelta () const |
void | checkIntervals (const char *descriptionString) const |
template<typename Tmatrix > | |
void | computeExactValues (Tmatrix const &X, Tmatrix const &X2) |
void | setMemUsageBeforeTrunc () |
void | setMemUsageInXmX2Diff (MemUsage::Values &memUsage) |
void | setTimeThresh (float t) |
void | setTimeSquare (float t) |
void | setTimeXmX2Norm (float t) |
void | setTimeTotal (float t) |
void | setTimeXX2Write (float t) |
void | setTimeXX2Read (float t) |
MemUsage::Values | getMemUsageBeforeTrunc () |
MemUsage::Values | getMemUsageInXmX2Diff () |
float | getTimeThresh () |
float | getTimeSquare () |
float | getTimeXmX2Norm () |
float | getTimeTotal () |
float | getTimeXX2Write () |
float | getTimeXX2Read () |
bool | homoIsAccuratelyKnown (Treal accuracyLimit) const |
bool | lumoIsAccuratelyKnown (Treal accuracyLimit) const |
bool | getLumoWasComputed () |
bool | getHomoWasComputed () |
Protected Member Functions | |
void | computen0n1 () |
Compute n0 and n1 Called by improveEigInterval. | |
Protected Attributes | |
int | n |
System size. | |
int | nocc |
Number of occupied orbitals. | |
Treal | traceX |
Trace of the matrix X. | |
Treal | traceX2 |
Trace of the squared matrix X^2. | |
int | poly |
Choice of polynomial 0 for x^2 and 1 for 2 * x - x^2. | |
Treal | chosenThresh |
Chosen threshold value applied before step. | |
Treal | actualThresh |
Actual threshold value applied before step. | |
int | estimatedStepsLeft |
Estimated steps left in purification. | |
Interval< Treal > | eigInterval |
Interval containing the eigenvalue spectrum. | |
Treal | delta |
Largest possible deviation from the [0 1] interval. | |
int | correctOccupation |
Takes the values: 1 meaning all eigenvalues supposed to go to 1 are larger than 0.5 and all eigenvalues supposed to go to 0 are smaller than 0.5 for sure. | |
Interval< Treal > | XmX2EuclNorm |
Interval containing the euclidean norm ||X-X^2||_2 before step. | |
Tvector * | eigVecPtr |
Eigenvector possibly containing the homo or lumo eigenvector. | |
bool | lumoWasComputed |
Flag indicating if lumo was computed. | |
bool | homoWasComputed |
Flag indicating if homo was computed. | |
Treal | n0 |
Lower bound on the number of eigenvalues in [lambdaMin, 0.5]. | |
Treal | n1 |
Lower bound on the number of eigenvalues in [0.5, 1 + delta]. | |
Interval< Treal > | homo |
Interval containing the homo eigenvalue. | |
Interval< Treal > | lumo |
Interval containing the lumo eigenvalue. | |
Treal | eigConvCrit |
Tolerated deviation from 0 and 1 of converged eigenvalues. | |
size_t | nnzX |
Number of nonzeros in the matrix X. | |
size_t | nnzX2 |
Number of nonzeros in the matrix X2. | |
Treal | eigAccLoss |
A probable upper bound of the accuracy that is lost in the eigenvalues of X * X because of limited relative precision in the storage of X. | |
MemUsage::Values | memUsageBeforeTrunc |
MemUsage::Values | memUsageInXmX2Diff |
float | timeThresh |
float | timeSquare |
float | timeXmX2Norm |
float | timeTotal |
float | timeXX2Write |
float | timeXX2Read |
Contains information about the matrix before a purification step and about the step.
All info is for the truncated matrix in the current step. We use inheritance for test class so that empty base class optimization can be used in case of an empty test class.
mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::PuriStepInfo | ( | int | nn = -1 , |
|
int | noc = -1 , |
|||
Treal | eigvalConvCrit = 0.0 | |||
) | [inline, explicit] |
mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::~PuriStepInfo | ( | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::checkIntervals | ( | const char * | descriptionString | ) | const [inline] |
Referenced by mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::checkIntervals(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::exchangeInfoWithNext(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveHomoLumo(), and mat::Purification< Treal, Tmatrix, TdebugPolicy >::stepComputeInfo().
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computeEigAccLoss | ( | ) | [inline] |
Computes a probable upper bound of the accuracy that is lost in the eigenvalues of X * X because of limited relative precision in the storage of X.
References ASSERTALWAYS, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::eigAccLoss, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::n, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::nnzX, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::nnzX2, and template_blas_sqrt().
Referenced by mat::Purification< Treal, Tmatrix, TdebugPolicy >::stepComputeInfo().
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computeExactValues | ( | Tmatrix const & | X, | |
Tmatrix const & | X2 | |||
) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computen0n1 | ( | ) | [inline, protected] |
Compute n0 and n1 Called by improveEigInterval.
References mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::correctOccupation, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::delta, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::n, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::n0, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::n1, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::nocc, template_blas_sqrt(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::traceX, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::traceX2, and mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::XmX2EuclNorm.
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveEigInterval().
bool mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::converged | ( | ) | const [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::exchangeInfoWithNext | ( | PuriStepInfo< Treal, Tvector, TdebugPolicy > & | next | ) | [inline] |
References mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::actualThresh, ASSERTALWAYS, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::checkIntervals(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::eigAccLoss, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::eigInterval, mat::Interval< Treal >::empty(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::homo, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveEigInterval(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveHomoLumo(), mat::Interval< Treal >::increase(), mat::Interval< Treal >::intersect(), mat::Interval< Treal >::invPuriStep(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::lumo, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::poly, and mat::Interval< Treal >::puriStep().
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getActualThresh | ( | ) | const [inline] |
Referenced by mat::operator<<().
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getChosenThresh | ( | ) | const [inline] |
int mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getCorrectOccupation | ( | ) | const [inline] |
Referenced by mat::operator<<().
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getDelta | ( | ) | const [inline] |
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getEigAccLoss | ( | ) | const [inline] |
Interval<Treal> const& mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getEigInterval | ( | ) | const [inline] |
Tvector const* const mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getEigVecPtr | ( | ) | const [inline] |
int mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getEstimatedStepsLeft | ( | ) | const [inline] |
Interval<Treal> const& mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getHomo | ( | ) | const [inline] |
Referenced by mat::operator<<(), and mat::Purification< Treal, Tmatrix, TdebugPolicy >::step().
bool mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getHomoWasComputed | ( | ) | [inline] |
Interval<Treal> const& mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getLumo | ( | ) | const [inline] |
Referenced by mat::operator<<(), and mat::Purification< Treal, Tmatrix, TdebugPolicy >::step().
bool mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getLumoWasComputed | ( | ) | [inline] |
MemUsage::Values mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getMemUsageBeforeTrunc | ( | ) | [inline] |
MemUsage::Values mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getMemUsageInXmX2Diff | ( | ) | [inline] |
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getN0 | ( | ) | const [inline] |
Referenced by mat::operator<<().
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getN1 | ( | ) | const [inline] |
Referenced by mat::operator<<().
size_t mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getNnzX | ( | ) | const [inline] |
Referenced by mat::operator<<().
size_t mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getNnzX2 | ( | ) | const [inline] |
Referenced by mat::operator<<().
int mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getPoly | ( | ) | const [inline] |
Referenced by mat::operator<<().
float mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getTimeSquare | ( | ) | [inline] |
float mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getTimeThresh | ( | ) | [inline] |
float mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getTimeTotal | ( | ) | [inline] |
float mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getTimeXmX2Norm | ( | ) | [inline] |
float mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getTimeXX2Read | ( | ) | [inline] |
float mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getTimeXX2Write | ( | ) | [inline] |
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getTraceX | ( | ) | const [inline] |
Referenced by mat::operator<<().
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getTraceX2 | ( | ) | const [inline] |
Referenced by mat::operator<<().
Interval<Treal> mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::getXmX2EuclNorm | ( | ) | const [inline] |
Referenced by mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::converged(), and mat::operator<<().
bool mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::homoIsAccuratelyKnown | ( | Treal | accuracyLimit | ) | const [inline] |
accuracyLimit | HOMO estimation is considered to be accurate if the error is smaller than this value. |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveEigInterval | ( | Interval< Treal > const | eInt | ) | [inline] |
Improve eigenvalue bounds and delta if possible.
Returns delta.
References mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computen0n1(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::delta, and mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::eigInterval.
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::exchangeInfoWithNext(), mat::Purification< Treal, Tmatrix, TdebugPolicy >::Purification(), and mat::Purification< Treal, Tmatrix, TdebugPolicy >::stepComputeInfo().
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveHomoLumo | ( | Interval< Treal > const | homoInt, | |
Interval< Treal > const | lumoInt | |||
) | [inline] |
References ASSERTALWAYS, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::checkIntervals(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::correctOccupation, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::eigInterval, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::eigVecPtr, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::homo, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::homoWasComputed, mat::Interval< Treal >::length(), mat::Interval< Treal >::low(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::lumo, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::lumoWasComputed, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setCorrectOccupation(), mat::sqrtInt(), template_blas_sqrt(), and mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::XmX2EuclNorm.
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::exchangeInfoWithNext(), and mat::Purification< Treal, Tmatrix, TdebugPolicy >::Purification().
bool mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::lumoIsAccuratelyKnown | ( | Treal | accuracyLimit | ) | const [inline] |
accuracyLimit | LUMO estimation is considered to be accurate if the error is smaller than this value. |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setActualThresh | ( | Treal const | thr | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setChosenThresh | ( | Treal const | thr | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setCorrectOccupation | ( | ) | [inline] |
Set correct occ.
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveHomoLumo().
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setEigVecPtr | ( | Tvector * | eigVecPtr_ | ) | [inline] |
Improves homo and lumo bounds if the new ones are better.
Uses XmX2EuclNorm if possible.
Referenced by mat::Purification< Treal, Tmatrix, TdebugPolicy >::stepComputeInfo().
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setEstimatedStepsLeft | ( | int const | stepsleft | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setMemUsageBeforeTrunc | ( | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setMemUsageInXmX2Diff | ( | MemUsage::Values & | memUsage | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setNnzX | ( | size_t const | nzX | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setNnzX2 | ( | size_t const | nzX2 | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setPoly | ( | ) | [inline] |
References ASSERTALWAYS, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::homo, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::lumo, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::nocc, mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::poly, template_blas_fabs(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::traceX, and mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::traceX2.
Referenced by mat::Purification< Treal, Tmatrix, TdebugPolicy >::stepComputeInfo().
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setTimeSquare | ( | float | t | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setTimeThresh | ( | float | t | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setTimeTotal | ( | float | t | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setTimeXmX2Norm | ( | float | t | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setTimeXX2Read | ( | float | t | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setTimeXX2Write | ( | float | t | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setTraceX | ( | Treal const | trX | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setTraceX2 | ( | Treal const | trX2 | ) | [inline] |
void mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setXmX2EuclNorm | ( | Interval< Treal > const | XmX2eucl | ) | [inline] |
Sets XmX2EuclNorm bounds.
Referenced by mat::Purification< Treal, Tmatrix, TdebugPolicy >::stepComputeInfo().
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::subspaceError | ( | ) | const [inline] |
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::actualThresh [protected] |
Actual threshold value applied before step.
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::exchangeInfoWithNext(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getActualThresh(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::setActualThresh(), and mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::subspaceError().
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::chosenThresh [protected] |
Chosen threshold value applied before step.
Referenced by mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getChosenThresh(), and mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::setChosenThresh().
int mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::correctOccupation [protected] |
Takes the values: 1 meaning all eigenvalues supposed to go to 1 are larger than 0.5 and all eigenvalues supposed to go to 0 are smaller than 0.5 for sure.
0 otherwise
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computen0n1(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getCorrectOccupation(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveHomoLumo(), and mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::setCorrectOccupation().
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::delta [protected] |
Largest possible deviation from the [0 1] interval.
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computen0n1(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getDelta(), and mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveEigInterval().
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::eigAccLoss [protected] |
A probable upper bound of the accuracy that is lost in the eigenvalues of X * X because of limited relative precision in the storage of X.
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computeEigAccLoss(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::exchangeInfoWithNext(), and mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getEigAccLoss().
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::eigConvCrit [protected] |
Tolerated deviation from 0 and 1 of converged eigenvalues.
Referenced by mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::converged().
Interval<Treal> mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::eigInterval [protected] |
Interval containing the eigenvalue spectrum.
Referenced by mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::checkIntervals(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::exchangeInfoWithNext(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getEigInterval(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveEigInterval(), and mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveHomoLumo().
Tvector* mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::eigVecPtr [protected] |
Eigenvector possibly containing the homo or lumo eigenvector.
Referenced by mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getEigVecPtr(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveHomoLumo(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::setEigVecPtr(), and mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::~PuriStepInfo().
int mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::estimatedStepsLeft [protected] |
Estimated steps left in purification.
Used to chose threshold. -1 indicates no estimation possible.
Referenced by mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getEstimatedStepsLeft(), and mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::setEstimatedStepsLeft().
Interval<Treal> mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::homo [protected] |
Interval containing the homo eigenvalue.
Referenced by mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::checkIntervals(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::converged(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::exchangeInfoWithNext(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getHomo(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::homoIsAccuratelyKnown(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveHomoLumo(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setPoly(), and mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::subspaceError().
bool mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::homoWasComputed [protected] |
Flag indicating if homo was computed.
Referenced by mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getHomoWasComputed(), and mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveHomoLumo().
Interval<Treal> mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::lumo [protected] |
Interval containing the lumo eigenvalue.
Referenced by mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::checkIntervals(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::converged(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::exchangeInfoWithNext(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getLumo(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveHomoLumo(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::lumoIsAccuratelyKnown(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setPoly(), and mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::subspaceError().
bool mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::lumoWasComputed [protected] |
Flag indicating if lumo was computed.
(Eigenvector exists.)
Referenced by mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getLumoWasComputed(), and mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveHomoLumo().
MemUsage::Values mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::memUsageBeforeTrunc [protected] |
MemUsage::Values mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::memUsageInXmX2Diff [protected] |
int mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::n [protected] |
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::n0 [protected] |
Lower bound on the number of eigenvalues in [lambdaMin, 0.5].
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computen0n1(), and mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getN0().
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::n1 [protected] |
Lower bound on the number of eigenvalues in [0.5, 1 + delta].
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computen0n1(), and mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getN1().
size_t mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::nnzX [protected] |
Number of nonzeros in the matrix X.
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computeEigAccLoss(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getNnzX(), and mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::setNnzX().
size_t mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::nnzX2 [protected] |
Number of nonzeros in the matrix X2.
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computeEigAccLoss(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getNnzX2(), and mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::setNnzX2().
int mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::nocc [protected] |
Number of occupied orbitals.
Referenced by mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::computeExactValues(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computen0n1(), and mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setPoly().
int mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::poly [protected] |
Choice of polynomial 0 for x^2 and 1 for 2 * x - x^2.
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::exchangeInfoWithNext(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getPoly(), and mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setPoly().
float mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::timeSquare [protected] |
float mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::timeThresh [protected] |
float mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::timeTotal [protected] |
float mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::timeXmX2Norm [protected] |
float mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::timeXX2Read [protected] |
float mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::timeXX2Write [protected] |
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::traceX [protected] |
Trace of the matrix X.
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computen0n1(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getTraceX(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setPoly(), and mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::setTraceX().
Treal mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::traceX2 [protected] |
Trace of the squared matrix X^2.
Referenced by mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computen0n1(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getTraceX2(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::setPoly(), and mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::setTraceX2().
Interval<Treal> mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::XmX2EuclNorm [protected] |
Interval containing the euclidean norm ||X-X^2||_2 before step.
Referenced by mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::checkIntervals(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::computen0n1(), mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::getXmX2EuclNorm(), mat::PuriStepInfo< Treal, Tvector, TdebugPolicy >::improveHomoLumo(), and mat::PuriStepInfo< Treal, VectorType, TdebugPolicy >::setXmX2EuclNorm().