00001 00004 #ifndef _NMStopCondition_h 00005 #define _NMStopCondition_h 00006 00007 00008 // SYSTEM INCLUDES 00009 // 00010 00011 // PROJECT INCLUDES 00012 // 00013 00014 // LOCAL INCLUDES 00015 // 00016 #include "FunctionBase.h" 00017 #include "PointWithValue.h" 00018 #include "StandardStopCondition.h" 00019 00020 // FORWARD REFERENCES 00021 // 00022 00023 00024 class NMStopCondition 00025 : public StopConditionBase 00026 { 00027 public: 00028 // LIFECYCLE 00029 00032 NMStopCondition(void); 00033 00039 NMStopCondition(CountedPtr<StandardStopCondition> cpComparison); 00040 00045 NMStopCondition(const NMStopCondition& from); 00046 00047 00050 virtual ~NMStopCondition(void); 00051 00052 00053 // OPERATORS 00054 00055 // OPERATIONS 00056 00057 // ACCESS 00058 00061 virtual DoubleParameter Epsilon() const; 00062 00065 virtual DoubleParameter& rEpsilon(); 00066 00067 // INQUIRY 00068 00083 virtual bool IsMet(const PointWithValue& bestPoint, 00084 const PointWithValue& worstPoint, 00085 const PointWithValue& previousWorstPoint, 00086 const PointWithValue& worstReplacement, 00087 double circumference) 00088 const = 0; 00089 00090 // PUBLIC MEMBERS 00091 00092 protected: 00096 CountedPtr<StandardStopCondition> mcpComparison; 00097 private: 00098 }; 00099 00100 // INLINE METHODS 00101 // 00102 00103 // EXTERNAL REFERENCES 00104 // 00105 00106 #endif // _NMStopCondition_h