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