00001 #include "dfpcsquare.h" 00002 #include "numericmethods.h" 00003 00004 00005 DFPcSquare::DFPcSquare(double n,double srw,double sro,double maxPc) 00006 :FPcSquare(n, srw, sro,maxPc) 00007 { 00008 00009 } 00010 00011 double DFPcSquare::operator()(double x,unsigned cmp) const 00012 { 00013 if (x<=m_minS) 00014 return 0; 00015 if (x >= m_maxsw) 00016 return 0; 00017 double dd=x-m_srw; 00018 double d2=1.0-x; 00019 assert(cmp==0); 00020 00021 return -2*m_n*(1.0/(dd*dd*dd) + m_tau/(d2*d2*d2)); 00022 }