00001
00004 #ifndef _StopConditionBase_h
00005 #define _StopConditionBase_h
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "CountedPtr.h"
00016 #include "DoubleParameter.h"
00017
00018
00019
00020 class StopConditionBase;
00021 typedef vector< CountedPtr<StopConditionBase> > StopConditions;
00022
00023 class StopConditionBase
00024 {
00025 public:
00026
00027
00030 StopConditionBase(void);
00031
00036 StopConditionBase(const StopConditionBase& from);
00037
00038
00041 virtual ~StopConditionBase(void);
00042
00043
00044
00045
00046
00047
00050 virtual std::auto_ptr<StopConditionBase> Clone() const = 0;
00051
00052
00053
00056 virtual const wxString& Name() const;
00057
00060 virtual wxString ToString() const;
00061
00064 virtual wxString& rName();
00065
00068 virtual DoubleParameter Epsilon() const = 0;
00069
00072 virtual DoubleParameter& rEpsilon() = 0;
00073
00074
00075
00076
00082 static StopConditions StandardStopConditions();
00083
00092 static StopConditions GradientStopConditions();
00093
00097 static StopConditions NelderMeadStopConditions();
00098
00101 static StopConditions EvolutionaryMethodStopConditions();
00102
00103
00104
00105 protected:
00106 wxString mName;
00107 private:
00108 };
00109
00110
00111
00112
00113
00114
00115
00116 #endif // _StopConditionBase_h