DirectionalUnivariateAdapter.h

00001 
00011 #ifndef _DirectionalUnivariateAdapter_h
00012 #define _DirectionalUnivariateAdapter_h
00013 
00014 
00015 // SYSTEM INCLUDES
00016 //
00017 
00018 // PROJECT INCLUDES
00019 //
00020 
00021 // LOCAL INCLUDES
00022 //
00023 #include "UnivariateFunction.h"
00024 
00025 // FORWARD REFERENCES
00026 //
00027 
00028 
00029 class DirectionalUnivariateAdapter
00030     : public UnivariateFunction
00031 {
00032 public:
00033 // LIFECYCLE
00034 
00042     DirectionalUnivariateAdapter(const FunctionBase&   function);
00043 
00044     // Nie może być protected, bo się nie skompiluje przez ten wyżej
00045     DirectionalUnivariateAdapter(const DirectionalUnivariateAdapter& from);
00046 
00057     DirectionalUnivariateAdapter(const FunctionBase&   function,
00058                                  const ColumnVector&   x,
00059                                  const ColumnVector&   d);
00060 
00061 
00064     virtual ~DirectionalUnivariateAdapter(void);
00065 
00066 
00067 // OPERATORS
00068 
00069 // OPERATIONS
00070 
00072     virtual std::auto_ptr<FunctionBase> Clone() const;
00073 
00074 // ACCESS
00075 
00082     void                SetDirection(const ColumnVector& x,
00083                                      const ColumnVector& d);
00084 
00087     unsigned            EvaluationCount() const;
00088 
00089     // TODO: poprawić opis, jak ToString zostanie skończone
00094     virtual wxString    ToString(bool full = true) const;
00095 
00098     virtual VariableNames   PresentVariables() const;
00099 // INQUIRY
00100 
00101 //    /** Sprawdza, czy funkcja jest różniczkowalna.
00102 //     */
00103 //    virtual bool        IsDifferentiable() const;
00104 
00107     virtual bool        ContainsUnknown(const VariableNames& variables) const;
00108 
00109 protected:
00110 
00119     virtual double      DoEvaluateNoThrow(const ColumnVector& point) const
00120         throw();
00121 
00122     virtual double      DoEvaluate(const ColumnVector& point) const
00123         throw(EvaluationError);
00124 
00125     const FunctionBase& mFunction;    
00126     ColumnVector        mBase;        
00127     ColumnVector        mDirection;   
00128 private:
00129 };
00130 
00131 // INLINE METHODS
00132 //
00133 
00134 // EXTERNAL REFERENCES
00135 //
00136 
00137 #endif  // _DirectionalUnivariateAdapter_h

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