00001 // Copyright (C) 2004, 2006 International Business Machines and others. 00002 // All Rights Reserved. 00003 // This code is published under the Common Public License. 00004 // 00005 // $Id: IpRestoRestoPhase.hpp 759 2006-07-07 03:07:08Z andreasw $ 00006 // 00007 // Authors: Carl Laird, Andreas Waechter IBM 2005-02-11 00008 00009 #ifndef __IPRESTORESTOPHASE_HPP__ 00010 #define __IPRESTORESTOPHASE_HPP__ 00011 00012 #include "IpRestoPhase.hpp" 00013 #include "IpIpoptAlg.hpp" 00014 #include "IpEqMultCalculator.hpp" 00015 00016 namespace Ipopt 00017 { 00018 00025 class RestoRestorationPhase : public RestorationPhase 00026 { 00027 public: 00031 RestoRestorationPhase(); 00032 00034 virtual ~RestoRestorationPhase(); 00036 00038 virtual bool InitializeImpl(const OptionsList& options, 00039 const std::string& prefix); 00040 00041 protected: 00043 virtual bool PerformRestoration(); 00044 00045 private: 00053 RestoRestorationPhase(const RestoRestorationPhase&); 00054 00056 void operator=(const RestoRestorationPhase&); 00058 00063 void solve_quadratic(const Vector& a, const Vector& b, Vector& v); 00065 }; 00066 00067 } // namespace Ipopt 00068 00069 #endif