00001 00004 #ifndef _EMStopCondition_h 00005 #define _EMStopCondition_h 00006 00007 00008 // SYSTEM INCLUDES 00009 // 00010 00011 // PROJECT INCLUDES 00012 // 00013 00014 // LOCAL INCLUDES 00015 // 00016 #include "FunctionBase.h" 00017 #include "StandardStopCondition.h" 00018 00019 // FORWARD REFERENCES 00020 // 00021 00022 00023 class EMStopCondition 00024 : public StopConditionBase 00025 { 00026 public: 00027 // LIFECYCLE 00028 00031 EMStopCondition(void); 00032 00038 EMStopCondition(CountedPtr<StandardStopCondition> cpComparison); 00039 00044 EMStopCondition(const EMStopCondition& from); 00045 00046 00049 virtual ~EMStopCondition(void); 00050 00051 00052 // OPERATORS 00053 00054 // OPERATIONS 00055 00058 virtual std::auto_ptr<StopConditionBase> Clone() const; 00059 00060 // ACCESS 00061 00064 virtual DoubleParameter Epsilon() const; 00065 00068 virtual DoubleParameter& rEpsilon(); 00069 00070 // INQUIRY 00071 00087 virtual bool IsMet( 00088 const ColumnVector& previousBestPoint, 00089 const ColumnVector& bestPoint, 00090 const FunctionBase& function, 00091 double pointStandardDeviation, 00092 double valueStandardDeviation, 00093 unsigned stagnantIterations) 00094 const; 00095 00096 // PUBLIC MEMBERS 00097 00098 protected: 00102 CountedPtr<StandardStopCondition> mcpComparison; 00103 private: 00104 }; 00105 00106 // INLINE METHODS 00107 // 00108 00109 // EXTERNAL REFERENCES 00110 // 00111 00112 #endif // _EMStopCondition_h