00001
00002
00014 #ifndef _Gaussian_H_
00015 #define _Gaussian_H_
00016
00017 #include "FunctionBase.h"
00018
00019 namespace hippodraw {
00020
00031 class MDL_HIPPOPLOT_API Gaussian : public FunctionBase
00032 {
00033
00034 private:
00035
00038 enum { norm = 0, mean = 1, sigma = 2 };
00039
00040 protected:
00041
00043 virtual void initialize ();
00044
00045 public:
00046
00048 Gaussian ();
00049
00051 Gaussian ( double norm, double mean, double sigma );
00052
00053 virtual FunctionBase * clone () const;
00054
00056 virtual double operator () ( double x ) const;
00057
00058 virtual void initialParameters ( const FunctionHelper * helper );
00059
00060 protected:
00061
00062 virtual double derivByParm ( int i, double x ) const;
00063
00064 private:
00065
00068 double derivByNorm ( double x ) const;
00069
00072 double derivByMean ( double x ) const;
00073
00076 double derivBySigma ( double x ) const;
00077
00078 };
00079
00080 }
00081
00082 #endif // _Gaussian_H_