00001 // Copyright 2009, 2010 Hans Pirnay 00002 // All Rights Reserved. 00003 // This code is published under the Common Public License. 00004 // 00005 // Date : 2009-05-06 00006 00007 00008 #ifndef __ASSTDPCALCULATOR_HPP__ 00009 #define __ASSTDPCALCULATOR_HPP__ 00010 00011 #include "AsPCalculator.hpp" 00012 #include "AsSchurData.hpp" 00013 #include "AsSimpleBacksolver.hpp" 00014 00015 00016 namespace Ipopt 00017 { 00018 00019 class StdPCalculator : public PCalculator 00020 { 00023 public: 00024 StdPCalculator(SmartPtr<AsBacksolver> backsolver, 00025 SmartPtr<SchurData> A_data); 00026 00027 virtual ~StdPCalculator(); 00028 00030 virtual bool InitializeImpl(const OptionsList& options, 00031 const std::string& prefix); 00032 00034 virtual bool ComputeP(); 00035 00036 virtual bool GetSchurMatrix(const SchurData& B, Matrix& S); 00037 00038 virtual void PrintImpl(const Journalist& jnlst, 00039 EJournalLevel level, 00040 EJournalCategory category, 00041 const std::string& name, 00042 Index indent, 00043 const std::string& prefix) const; 00044 00045 private: 00047 StdPCalculator(); 00048 00050 Index nrows_; 00051 00053 Index ncols_; 00054 00056 Number* P_; 00057 00058 }; 00059 00060 } 00061 00062 00063 #endif