C++ main module for mmsd Package  1.0
MATH_QuadraticPolynom.h
Go to the documentation of this file.
1 #ifndef MATH_QuadraticPolynom_H
2 #define MATH_QuadraticPolynom_H
3 
4 
5 #include "MATH_Function.h"
6 
7 
15  SP_OBJECT(MATH_QuadraticPolynom);
16 
17 public:
18 
19 
20  // ATTRIBUTES
21 private:
22 
23  //
24  // ASSOCIATIONS
25  tReal mCoef[3];
26 
27 protected:
28  // METHODS
29 
30  // CONSTRUCTORS
31 
34 
35 
36 
37  // DESTRUCTORS
38 
39 
42  virtual ~MATH_QuadraticPolynom(void);
43 
44  // NEW methods
45 
46 public:
49  static inline SP::MATH_QuadraticPolynom New() {
50  SP::MATH_QuadraticPolynom p(new MATH_QuadraticPolynom(),MATH_QuadraticPolynom::Delete());
51  p->setThis(p);
52  return p;
53  };
54 
55 
56 
57  //SET & GET methods
60  void copy(const MATH_QuadraticPolynom& poly);
61 
64  tReal& operator[](const int& i) {
65  ASSERT_IN(i<=2);
66  return mCoef[i];
67  }
70  const tReal& operator[](const int& i) const {
71  ASSERT_IN(i<=2);
72  return mCoef[i];
73  }
74 
75  /* ! \brief solve the eqtion a*x*x+b*x+c=0
76  */
77  template<class T>
78  static void solve(const tReal& a,const tReal& b,const tReal& c,
79  int& n,T solutions[2]);
80 
81  /* ! \brief solve this=0
82  */
83  inline void solve(int& n,long double solutions[2]) const {
84  MATH_QuadraticPolynom::solve<long double>(mCoef[2],mCoef[1],mCoef[0],n,solutions);
85  }
86  /* ! \brief solve this=0
87  */
88  inline void solve(int& n,double solutions[2]) const {
89  MATH_QuadraticPolynom::solve<double>(mCoef[2],mCoef[1],mCoef[0],n,solutions);
90  }
91 
92 
93  //SAVER & LOADER
94 
97  void loadFromUIClass(const UI_Class& mclass);
100  void saveToUIClass(UI_Class& mclass) const;
101 
102  // OTHERS methods
103 
104 
108  virtual tReal computeFunction(const tReal& x) {
109  return ComputeFunction((*this)[2],(*this)[1],(*this)[0],x);
110  }
114  static tReal ComputeFunction(const tReal& a,const tReal& b,const tReal& c,
115  const tReal& x) {
116  return c+x*(b+x*a);
117  }
118 
121  virtual tString toString() const;
122 
123 };
124 #include "MATH_QuadraticPolynom.hpp"
125 #endif
This class describes a function function.
Definition: MATH_Function.h:16
tReal & operator[](const int &i)
the the coeficient of the monome of degre i
Definition: MATH_QuadraticPolynom.h:64
This class describes the main interface class for a soft user interface (R,matlab,python etc...) class.
Definition: UI_Class.h:38
void saveToUIClass(UI_Class &mclass) const
save the class to the backup class
Definition: MATH_QuadraticPolynom.cpp:21
virtual ~MATH_QuadraticPolynom(void)
destroy an trigamma funtion
Definition: MATH_QuadraticPolynom.cpp:10
virtual tString toString() const
return the string representation of the class
Definition: MATH_QuadraticPolynom.cpp:32
void copy(const MATH_QuadraticPolynom &poly)
copy
Definition: MATH_QuadraticPolynom.cpp:28
static tReal ComputeFunction(const tReal &a, const tReal &b, const tReal &c, const tReal &x)
compute the function return
Definition: MATH_QuadraticPolynom.h:114
void loadFromUIClass(const UI_Class &mclass)
load the class from the backup class
Definition: MATH_QuadraticPolynom.cpp:14
#define tString
Definition: types.h:49
const tReal & operator[](const int &i) const
the the coeficient of the monome of degre i
Definition: MATH_QuadraticPolynom.h:70
MATH_QuadraticPolynom(void)
create a trigamma function
Definition: MATH_QuadraticPolynom.cpp:5
void solve(int &n, double solutions[2]) const
Definition: MATH_QuadraticPolynom.h:88
void solve(int &n, long double solutions[2]) const
Definition: MATH_QuadraticPolynom.h:83
static SP::MATH_QuadraticPolynom New()
create a trigamma function
Definition: MATH_QuadraticPolynom.h:49
static void solve(const tReal &a, const tReal &b, const tReal &c, int &n, T solutions[2])
virtual tReal computeFunction(const tReal &x)
compute the function return
Definition: MATH_QuadraticPolynom.h:108
#define tReal
Definition: types.h:18
DEFINE_SPTR(MATH_QuadraticPolynom)
This class describes the quadratic function.
Definition: MATH_QuadraticPolynom.h:14
#define ASSERT_IN(a)
Definition: types.h:96
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:106