NonlinearFunction.h

00001 
00004 #ifndef _NonlinearFunction_h
00005 #define _NonlinearFunction_h
00006 
00007 
00008 // SYSTEM INCLUDES
00009 //
00010 
00011 // PROJECT INCLUDES
00012 //
00013 
00014 // LOCAL INCLUDES
00015 //
00016 #include "FunctionBase.h"
00017 #include "FunctionTree.h"
00018 #include "VariableNames.h"
00019 
00020 // FORWARD REFERENCES
00021 //
00022 
00023 
00024 class NonlinearFunction
00025     : public virtual FunctionBase
00026 {
00027 public:
00028 // LIFECYCLE
00029 
00032     NonlinearFunction(void);
00033 
00034 
00042     NonlinearFunction(std::auto_ptr<const FunctionTree> apFunction,
00043                       const wxString&                   textForm = wxT(""),
00044                       bool                              differentiable = true);
00045 
00048     ~NonlinearFunction(void);
00049 
00050 
00051 // OPERATORS
00052 
00053 // OPERATIONS
00054 
00055     virtual std::auto_ptr<FunctionBase> Clone() const;
00056 
00067     virtual void            BeginFixed() const;
00068 
00069     virtual void            EndFixed() const;
00070 
00071 // ACCESS
00072 
00073     virtual wxString            ToString(bool full = true) const;
00074 
00075     virtual VariableNames       PresentVariables() const;
00076 
00077 // INQUIRY
00078 
00079     virtual bool                ContainsUnknown(const VariableNames& variables)
00080                                     const;
00081 
00082 protected:
00083     NonlinearFunction(const NonlinearFunction& from);
00084 
00092     virtual double          DoEvaluateNoThrow(const ColumnVector& point) const
00093                                     throw();
00094 
00095     std::auto_ptr<const FunctionTree>   mapFunctionTree; 
00096 
00098     mutable std::auto_ptr<const FunctionTree>   mapOptimizedFunctionTree;
00099 
00101     mutable bool                                mOptimized;
00102 private:
00103     const wxString                      mTextForm;       
00104 };
00105 
00106 // INLINE METHODS
00107 //
00108 
00109 // EXTERNAL REFERENCES
00110 //
00111 
00112 #endif  // _NonlinearFunction_h_

Wygenerowano Fri Sep 29 21:04:48 2006 dla EduOptim2 programem  doxygen 1.4.6