FletcherReeves.h

00001 
00085 #ifndef _FletcherReeves_h
00086 #define _FletcherReeves_h
00087 
00088 // SYSTEM INCLUDES
00089 //
00090 
00091 // PROJECT INCLUDES
00092 //
00093 
00094 // LOCAL INCLUDES
00095 //
00096 #include "../DoubleParameter.h"
00097 #include "../FunctionBase.h"
00098 #include "../MethodWithLineSearch.h"
00099 #include "../ProblemBase.h"
00100 #include "../ui/VariantedMethodWithLineSearchPanel.h"
00101 
00102 // FORWARD REFERENCES
00103 //
00104 
00105 class FletcherReeves
00106     : public MethodWithLineSearch
00107 {
00108 public:
00109 
00110     friend class VariantedMethodWithLineSearchPanel<FletcherReeves>;
00111     friend class MethodWithLineSearchPanel<FletcherReeves>;
00112 
00113 // LIFECYCLE
00114 
00117     ~FletcherReeves(void);
00118 
00119 // OPERATORS
00120 
00121 // OPERATIONS
00122 
00125     virtual std::auto_ptr<Method>   Clone() const;
00126 
00127 // ACCESS
00128 //
00129 
00130 
00133     virtual const wxString&         Name() const;
00134 
00137     virtual MethodIdType            Id() const;
00138 
00141     static MethodIdType             ClassId();
00142 
00143     virtual wxString                ToString(bool standalone = true) const;
00144 
00145 // INQUIRY
00146 //
00147     virtual bool                    CanHandle(const ProblemBase* pProblem)
00148                                                                         const;
00149     virtual StopConditions          AllowedStopConditions() const;
00150 
00151 
00152 protected:
00153 
00156     FletcherReeves(void);
00157 
00162     FletcherReeves(const FletcherReeves& from);
00163 
00167     bool                            mModification;
00168 
00169     virtual wxString&               rName();
00170 private:
00171 
00172     virtual std::auto_ptr<Result>   Optimize(const ProblemBase& problem) const
00173                                                     throw(OptimizationError);
00174 
00177     static wxString           mName;
00180     static FletcherReeves           mFletcherReeves;
00181 
00182 };
00183 
00184 // INLINE METHODS
00185 //
00186 
00187 // EXTERNAL REFERENCES
00188 //
00189 
00190 #endif  // _FletcherReeves_h

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