| [220] | 1 | #ifndef FCT1DFIT_SEEN
 | 
|---|
 | 2 | #define FCT1DFIT_SEEN
 | 
|---|
 | 3 | 
 | 
|---|
 | 4 | #include "generalfit.h"
 | 
|---|
 | 5 | 
 | 
|---|
| [552] | 6 | namespace SOPHYA {
 | 
|---|
| [307] | 7 | 
 | 
|---|
| [220] | 8 | //================================================================
 | 
|---|
 | 9 | // CLASSES DE FONCTIONS 1D AVEC PARAMETRES POUR LE FIT
 | 
|---|
 | 10 | //================================================================
 | 
|---|
 | 11 | 
 | 
|---|
 | 12 | //////////////////////////////////////////////////////////////////
 | 
|---|
 | 13 | class Gauss1DPol : public GeneralFunction {
 | 
|---|
 | 14 | public:
 | 
|---|
 | 15 |   Gauss1DPol(unsigned int ndegpol,bool polcenter=false);
 | 
|---|
 | 16 |   Gauss1DPol(bool polcenter=false);
 | 
|---|
 | 17 |   virtual ~Gauss1DPol();
 | 
|---|
 | 18 | 
 | 
|---|
 | 19 |   virtual double Value(double const xp[], double const* Par);
 | 
|---|
 | 20 |   virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
 | 
|---|
 | 21 | 
 | 
|---|
 | 22 |   inline int NDegP() const {return NDegPol;}
 | 
|---|
 | 23 | 
 | 
|---|
 | 24 | protected:
 | 
|---|
 | 25 |   int NDegPol;    // degre du polynome
 | 
|---|
 | 26 |   bool PolCenter; // centrage du polynome
 | 
|---|
 | 27 | };
 | 
|---|
 | 28 | 
 | 
|---|
 | 29 | //////////////////////////////////////////////////////////////////
 | 
|---|
 | 30 | class GaussN1DPol : public GeneralFunction {
 | 
|---|
 | 31 | public:
 | 
|---|
 | 32 |   GaussN1DPol(unsigned int ndegpol,bool polcenter=false);
 | 
|---|
 | 33 |   GaussN1DPol(bool polcenter=false);
 | 
|---|
 | 34 |   virtual ~GaussN1DPol();
 | 
|---|
 | 35 | 
 | 
|---|
 | 36 |   virtual double Value(double const xp[], double const* Par);
 | 
|---|
 | 37 |   virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
 | 
|---|
 | 38 | 
 | 
|---|
 | 39 |   inline int NDegP() const {return NDegPol;}
 | 
|---|
 | 40 | 
 | 
|---|
 | 41 | protected:
 | 
|---|
 | 42 |   int NDegPol;    // degre du polynome
 | 
|---|
 | 43 |   bool PolCenter; // centrage du polynome
 | 
|---|
 | 44 | };
 | 
|---|
 | 45 | 
 | 
|---|
 | 46 | //////////////////////////////////////////////////////////////////
 | 
|---|
 | 47 | class Exp1DPol : public GeneralFunction {
 | 
|---|
 | 48 | public:
 | 
|---|
 | 49 |   Exp1DPol(unsigned int ndegpol,double x0=0.);
 | 
|---|
 | 50 |   Exp1DPol(double x0=0.);
 | 
|---|
 | 51 |   virtual ~Exp1DPol();
 | 
|---|
 | 52 | 
 | 
|---|
 | 53 |   virtual double Value(double const xp[], double const* Par);
 | 
|---|
 | 54 |   virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
 | 
|---|
 | 55 | 
 | 
|---|
 | 56 |   inline int NDegP() const {return NDegPol;}
 | 
|---|
 | 57 |   inline double XCenter() {return X_Center;}
 | 
|---|
 | 58 | 
 | 
|---|
 | 59 | protected:
 | 
|---|
 | 60 |   int NDegPol;     // degre du polynome
 | 
|---|
 | 61 |   double X_Center; // Centrage en X pour stabilitee
 | 
|---|
 | 62 | };
 | 
|---|
 | 63 | 
 | 
|---|
 | 64 | //////////////////////////////////////////////////////////////////
 | 
|---|
 | 65 | class Polyn1D : public GeneralFunction {
 | 
|---|
 | 66 | public:
 | 
|---|
 | 67 |   Polyn1D(unsigned int ndegpol,double x0=0.);
 | 
|---|
 | 68 |   virtual ~Polyn1D();
 | 
|---|
 | 69 | 
 | 
|---|
 | 70 |   virtual double Value(double const xp[], double const* Par);
 | 
|---|
 | 71 |   virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
 | 
|---|
 | 72 | 
 | 
|---|
 | 73 |   inline int NDegP() const {return NDegPol;}
 | 
|---|
 | 74 |   inline double XCenter() {return X_Center;}
 | 
|---|
 | 75 | 
 | 
|---|
 | 76 | protected:
 | 
|---|
 | 77 |   int NDegPol;     // degre du polynome
 | 
|---|
 | 78 |   double X_Center; // Centrage en X pour stabilitee
 | 
|---|
 | 79 | };
 | 
|---|
 | 80 | 
 | 
|---|
 | 81 | //////////////////////////////////////////////////////////////////
 | 
|---|
 | 82 | class HarmonieNu : public GeneralFunction {
 | 
|---|
 | 83 | public:
 | 
|---|
 | 84 |   HarmonieNu(unsigned int nharm=0, double t0=0.);
 | 
|---|
 | 85 |   virtual ~HarmonieNu();
 | 
|---|
 | 86 | 
 | 
|---|
 | 87 |   virtual double Value(double const xp[], double const* Par);
 | 
|---|
 | 88 |   virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
 | 
|---|
 | 89 | 
 | 
|---|
 | 90 |   inline int NHarmonic()  {return NHarm;}
 | 
|---|
 | 91 |   inline double  T0Center() const {return T0;}
 | 
|---|
 | 92 |   inline double& T0Center()       {return T0;}
 | 
|---|
 | 93 | 
 | 
|---|
 | 94 | protected:
 | 
|---|
 | 95 |   int NHarm;
 | 
|---|
 | 96 |   double T0;
 | 
|---|
 | 97 | };
 | 
|---|
 | 98 | 
 | 
|---|
 | 99 | //////////////////////////////////////////////////////////////////
 | 
|---|
 | 100 | class HarmonieT : public GeneralFunction {
 | 
|---|
 | 101 | public:
 | 
|---|
 | 102 |   HarmonieT(unsigned int nharm=0, double t0=0.);
 | 
|---|
 | 103 |   virtual ~HarmonieT();
 | 
|---|
 | 104 | 
 | 
|---|
 | 105 |   virtual double Value(double const xp[], double const* Par);
 | 
|---|
 | 106 |   virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
 | 
|---|
 | 107 | 
 | 
|---|
 | 108 |   inline int NHarmonic()  {return NHarm;}
 | 
|---|
 | 109 |   inline double  T0Center() const {return T0;}
 | 
|---|
 | 110 |   inline double& T0Center()       {return T0;}
 | 
|---|
 | 111 | 
 | 
|---|
 | 112 | protected:
 | 
|---|
 | 113 |   int NHarm;
 | 
|---|
 | 114 |   double T0;
 | 
|---|
 | 115 | };
 | 
|---|
 | 116 | 
 | 
|---|
 | 117 | //================================================================
 | 
|---|
 | 118 | // CLASSES DE FONCTIONS 2D AVEC PARAMETRES POUR LE FIT
 | 
|---|
 | 119 | //================================================================
 | 
|---|
 | 120 | 
 | 
|---|
 | 121 | //////////////////////////////////////////////////////////////////
 | 
|---|
 | 122 | class Polyn2D : public GeneralFunction {
 | 
|---|
 | 123 | public:
 | 
|---|
 | 124 |   Polyn2D(unsigned int ndegpol,double x0=0.,double y0=0.);
 | 
|---|
 | 125 |   virtual ~Polyn2D();
 | 
|---|
 | 126 | 
 | 
|---|
 | 127 |   virtual double Value(double const xp[], double const* Par);
 | 
|---|
 | 128 |   virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
 | 
|---|
 | 129 | 
 | 
|---|
 | 130 |   inline int NDegP() const {return NDegPol;}
 | 
|---|
 | 131 | 
 | 
|---|
 | 132 | protected:
 | 
|---|
 | 133 |   int NDegPol;     // degre du polynome
 | 
|---|
 | 134 |   double X_Center; // Centrage en X pour stabilitee
 | 
|---|
 | 135 |   double Y_Center; // Centrage en Y pour stabilitee
 | 
|---|
 | 136 | };
 | 
|---|
 | 137 | 
 | 
|---|
| [307] | 138 | } // Fin du namespace
 | 
|---|
 | 139 | 
 | 
|---|
| [220] | 140 | #endif
 | 
|---|