- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# /home/coin/SVN-release/Ipopt-3.7.1/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