• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/tmp/buildd/coinor-ipopt-3.8.3/Ipopt/src/Algorithm/Inexact/IpInexactNewtonNormal.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: IpInexactNewtonNormal.hpp 1390 2009-01-06 16:55:52Z andreasw $
00006 //
00007 // Authors:  Andreas Waechter            IBM    2008-09-05
00008 
00009 #ifndef __IPINEXACTNEWTONNORMAL_HPP__
00010 #define __IPINEXACTNEWTONNORMAL_HPP__
00011 
00012 #include "IpAlgStrategy.hpp"
00013 #include "IpAugSystemSolver.hpp"
00014 #include "IpInexactCq.hpp"
00015 
00016 namespace Ipopt
00017 {
00021   class InexactNewtonNormalStep : public AlgorithmStrategyObject
00022   {
00023   public:
00027     InexactNewtonNormalStep(SmartPtr<AugSystemSolver> aug_solver);
00028 
00030     virtual ~InexactNewtonNormalStep();
00032 
00034     virtual bool InitializeImpl(const OptionsList& options,
00035                                 const std::string& prefix);
00036 
00041     virtual bool ComputeNewtonNormalStep(Vector& newton_x, Vector& newton_s);
00042 
00045     static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
00047 
00048   protected:
00050     InexactData& InexData()
00051     {
00052       InexactData& inexact_data =
00053         static_cast<InexactData&>(IpData().AdditionalData());
00054       DBG_ASSERT(dynamic_cast<InexactData*>(&IpData().AdditionalData()));
00055       return inexact_data;
00056     }
00057 
00059     InexactCq& InexCq()
00060     {
00061       InexactCq& inexact_cq =
00062         static_cast<InexactCq&>(IpCq().AdditionalCq());
00063       DBG_ASSERT(dynamic_cast<InexactCq*>(&IpCq().AdditionalCq()));
00064       return inexact_cq;
00065     }
00066 
00067   private:
00077     InexactNewtonNormalStep();
00078 
00080     InexactNewtonNormalStep(const InexactNewtonNormalStep&);
00081 
00083     void operator=(const InexactNewtonNormalStep&);
00085 
00087     SmartPtr<AugSystemSolver> aug_solver_;
00088   };
00089 
00090 } // namespace Ipopt
00091 
00092 #endif

Generated on Thu Jul 29 2010 19:56:08 by  doxygen 1.7.1