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