Ipopt
trunk
|
00001 // Copyright (C) 2009 International Business Machines and others. 00002 // All Rights Reserved. 00003 // This code is published under the Eclipse Public License. 00004 // 00005 // $Id$ 00006 // 00007 // Authors: Andreas Waechter IBM 2009-11-13 00008 // (based on IpInexactTSymScalingMethod.hpp) 00009 00010 #ifndef __IPSLACKBASEDTSYMSCALINGMETHOD_HPP__ 00011 #define __IPSLACKBASEDTSYMSCALINGMETHOD_HPP__ 00012 00013 #include "IpUtils.hpp" 00014 #include "IpTSymScalingMethod.hpp" 00015 00016 namespace Ipopt 00017 { 00018 00023 class SlackBasedTSymScalingMethod: public TSymScalingMethod 00024 { 00025 public: 00028 SlackBasedTSymScalingMethod() 00029 {} 00030 00031 virtual ~SlackBasedTSymScalingMethod() 00032 {} 00034 00036 virtual bool InitializeImpl(const OptionsList& options, 00037 const std::string& prefix); 00038 00041 virtual bool ComputeSymTScalingFactors(Index n, 00042 Index nnz, 00043 const ipfint* airn, 00044 const ipfint* ajcn, 00045 const double* a, 00046 double* scaling_factors); 00047 private: 00055 SlackBasedTSymScalingMethod(const SlackBasedTSymScalingMethod&); 00056 00058 void operator=(const SlackBasedTSymScalingMethod&); 00059 }; 00060 00061 00062 } // namespace Ipopt 00063 00064 #endif