LR Namespace Reference


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)
VarVectoroperator+= (VarVector &a, const VarVectorProxyOp< false, false > &proxy)
VarVectoroperator+= (VarVector &a, const VarVectorProxyOp< true, false > &proxy)
VarVectoroperator+= (VarVector &a, const VarVectorProxyOp< false, true > &proxy)
VarVectoroperator+= (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]


Function Documentation

ergo_real LR::dot ( int  len,
const ergo_real a,
const ergo_real b 
) [inline]

returns dot_product(a, b)

ergo_real LR::operator * ( const VarVector &  a,
const VarVector &  b 
) [inline]

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]

template<bool MultByS, bool SwapXY>
VarVectorProxyOp<MultByS, SwapXY> LR::operator * ( ergo_real  s,
const VarVectorProxyOp< MultByS, SwapXY > &  v 
) [inline]

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]

const VarVectorProxyOp<false,true> LR::swapXY ( const VarVector &  arg  ) 

returns a proxy object corresponding to a swapped vector.

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.

template<bool SwapXY>
VarVectorProxyOp<true, SwapXY> LR::sTimes ( const VarVectorProxyOp< false, SwapXY > &  arg  ) 

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.

static void LR::commuteWithDMO ( int  nbast,
int  nocc,
ergo_real mat 
) [static]

mat := [mat, D_MO]

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]

static void LR::commute ( int  nbast,
const ergo_real a,
const ergo_real b,
ergo_real  f,
ergo_real res 
) [static]

res := f*res + [a, b]


Generated on Mon Sep 17 14:30:42 2012 for ergo by  doxygen 1.4.7