00001 #ifndef Williamson2CorrelationFunction_H
00002 #define Williamson2CorrelationFunction_H
00003
00004 #include "FixedCuspPadeCorrelationFunction.h"
00005
00010 class Williamson2CorrelationFunction : public FixedCuspPadeCorrelationFunction
00011 {
00012 private:
00013 double g, A, A2, F, A2F, s2g;
00014
00015 double B;
00016 double r,x,L;
00017
00018
00019 double yuk, dyuk, d2yuk;
00020 double dyuk_a, d2yuk_a, d3yuk_a;
00021 double ir, t1, t2;
00022
00023 double temper, dtemper, d2temper;
00024
00025 double dG_a, dG_xa, dG_xxa;
00026 double pre, dpre, d2pre;
00027
00028 int n;
00029 double xbar, dxbar, d2xbar;
00030 double sum_Tn, sum_dTn, sum_d2Tn;
00031 Array1D<double> Tn;
00032 Array1D<double> dTn;
00033 Array1D<double> d2Tn;
00034 Array1D<double> co;
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 double get_p_a(int ai);
00044 double get_p2_xa(int ai);
00045 double get_p3_xxa(int ai);
00046
00047 void ChebyshevT_old(int n, double x, double &y, double &dy, double &d2y);
00048 void ChebyshevT(int n, double x, double &y, double &dy, double &d2y);
00049 bool isSingular();
00050
00051 void print(ostream& strm);
00052 };
00053
00054 #endif