source: Sophya/trunk/SophyaLib/NTools/generalfunc.h@ 4044

Last change on this file since 4044 was 3083, checked in by cmv, 19 years ago

extraction de GeneralFunction+ GeneralFunc de generalfit.h,cc -> generalfunc.h,cc cmv 19/09/2006

File size: 2.0 KB
Line 
1// This may look like C code, but it is really -*- C++ -*-
2#ifndef GENERALFUNC_SEEN
3#define GENERALFUNC_SEEN
4
5namespace SOPHYA {
6
7//================================================================
8// GeneralFunction
9//================================================================
10
11//! Classe de fonctions parametrees a plusieurs variables
12class GeneralFunction {
13public:
14 GeneralFunction(unsigned int nVar, unsigned int nPar);
15 virtual ~GeneralFunction();
16
17 //! Valeur de la fonction a definir par l'utilisateur (fct virtuelle pure)
18 virtual double Value(double const xp[], double const* parm)=0;
19 //! Valeur de la fonction derivee selon les parametres pouvant etre redefinie
20 virtual double Val_Der(double const xp[], double const* parm
21 , double* DgDpar);
22
23 void SetDeltaParm(int numPar, double delta=0.);
24 void SetDeltaParm(double const* dparam);
25
26 //! Retourne le nombre de variables Xi
27 inline int NVar() const {return mNVar;}
28 //! Retourne le nombre de parametres Ai
29 inline int NPar() const {return mNPar;}
30
31protected:
32 const int mNVar; //!< nombre de variables f(x,y,z,...)
33 const int mNPar; //!< nombre de parametres
34
35 double *deltaParm;
36 double *tmpParm;
37};
38
39//================================================================
40// GeneralFunc
41//================================================================
42
43//! Classe de fonctions parametrees a plusieurs variables type C
44class GeneralFunc : public GeneralFunction {
45public:
46 GeneralFunc(unsigned int nvar, unsigned int npar
47 ,double (*fun)(double const*,double const*)
48 ,double (*funder)(double const*, double const*, double*)=NULL);
49 virtual ~GeneralFunc();
50
51 virtual double Value(double const xp[], double const* Par);
52 virtual double Val_Der(double const xp[],double const* parm
53 , double* DgDpar);
54
55protected:
56 double (*tmpFun) (double const*, double const*);
57 double (*tmpFunDer)(double const*, double const*, double*);
58};
59
60} // Fin du namespace
61
62#endif
Note: See TracBrowser for help on using the repository browser.