00001 // QMcBeaver 00002 // 00003 // Constructed by 00004 // 00005 // Michael Todd Feldmann 00006 // and 00007 // David Randall "Chip" Kent IV 00008 // 00009 // Copyright 2000. All rights reserved. 00010 // 00011 // drkent@users.sourceforge.net mtfeldmann@users.sourceforge.net 00012 00013 #ifndef QMCCorrelationFunction_H 00014 #define QMCCorrelationFunction_H 00015 00016 #include "Array1D.h" 00017 #include "Complex.h" 00018 00028 class QMCCorrelationFunction 00029 { 00030 public: 00034 virtual ~QMCCorrelationFunction(){}; 00035 00041 virtual void initializeParameters(Array1D<int> & 00042 BeginningIndexOfParameterType, 00043 Array1D<double> &Parameters, 00044 Array1D<int> & BeginningIndexOfConstantType, 00045 Array1D<double> &Constants) = 0; 00046 00051 virtual bool isSingular() = 0; 00052 00056 virtual Array1D<Complex> getPoles() = 0; 00057 00062 virtual void evaluate( double r ) = 0; 00063 00067 virtual double getFunctionValue() = 0; 00068 00073 virtual double getFunctionValue(double r) = 0; 00074 00078 virtual double get_p_a(int ai) = 0; 00079 00084 virtual double getFirstDerivativeValue() = 0; 00085 00089 virtual double get_p2_xa(int ai) = 0; 00090 00095 virtual double getSecondDerivativeValue() = 0; 00096 00100 virtual double get_p3_xxa(int ai) = 0; 00101 00105 virtual Array1D<double> getNumeratorCoeffs() = 0; 00106 00110 virtual Array1D<double> getDenominatorCoeffs() = 0; 00111 00117 virtual void print(ostream& strm){} 00118 }; 00119 00120 00121 #endif 00122 00123 00124 00125 00126