Ipopt
trunk
|
00001 // Copyright 2009, 2011 Hans Pirnay 00002 // All Rights Reserved. 00003 // This code is published under the Eclipse Public License. 00004 // 00005 // Date : 2009-11-19 00006 00007 #ifndef __ASIFTSCHURDRIVER_HPP__ 00008 #define __ASIFTSCHURDRIVER_HPP__ 00009 00010 #include "SensSchurDriver.hpp" 00011 #include "SensBacksolver.hpp" 00012 #include "IpDenseGenMatrix.hpp" 00013 00014 namespace Ipopt 00015 { 00016 00017 class DenseGenSchurDriver: public SchurDriver 00018 { 00019 00020 public: 00021 00022 DenseGenSchurDriver(SmartPtr<SensBacksolver> backsolver, 00023 SmartPtr<PCalculator> pcalc, 00024 SmartPtr<SchurData> data_B); 00025 00026 virtual ~DenseGenSchurDriver(); 00027 00029 virtual bool SchurBuild(); 00030 00032 virtual bool SchurFactorize(); 00033 00052 virtual bool SchurSolve(SmartPtr<IteratesVector> x, 00053 SmartPtr<const IteratesVector> f, 00054 SmartPtr<Vector> g, 00055 SmartPtr<IteratesVector> Kf=NULL); 00056 00062 private: 00063 SmartPtr<SchurData> ift_data_; 00064 SmartPtr<SensBacksolver> backsolver_; 00065 SmartPtr<DenseGenMatrix> S_; 00066 00067 }; 00068 } 00069 00070 #endif