DFP.h

00001 
00121 #ifndef _DFP_h
00122 #define _DFP_h
00123 
00124 // SYSTEM INCLUDES
00125 //
00126 
00127 // PROJECT INCLUDES
00128 //
00129 
00130 // LOCAL INCLUDES
00131 //
00132 #include "../CustomValueCondition.h"
00133 #include "../DoubleParameter.h"
00134 #include "../FunctionBase.h"
00135 #include "../ProblemBase.h"
00136 #include "../MethodWithLineSearch.h"
00137 #include "../SquaredCustomValueCondition.h"
00138 #include "../ui/VariantedMethodWithLineSearchPanel.h"
00139 
00140 // FORWARD REFERENCES
00141 //
00142 
00143 
00144 class DFP
00145     : public MethodWithLineSearch
00146 {
00147 public:
00148 // LIFECYCLE
00149 
00152     friend class MethodWithLineSearchPanel<DFP>;
00153     friend class VariantedMethodWithLineSearchPanel<DFP>;
00154 
00157     ~DFP(void);
00158 
00159 
00160 // OPERATORS
00161 
00162 // OPERATIONS
00163 
00166     virtual std::auto_ptr<Method>       Clone() const;
00167 
00168 // ACCESS
00169 
00172     virtual const wxString&         Name() const;
00173 
00176     virtual MethodIdType            Id() const;
00177 
00180     static MethodIdType             ClassId();
00181 
00182     virtual wxString                ToString(bool standalone = true) const;
00183 
00184 // INQUIRY
00185 
00186     virtual bool                    CanHandle(const ProblemBase* pProblem) const;
00187 
00188 
00189     virtual StopConditions          AllowedStopConditions() const;
00190 
00191 protected:
00192     virtual wxString&               rName();
00193 
00196     DFP(void);
00197 
00202     DFP(const DFP& from);
00203 
00220     SquareMatrix    CalculateNewD(const SquareMatrix& D,
00221                                   const ColumnVector& x_diff,
00222                                   const ColumnVector& grad_diff) const;
00223 
00227     bool                            mModification;
00228 
00229 private:
00230 
00231     virtual std::auto_ptr<Result> Optimize(const ProblemBase& problem) const
00232         throw(OptimizationError);
00233     static wxString      mName; 
00234     static DFP mDFP;    
00235 };
00236 
00237 // INLINE METHODS
00238 //
00239 
00240 // EXTERNAL REFERENCES
00241 //
00242 
00243 #endif  // _DFP_h_

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