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 PadeCorrelationFunction_H 00014 #define PadeCorrelationFunction_H 00015 00016 #include "QMCCorrelationFunction.h" 00017 #include "QMCPolynomial.h" 00018 00019 00026 class PadeCorrelationFunction : public QMCCorrelationFunction 00027 { 00028 private: 00029 Polynomial Numerator; 00030 QMCPolynomial Denominator; 00031 double FunctionValue; 00032 double dFunctionValue; 00033 double d2FunctionValue; 00034 00035 public: 00036 00037 void initializeParameters(Array1D<int> & BeginningIndexOfParameterType, 00038 Array1D<double> &Parameters, 00039 Array1D<int> & BeginningIndexOfConstantType, 00040 Array1D<double> & Constants); 00041 00042 void evaluate( double r ); 00043 00044 bool isSingular(); 00045 00046 Array1D<Complex> getPoles(); 00047 00048 double getFunctionValue(); 00049 double getFunctionValue(double r); 00050 00051 double get_p_a(int ai); 00052 00053 double getFirstDerivativeValue(); 00054 double get_p2_xa(int ai); 00055 00056 double getSecondDerivativeValue(); 00057 double get_p3_xxa(int ai); 00058 00059 Array1D<double> getNumeratorCoeffs(); 00060 00061 Array1D<double> getDenominatorCoeffs(); 00062 }; 00063 00064 #endif