00001 // Copyright 2009 Hans Pirnay 00002 // All Rights Reserved. 00003 // This code is published under the Common Public License. 00004 // 00005 // Date : 2009-11-19 00006 00007 #ifndef __ASIFTSCHURDRIVER_HPP__ 00008 #define __ASIFTSCHURDRIVER_HPP__ 00009 00010 #include "AsSchurDriver.hpp" 00011 #include "AsAsBacksolver.hpp" 00012 00013 namespace Ipopt 00014 { 00015 00016 class IFTSchurDriver: public SchurDriver 00017 { 00018 00019 public: 00020 00021 IFTSchurDriver(SmartPtr<AsBacksolver> backsolver, 00022 SmartPtr<SchurData> data_B); 00023 00024 virtual ~IFTSchurDriver(); 00025 00027 virtual bool SchurBuild(); 00028 00030 virtual bool SchurFactorize(); 00031 00033 virtual bool SchurSolve(SmartPtr<IteratesVector> lhs, 00034 SmartPtr<const IteratesVector> rhs, 00035 SmartPtr<IteratesVector> sol, 00036 SmartPtr<Vector> delta_u); 00037 00039 virtual bool SchurSolve(SmartPtr<IteratesVector> lhs, 00040 SmartPtr<const IteratesVector> rhs, 00041 SmartPtr<Vector> delta_u); 00042 00043 private: 00044 00045 SmartPtr<AsBacksolver> backsolver_; 00046 00047 }; 00048 } 00049 00050 #endif