/build/buildd/coinor-ipopt-3.10.1/Ipopt/src/Algorithm/LinearSolvers/IpSlackBasedTSymScalingMethod.hpp
Go to the documentation of this file.
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: IpSlackBasedTSymScalingMethod.hpp 1861 2010-12-21 21:34:47Z andreasw $
00006 //
00007 // Authors:  Andreas Waechter                   IBM    2009-11-13
00008 //               (based on IpInexactTSymScalingMethod.hpp)
00009 
00010 #ifndef __IPSLACKBASEDTSYMSCALINGMETHOD_HPP__
00011 #define __IPSLACKBASEDTSYMSCLAINGMETHOD_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