- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# /home/coin/SVN-release/Ipopt-3.7.1/Ipopt/src/Algorithm/Inexact/IpInexactNormalTerminationTester.hpp

Go to the documentation of this file.

    00001 // Copyright (C) 2008 International Business Machines and others.
    00002 // All Rights Reserved.
    00003 // This code is published under the Common Public License.
    00004 //
    00005 // $Id: IpInexactNormalTerminationTester.hpp 1578 2009-10-06 23:40:31Z andreasw $
    00006 //
    00007 // Authors:  Andreas Waechter            IBM    2008-09-19
    00008
    00009 #ifndef __IPINEXACTNORMALTERMINATIONTESTER_HPP__
    00010 #define __IPINEXACTNORMALTERMINATIONTESTER_HPP__
    00011
    00012 #include "IpIterativeSolverTerminationTester.hpp"
    00013
    00014 namespace Ipopt
    00015 {
    00016
    00020   class InexactNormalTerminationTester: public IterativeSolverTerminationTester
    00021   {
    00022   public:
    00027     InexactNormalTerminationTester();
    00028
    00030     virtual ~InexactNormalTerminationTester();
    00032
    00033     /* overloaded from AlgorithmStrategyObject */
    00034     virtual bool InitializeImpl(const OptionsList& options,
    00035                                 const std::string& prefix);
    00036
    00039     static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
    00041
    00044     virtual bool InitializeSolve();
    00045
    00052     virtual ETerminationTest TestTermination(Index ndim, const Number* sol,
    00053         const Number* resid, Index iter,
    00054         Number norm2_rhs);
    00055
    00058     virtual void Clear();
    00059
    00060
    00063     virtual Index GetSolverIterations() const
    00064     {
    00065       return last_iter_;
    00066     }
    00067
    00071     void Set_c_Avc_norm_cauchy(Number c_Avc_norm_cauchy)
    00072     {
    00073       c_Avc_norm_cauchy_ = c_Avc_norm_cauchy;
    00074     }
    00075
    00076   private:
    00086     InexactNormalTerminationTester& operator=(const InexactNormalTerminationTester&);
    00088
    00092     Number inexact_normal_tol_;
    00094     Index inexact_normal_max_iter_;
    00096     bool requires_scaling_;
    00098
    00101     Number c_Avc_norm_cauchy_;
    00102
    00104     Index last_iter_;
    00105   };
    00106
    00107 } // namespace Ipopt
    00108
    00109 #endif