source: Sophya/trunk/SophyaLib/NTools/fct1dfit.h@ 220

Last change on this file since 220 was 220, checked in by ansari, 26 years ago

Creation module DPC/NTools Reza 09/04/99

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