Erfc.h

Go to the documentation of this file.
00001 /* -*- mode: c++ -*- */
00002 
00011 #ifndef _Erfc_H_
00012 #define _Erfc_H_
00013 
00014 #include "FunctionBase.h"
00015 
00016 namespace hippodraw {
00017 
00044 class MDL_HIPPOPLOT_API Erfc : public FunctionBase
00045 {
00046  private:
00047   enum{MEAN,SIGMA,NORM};
00048 
00049  protected:
00051   virtual void initialize();
00052 
00053  public:
00055   Erfc ();
00056   
00058   Erfc ( double mean, double sigma, double norm );
00059   
00060   virtual FunctionBase * clone () const;
00061   
00063   virtual double operator () ( double x ) const;
00064   
00065   virtual void initialParameters ( const FunctionHelper * helper );
00066   
00067   //Help functions:
00068   double calcErfc(double x) const;
00069 
00070  protected:
00071   virtual double derivByParm ( int i, double x ) const;
00072 
00073   double derivByRed ( double value) const;
00074 
00075 private:
00077   inline double calcRed(double value) const 
00078   {
00079     if(m_parms[SIGMA] == 0.0) {
00080       Erfc * p = const_cast < Erfc * > ( this );
00081       p->m_parms[SIGMA] = 0.0001; //dummy lower value
00082     }
00083 
00084     return (value - m_parms[MEAN])/m_parms[SIGMA];
00085   }
00086 
00087 
00088 
00089 };
00090 
00091 } // namespace hippodraw
00092 
00093 #endif// _Erfc_H_

Generated for HippoDraw Class Library by doxygen