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

/build/buildd/coinor-ipopt-3.8.3/Ipopt/src/Algorithm/Inexact/IpInexactData.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2008, 2009 International Business Machines and others.
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // $Id: IpInexactData.hpp 1454 2009-05-13 17:32:38Z fecurt $
00006 //
00007 // Authors:  Andreas Waechter           IBM     2008-08-31
00008 
00009 #ifndef __IPINEXACTDATA_HPP__
00010 #define __IPINEXACTDATA_HPP__
00011 
00012 #include "IpIpoptData.hpp"
00013 
00014 namespace Ipopt
00015 {
00016 
00019   class InexactData : public IpoptAdditionalData
00020   {
00021   public:
00025     InexactData();
00026 
00028     ~InexactData();
00030 
00036     bool Initialize(const Journalist& jnlst,
00037                     const OptionsList& options,
00038                     const std::string& prefix);
00039 
00041     bool InitializeDataStructures();
00042 
00046     void AcceptTrialPoint();
00048 
00051     void set_normal_x(SmartPtr<Vector>& normal_x)
00052     {
00053       normal_x_ = ConstPtr(normal_x);
00054       normal_x = NULL;
00055     }
00056     void set_normal_s(SmartPtr<Vector>& normal_s)
00057     {
00058       normal_s_ = ConstPtr(normal_s);
00059       normal_s = NULL;
00060     }
00061     SmartPtr<const Vector> normal_x()
00062     {
00063       return normal_x_;
00064     }
00065     SmartPtr<const Vector> normal_s()
00066     {
00067       return normal_s_;
00068     }
00070 
00073     void set_tangential_x(SmartPtr<const Vector>& tangential_x)
00074     {
00075       tangential_x_ = tangential_x;
00076       tangential_x = NULL;
00077     }
00078     void set_tangential_s(SmartPtr<const Vector>& tangential_s)
00079     {
00080       tangential_s_ = tangential_s;
00081       tangential_s = NULL;
00082     }
00083     SmartPtr<const Vector> tangential_x()
00084     {
00085       return tangential_x_;
00086     }
00087     SmartPtr<const Vector> tangential_s()
00088     {
00089       return tangential_s_;
00090     }
00092 
00097     void set_full_step_accepted(bool full_step_accepted)
00098     {
00099       full_step_accepted_ = full_step_accepted;
00100     }
00101     bool full_step_accepted()
00102     {
00103       return full_step_accepted_;
00104     }
00106 
00109     void set_curr_nu(Number nu)
00110     {
00111       curr_nu_ = nu;
00112     }
00113     Number curr_nu()
00114     {
00115       return curr_nu_;
00116     }
00118 
00121     void set_compute_normal(bool compute_normal)
00122     {
00123       compute_normal_ = compute_normal;
00124     }
00125     bool compute_normal()
00126     {
00127       return compute_normal_;
00128     }
00130 
00133     void set_next_compute_normal(bool next_compute_normal)
00134     {
00135       next_compute_normal_ = next_compute_normal;
00136     }
00137     bool next_compute_normal()
00138     {
00139       return next_compute_normal_;
00140     }
00142 
00143   private:
00153     InexactData(const InexactData&);
00154 
00156     void operator=(const InexactData&);
00158 
00161     SmartPtr<const Vector> normal_x_;
00162     SmartPtr<const Vector> normal_s_;
00164 
00167     SmartPtr<const Vector> tangential_x_;
00168     SmartPtr<const Vector> tangential_s_;
00170 
00172     bool full_step_accepted_;
00173 
00175     Number curr_nu_;
00176 
00178     bool compute_normal_;
00179 
00181     bool next_compute_normal_;
00182   };
00183 
00184 } // namespace Ipopt
00185 
00186 #endif

Generated on Sat Oct 16 2010 02:54:49 by  doxygen 1.7.1