Ipopt  trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
SensReducedHessianCalculator.hpp
Go to the documentation of this file.
00001 // Copyright 2009, 2011 Hans Pirnay
00002 // All Rights Reserved.
00003 // This code is published under the Eclipse Public License.
00004 //
00005 // Date   : 2009-08-01
00006 
00007 #ifndef __ASREDUCEDHESSIANCALCULATOR_HPP__
00008 #define __ASREDUCEDHESSIANCALCULATOR_HPP__
00009 
00010 #include "IpAlgStrategy.hpp"
00011 #include "SensSchurData.hpp"
00012 #include "SensPCalculator.hpp"
00013 
00014 namespace Ipopt
00015 {
00016 
00017   class ReducedHessianCalculator : public AlgorithmStrategyObject
00018   {
00021   public:
00022     ReducedHessianCalculator(SmartPtr<SchurData> hess_data,
00023                              SmartPtr<PCalculator> pcalc);
00024 
00025     virtual ~ReducedHessianCalculator();
00026 
00027     virtual bool InitializeImpl(const OptionsList& options,
00028                                 const std::string& prefix);
00029 
00030     /* This function computes the unscaled reduced hessian matrix */
00031     virtual bool ComputeReducedHessian();
00032 
00033   private:
00034 
00036     SmartPtr<SchurData> hess_data_;
00037 
00039     SmartPtr<PCalculator> pcalc_;
00040 
00042     bool compute_eigenvalues_;
00043   };
00044 
00045 }
00046 
00047 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines