00001
00047 #ifndef _UniformDivision_h
00048 #define _UniformDivision_h
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058 #include "../DoubleParameter.h"
00059 #include "../ProblemBase.h"
00060 #include "../SectionLineSearch.h"
00061 #include "../UnivariateFunction.h"
00062
00063
00064
00065
00066
00067 class UniformDivision
00068 : public SectionLineSearch
00069 {
00070 public:
00071
00072 friend class UniformDivisionPanel;
00073
00074
00075
00076
00079 ~UniformDivision(void);
00080
00081
00082
00083
00084
00085
00088 virtual std::auto_ptr<Method> Clone() const;
00089
00090
00091
00094 virtual const wxString& Name() const;
00095
00098 virtual MethodIdType Id() const;
00099
00102 static MethodIdType ClassId();
00103
00104
00105
00106 virtual bool CanHandle(const ProblemBase* problem) const;
00107
00108 protected:
00109
00112 UniformDivision(void);
00113
00118 UniformDivision(const UniformDivision& from);
00119
00120 virtual wxString& rName();
00121 private:
00122
00123 virtual std::auto_ptr<Result> Solve(
00124 const UnivariateFunction& function,
00125 double a,
00126 double b,
00127 bool generateResult)
00128 const throw(OptimizationError);
00129
00130 static wxString mName;
00131 static UniformDivision mUniformDivision;
00132 };
00133
00134
00135
00136
00137
00138
00139
00140 #endif // _UniformDivision_h_