ergo
|
Classes | |
class | VarVectorProxyOp |
template based proxy object that uses bool-valued policies to perform the assignments. More... | |
class | VarVector |
Vector of variables parametrising the solution to the linear response equations. More... | |
class | E2Evaluator |
E2Evaluator interface provides a way to perform a linear transformation of supplied transition density matrix. More... | |
class | VarVectorCollection |
a collection of vectors, usually handled at once. More... | |
class | OneElOperator |
Abstract interface to a one electron operator. More... | |
class | SmallMatrix |
a class implementing dynamic resized two dimensional arrays. More... | |
class | LRSolver |
Linear Response iterative solver using a variant of the Davidson method. More... | |
class | SetOfEqSolver |
Iterative Set Of Linear Equations solver, extending the generic LRSolver. More... | |
class | EigenSolver |
Iterative Eigenvalue solver, extending the generic LRSolver. More... | |
Functions | |
ergo_real | dot (int len, const ergo_real *a, const ergo_real *b) |
returns dot_product(a, b) | |
ergo_real | operator* (const VarVector &a, const VarVector &b) |
ergo_real | operator* (const VarVector &a, const VarVectorProxyOp< false, false > &b) |
ergo_real | operator* (const VarVector &a, const VarVectorProxyOp< true, false > &b) |
ergo_real | operator* (const VarVector &a, const VarVectorProxyOp< false, true > &b) |
VarVectorProxyOp< false, false > | operator* (ergo_real s, const VarVector &v) |
template<bool MultByS, bool SwapXY> | |
VarVectorProxyOp< MultByS, SwapXY > | operator* (ergo_real s, const VarVectorProxyOp< MultByS, SwapXY > &v) |
VarVector & | operator+= (VarVector &a, const VarVectorProxyOp< false, false > &proxy) |
VarVector & | operator+= (VarVector &a, const VarVectorProxyOp< true, false > &proxy) |
VarVector & | operator+= (VarVector &a, const VarVectorProxyOp< false, true > &proxy) |
VarVector & | operator+= (VarVector &a, const VarVectorProxyOp< true, true > &proxy) |
const VarVectorProxyOp< false, true > | swapXY (const VarVector &arg) |
returns a proxy object corresponding to a swapped vector. | |
const VarVectorProxyOp< true, false > | sTimes (const VarVector &arg) |
returns a proxy object corresponding to a vector multiplied by S[2], i.e. | |
template<bool SwapXY> | |
VarVectorProxyOp< true, SwapXY > | sTimes (const VarVectorProxyOp< false, SwapXY > &arg) |
static void | precondition (VarVector &v, const VarVector &e2diag, ergo_real shift) |
pre-condition a vector given an approximation of the E[2] operator diagonal and a shift of the S[2] operator. | |
static void | commuteWithDMO (int nbast, int nocc, ergo_real *mat) |
mat := [mat, D_MO] | |
static void | gemm (int n, const char *at, const ergo_real *a, const char *bt, const ergo_real *b, ergo_real alpha, ergo_real beta, ergo_real *c) |
static void | commute (int nbast, const ergo_real *a, const ergo_real *b, ergo_real f, ergo_real *res) |
res := f*res + [a, b] |
static void LR::commuteWithDMO | ( | int | nbast, |
int | nocc, | ||
ergo_real * | mat | ||
) | [static] |
mat := [mat, D_MO]
Referenced by LR::LRSolver::lintrans(), LR::LRSolver::operToVec(), and LR::SetOfEqSolver::setRHS().
returns dot_product(a, b)
Referenced by operator*(), LR::VarVector::symorth(), LR::LRSolver::addToSpace(), LR::LRSolver::projectOnSubspace(), LR::SetOfEqSolver::addToSpace(), LR::EigenSolver::getResidual(), and LR::EigenSolver::computeMoments().
static void LR::gemm | ( | int | n, |
const char * | at, | ||
const ergo_real * | a, | ||
const char * | bt, | ||
const ergo_real * | b, | ||
ergo_real | alpha, | ||
ergo_real | beta, | ||
ergo_real * | c | ||
) | [inline, static] |
Referenced by commute(), LR::LRSolver::mo2ao(), and LR::LRSolver::ao2mo().
ergo_real LR::operator* | ( | const VarVector & | a, |
const VarVector & | b | ||
) | [inline] |
References LR::VarVector::nvar, LR::VarVector::inMemory, dot(), and LR::VarVector::v.
ergo_real LR::operator* | ( | const VarVector & | a, |
const VarVectorProxyOp< false, false > & | b | ||
) | [inline] |
ergo_real LR::operator* | ( | const VarVector & | a, |
const VarVectorProxyOp< true, false > & | b | ||
) | [inline] |
ergo_real LR::operator* | ( | const VarVector & | a, |
const VarVectorProxyOp< false, true > & | b | ||
) | [inline] |
VarVectorProxyOp<false, false> LR::operator* | ( | ergo_real | s, |
const VarVector & | v | ||
) | [inline] |
VarVectorProxyOp<MultByS, SwapXY> LR::operator* | ( | ergo_real | s, |
const VarVectorProxyOp< MultByS, SwapXY > & | v | ||
) | [inline] |
References LR::VarVectorProxyOp::vec, and LR::VarVectorProxyOp::scalar.
VarVector& LR::operator+= | ( | VarVector & | a, |
const VarVectorProxyOp< false, false > & | proxy | ||
) | [inline] |
VarVector& LR::operator+= | ( | VarVector & | a, |
const VarVectorProxyOp< true, false > & | proxy | ||
) | [inline] |
VarVector& LR::operator+= | ( | VarVector & | a, |
const VarVectorProxyOp< false, true > & | proxy | ||
) | [inline] |
VarVector& LR::operator+= | ( | VarVector & | a, |
const VarVectorProxyOp< true, true > & | proxy | ||
) | [inline] |
static void LR::precondition | ( | VarVector & | v, |
const VarVector & | e2diag, | ||
ergo_real | shift | ||
) | [static] |
pre-condition a vector given an approximation of the E[2] operator diagonal and a shift of the S[2] operator.
References LR::VarVector::nvar, LR::VarVector::x(), LR::VarVector::y(), and LR::VarVector::onDisk.
Referenced by LR::LRSolver::addToSpace().
const VarVectorProxyOp<true,false> LR::sTimes | ( | const VarVector & | arg | ) |
returns a proxy object corresponding to a vector multiplied by S[2], i.e.
v -> S[2]*v.
Referenced by LR::LRSolver::addToSpace(), and LR::LRSolver::getAvMinusFreqSv().
VarVectorProxyOp<true, SwapXY> LR::sTimes | ( | const VarVectorProxyOp< false, SwapXY > & | arg | ) |
References LR::VarVectorProxyOp::vec, and LR::VarVectorProxyOp::scalar.
const VarVectorProxyOp<false,true> LR::swapXY | ( | const VarVector & | arg | ) |
returns a proxy object corresponding to a swapped vector.
Referenced by LR::LRSolver::addToSpace(), and LR::LRSolver::getAvMinusFreqSv().