00001 #include "sfunctions.h" 00002 00003 #define SRW 0.47399904792415 00004 class FKrwPiri : public Function1D 00005 { 00006 public: 00007 virtual double operator()(double x,unsigned cmp =0) const 00008 { 00009 double x_2=x*x; 00010 double x_4=x_2*x_2; 00011 double x_6=x_2*x_4; 00012 return (1.056579661240908*(-0.17420798*x_6+0.25217257*x_4-0.019746546*x_2-0.0063170828))/(1.0030111*x_6-7.6192155*x_4+10.027664*x_2-4.3566221*x+1); 00013 } 00014 FKrwPiri(){} 00015 virtual ~FKrwPiri(){} 00016 }; 00017 00018 class DFKrwPiri : public Function1D 00019 { 00020 public: 00021 DFKrwPiri(){} 00022 virtual ~DFKrwPiri(){} 00023 00024 virtual double operator()(double x,unsigned cmp =0) const 00025 { 00026 if (x <= SRW) 00027 return 0; 00028 double x_2=x*x; 00029 double x_3=x_2*x; 00030 double x_4=x_3*x; 00031 double x_5=x_4*x; 00032 double x_6=x_5*x; 00033 double denom=(1.0030111*x_6-7.6192155*x_4+10.027664*x_2-4.3566221*x+1); 00034 return (1.056579661240908*(-1.04524788*x_5+1.00869028*x_3-0.039493092*x))/denom - (1.056579661240908*(6.018066599999999*x_5-30.476862*x_3+20.055328*x-4.3566221)*(-0.17420798*x_6+0.25217257*x_4-0.019746546*x_2-0.0063170828))/(denom*denom); 00035 } 00036 }; 00037 00038 00039 00040 00041 class FKrcPiri : public Function1D 00042 { 00043 public: 00044 virtual double operator()(double x,unsigned cmp =0) const 00045 { 00046 if (x <= SRW) 00047 x=SRW; 00048 double x_2=x*x; 00049 double x_4=x_2*x_2; 00050 double x_6=x_2*x_4; 00051 double x_8=x_2*x_6; 00052 double x_10=x_8*x_2; 00053 return -1.7212298*x_10+3.9501271*x_8-3.5647535*x_6+2.2058758*x_4-1.3020969*x_2+0.4320773; 00054 } 00055 FKrcPiri(){} 00056 virtual ~FKrcPiri(){} 00057 }; 00058 00059 class DFKrcPiri : public Function1D 00060 { 00061 public: 00062 virtual double operator()(double x,unsigned cmp =0) const 00063 { 00064 if (x < SRW) 00065 return 0.0; 00066 double x_2=x*x; 00067 double x_3=x_2*x; 00068 double x_5=x_3*x_2; 00069 double x_7=x_5*x_2; 00070 double x_9=x_7*x_2; 00071 return -17.212298*x_9+31.6010168*x_7-21.388521*x_5+8.823503199999999*x_3-2.6041938*x; 00072 } 00073 DFKrcPiri(){} 00074 virtual ~DFKrcPiri(){} 00075 }; 00076 00077 00078 00079 00080