FibonacciDivision.h

00001 
00089 #ifndef _FibonacciDivision_h
00090 #define _FibonacciDivision_h
00091 
00092 // SYSTEM INCLUDES
00093 //
00094 
00095 // PROJECT INCLUDES
00096 //
00097 
00098 // LOCAL INCLUDES
00099 //
00100 #include "../DoubleParameter.h"
00101 #include "../ProblemBase.h"
00102 #include "../SectionLineSearch.h"
00103 #include "../UnivariateFunction.h"
00104 #include "../ui/SectionLineSearchPanel.h"
00105 
00106 // FORWARD REFERENCES
00107 //
00108 
00109 
00110 class FibonacciDivision
00111     : public SectionLineSearch
00112 {
00113 public:
00114     friend class SectionLineSearchPanel<FibonacciDivision>;
00115 
00116 // LIFECYCLE
00117 
00118 
00121     ~FibonacciDivision(void);
00122 
00123 
00124 // OPERATORS
00125 
00126 // OPERATIONS
00127 
00128 
00131     virtual std::auto_ptr<Method>   Clone() const;
00132 
00133 // ACCESS
00136     virtual const wxString&         Name() const;
00137 
00140     virtual MethodIdType            Id() const;
00141 
00144     static MethodIdType             ClassId();
00145 
00146 // INQUIRY
00147 
00148     virtual bool                    CanHandle(const ProblemBase* pProblem) const;
00149 
00150 protected:
00151 
00154     FibonacciDivision(void);
00155 
00160     FibonacciDivision(const FibonacciDivision& from);
00161 
00172     std::vector<unsigned int>   GenerateFibonacciSequence(double a,
00173                                                           double b,
00174                                                           double epsilon) const;
00175     virtual wxString&               rName();
00176 private:
00177 
00178     virtual std::auto_ptr<Result>   Solve(
00179                                       const UnivariateFunction& function,
00180                                       double                    a,
00181                                       double                    b,
00182                                       bool                      generateResult)
00183                           const throw(OptimizationError);
00184 
00185 
00188     static wxString       mName;
00191     static FibonacciDivision    mFibonacciDivision;
00192 
00193 };
00194 
00195 // INLINE METHODS
00196 //
00197 
00198 // EXTERNAL REFERENCES
00199 //
00200 
00201 #endif  // _FibonacciDivision_h_

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