diff options
Diffstat (limited to 'thirdparty/linux/include/coin/IpConvCheck.hpp')
-rw-r--r-- | thirdparty/linux/include/coin/IpConvCheck.hpp | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/thirdparty/linux/include/coin/IpConvCheck.hpp b/thirdparty/linux/include/coin/IpConvCheck.hpp new file mode 100644 index 0000000..033fce4 --- /dev/null +++ b/thirdparty/linux/include/coin/IpConvCheck.hpp @@ -0,0 +1,87 @@ +// Copyright (C) 2004, 2009 International Business Machines and others. +// All Rights Reserved. +// This code is published under the Eclipse Public License. +// +// $Id: IpConvCheck.hpp 1861 2010-12-21 21:34:47Z andreasw $ +// +// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 + +#ifndef __IPCONVCHECK_HPP__ +#define __IPCONVCHECK_HPP__ + +#include "IpAlgStrategy.hpp" + +namespace Ipopt +{ + + /** Base class for checking the algorithm + * termination criteria. + */ + class ConvergenceCheck : public AlgorithmStrategyObject + { + public: + /**@name Constructors/Destructors */ + //@{ + /** Constructor */ + ConvergenceCheck() + {} + + /** Default destructor */ + virtual ~ConvergenceCheck() + {} + //@} + + /** Convergence return enum */ + enum ConvergenceStatus { + CONTINUE, + CONVERGED, + CONVERGED_TO_ACCEPTABLE_POINT, + MAXITER_EXCEEDED, + CPUTIME_EXCEEDED, + DIVERGING, + USER_STOP, + FAILED + }; + + /** overloaded from AlgorithmStrategyObject */ + virtual bool InitializeImpl(const OptionsList& options, + const std::string& prefix) = 0; + + /** Pure virtual method for performing the convergence test. If + * call_intermediate_callback is true, the user callback method + * in the NLP should be called in order to see if the user + * requests an early termination. */ + virtual ConvergenceStatus + CheckConvergence(bool call_intermediate_callback = true) = 0; + + /** Method for testing if the current iterate is considered to + * satisfy the "accptable level" of accuracy. The idea is that + * if the desired convergence tolerance cannot be achieved, the + * algorithm might stop after a number of acceptable points have + * been encountered. */ + virtual bool CurrentIsAcceptable()=0; + + private: + /**@name Default Compiler Generated Methods + * (Hidden to avoid implicit creation/calling). + * These methods are not implemented and + * we do not want the compiler to implement + * them for us, so we declare them private + * and do not define them. This ensures that + * they will not be implicitly created/called. */ + //@{ + /** Default Constructor */ + // ConvergenceCheck(); + + /** Copy Constructor */ + ConvergenceCheck(const ConvergenceCheck&); + + /** Overloaded Equals Operator */ + void operator=(const ConvergenceCheck&); + //@} + + }; + +} // namespace Ipopt + +#endif |