FunctionBase.h

Go to the documentation of this file.
00001 /* -*- mode: c++ -*- */
00002 
00014 #ifndef _FunctionBase_H_
00015 #define _FunctionBase_H_
00016 
00017 #include "pattern/libhippo.h"
00018 
00019 #include <string>
00020 #include <vector>
00021 
00022 namespace hippodraw {
00023 
00024 class FunctionHelper;
00025 
00090 class MDL_HIPPOPLOT_API FunctionBase
00091 {
00092 
00093 protected:
00094 
00096   FunctionBase ();
00097 
00100   FunctionBase ( const FunctionBase & );
00101 
00103   std::string m_name;
00104 
00106   std::vector<std::string> m_parm_names;
00107 
00109   std::vector < double > m_parms;
00110 
00117   std::vector < int > m_fixed_flags;
00118 
00119 
00122   void setName ( const char * );
00123 
00128   virtual void resize ();
00129 
00137   virtual void initialize ();
00138   
00139  public:
00140 
00141   
00143   virtual ~FunctionBase();
00144 
00146   const std::string & name () const;
00147 
00155   virtual FunctionBase * clone () const;
00156 
00158   virtual int size () const;
00159 
00161   virtual const std::vector < std::string > & parmNames ( ) const;
00162 
00165   void setParmNames ( const std::vector < std::string > & names );
00166 
00170   virtual bool isComposite () const;
00171 
00175   virtual void addToComposite ( FunctionBase * );
00176 
00180   virtual void removeFromComposite ( FunctionBase * );
00181 
00185   virtual int count ();
00186 
00190   virtual const std::vector< double > & getParameters () const;
00191 
00194   virtual const std::vector < int > & getFixedFlags () const;
00195 
00198   virtual void setFixedFlags ( const std::vector < int > & flags );
00199 
00200 
00201   virtual std::vector < int > :: const_iterator
00202     setFixedFlags ( std::vector < int > ::const_iterator it );
00203 
00208   virtual void setParameters ( const std::vector< double > & incr );
00209 
00213   virtual std::vector< double >::const_iterator 
00214   setParameters ( std::vector< double >::const_iterator it );
00215 
00227   virtual double derivByParm ( int i, double x ) const;
00228 
00233   virtual double operator() ( double x ) const;
00234 
00240   virtual double operator () ( const std::vector < double > & v ) const;
00241 
00244   virtual void initialParameters ( const FunctionHelper * helper );
00245 
00253   virtual bool hasDerivatives () const;
00254 
00260   virtual double integrate ( double lower_limit, double upper_limit ) const;
00261 
00267   virtual unsigned int dimensions () const;
00268 
00269 };
00270 
00271 } // namespace hippodraw
00272 
00273 #endif // _FunctionBase_H_

Generated for HippoDraw Class Library by doxygen