00001
00078 #ifndef _NewtonModified_h
00079 #define _NewtonModified_h
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089 #include "../DoubleParameter.h"
00090 #include "../FunctionBase.h"
00091 #include "../MethodWithLineSearch.h"
00092 #include "../ui/MethodWithLineSearchPanel.h"
00093
00094
00095
00096
00097 class NewtonModified
00098 : public MethodWithLineSearch
00099 {
00100 public:
00101
00102 friend class MethodWithLineSearchPanel<NewtonModified>;
00103
00104
00105
00108 ~NewtonModified(void);
00109
00110
00111
00112
00113
00116 virtual std::auto_ptr<Method> Clone() const;
00117
00118
00119
00122 virtual const wxString& Name() const;
00123
00126 virtual MethodIdType Id() const;
00127
00130 static MethodIdType ClassId();
00131
00132
00133
00136 virtual bool CanHandle(const ProblemBase* pProblem)
00137 const;
00138 virtual StopConditions AllowedStopConditions() const;
00139
00140 protected:
00141
00144 NewtonModified(void);
00145
00150 NewtonModified(const NewtonModified& from);
00151
00152 virtual wxString& rName();
00153 private:
00154
00155 virtual std::auto_ptr<Result> Optimize(const ProblemBase& problem) const
00156 throw(OptimizationError);
00157
00158 static wxString mName;
00159 static NewtonModified mNewtonModified;
00160
00161 };
00162
00163
00164
00165
00166
00167
00168
00169 #endif // _NewtonModified_h