LinearSumFunction.h

Go to the documentation of this file.
00001 /* -*- mode: c++ -*- */
00002 
00014 #ifndef _LinearSumFunction_H_
00015 #define _LinearSumFunction_H_
00016 
00017 #include "functions/FunctionBase.h"
00018 
00019 namespace hippodraw {
00020 
00026 class MDL_HIPPOPLOT_API LinearSumFunction : public FunctionBase
00027 {
00028 
00029 private:
00030 
00031   typedef std::vector < FunctionBase * > FunctionList_t;
00032   FunctionList_t m_functions;
00033 
00034 protected:
00035 
00037   virtual void initialize ();
00038 
00039 public:
00040 
00042   LinearSumFunction ( );
00043 
00045   LinearSumFunction ( const LinearSumFunction & );
00046   
00047   virtual FunctionBase * clone () const;
00048   
00049   const std::vector < std::string > & parmNames() const;
00050 
00051   void freeParmNames ( std::vector< std::string > & names ) const;
00052   
00053   virtual const std::vector< double > & getParameters () const;
00054   
00055   virtual const std::vector < int > & getFixedFlags () const;
00056 
00057   virtual std::vector< double >::const_iterator 
00058   setParameters ( std::vector< double >::const_iterator it );
00059   
00062   virtual int count ();
00063   
00064   virtual int size () const;
00065 
00067   virtual bool isComposite () const;
00068   
00070   virtual void addToComposite ( FunctionBase * );
00071   
00073   virtual void removeFromComposite ( FunctionBase * );
00074   
00076   virtual double operator () ( double x ) const;
00077 
00078   virtual void initialParameters ( const FunctionHelper * helper );
00079 
00080   virtual double derivByParm ( int i, double x ) const;
00081 
00082 };
00083 
00084 } // namespace hippodraw
00085 
00086 #endif // _LinearSumFunction_H_

Generated for HippoDraw Class Library by doxygen