00001 /* -*- mode: c++ -*- */ 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 protected: 00035 00037 virtual void initialize (); 00038 00039 public: 00040 00042 Gaussian (); 00043 00045 Gaussian ( double norm, double mean, double sigma ); 00046 00047 virtual FunctionBase * clone () const; 00048 00050 virtual double operator () ( double x ) const; 00051 00052 virtual void initialParameters ( const FunctionHelper * helper ); 00053 00054 protected: 00055 00056 virtual double derivByParm ( int i, double x ) const; 00057 00058 private: 00059 00062 double derivByNorm ( double x ) const; 00063 00066 double derivByMean ( double x ) const; 00067 00070 double derivBySigma ( double x ) const; 00071 00072 }; 00073 00074 } // namespace hippodraw 00075 00076 #endif // _Gaussian_H_