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 
00111 
00114   void setName ( const char * );
00115 
00120   virtual void resize ();
00121 
00129   virtual void initialize ();
00130   
00131  public:
00132 
00133   
00135   virtual ~FunctionBase();
00136 
00138   const std::string & name () const;
00139 
00147   virtual FunctionBase * clone () const;
00148 
00150   virtual int size () const;
00151 
00153   virtual const std::vector < std::string > & parmNames ( ) const;
00154 
00157   void setParmNames ( const std::vector < std::string > & names );
00158 
00162   virtual bool isComposite () const;
00163 
00167   virtual void addToComposite ( FunctionBase * );
00168 
00172   virtual void removeFromComposite ( FunctionBase * );
00173 
00177   virtual int count ();
00178 
00182   virtual const std::vector< double > & getParameters () const;
00183 
00188   virtual void setParameters ( const std::vector< double > & incr );
00189 
00193   virtual std::vector< double >::const_iterator 
00194   setParameters ( std::vector< double >::const_iterator it );
00195 
00207   virtual double derivByParm ( int i, double x ) const;
00208 
00213   virtual double operator() ( double x ) const;
00214 
00220   virtual double operator () ( const std::vector < double > & v ) const;
00221 
00224   virtual void initialParameters ( const FunctionHelper * helper );
00225 
00233   virtual bool hasDerivatives () const;
00234 
00240   virtual double integrate ( double lower_limit, double upper_limit ) const;
00241 
00247   virtual unsigned int dimensions () const;
00248 
00249 };
00250 
00251 } // namespace hippodraw
00252 
00253 #endif // _FunctionBase_H_

Generated for HippoDraw Class Library by doxygen