00001 // Copyright (C) 2007 International Business Machines and others. 00002 // All Rights Reserved. 00003 // This code is published under the Common Public License. 00004 // 00005 // $Id: IpMa28TDependencyDetector.hpp 959 2007-04-19 22:45:03Z andreasw $ 00006 // 00007 // Authors: Andreas Waechter IBM 2007-04-17 00008 00009 #ifndef __IPMA28TDEPENDENCYDETECTOR_HPP__ 00010 #define __IPMA28TDEPENDENCYDETECTOR_HPP__ 00011 00012 #include "IpTDependencyDetector.hpp" 00013 00014 namespace Ipopt 00015 { 00016 00019 class Ma28TDependencyDetector: public TDependencyDetector 00020 { 00021 public: 00024 Ma28TDependencyDetector(); 00025 00026 virtual ~Ma28TDependencyDetector() 00027 {} 00029 00031 virtual bool InitializeImpl(const OptionsList& options, 00032 const std::string& prefix); 00033 00042 virtual bool DetermineDependentRows(Index n_rows, Index n_cols, 00043 Index n_jac_nz, 00044 Number* jac_c_vals, 00045 Index* jac_c_iRow, 00046 Index* jac_c_jCol, 00047 std::list<Index>& c_deps); 00048 00051 static void RegisterOptions(SmartPtr<RegisteredOptions> roptions); 00052 00053 private: 00063 Ma28TDependencyDetector(const Ma28TDependencyDetector&); 00064 00066 void operator=(const Ma28TDependencyDetector&); 00068 00069 SmartPtr<const Journalist> jnlst_; 00070 00074 Number ma28_pivtol_; 00076 }; 00077 00078 } // namespace Ipopt 00079 00080 #endif