• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/tmp/buildd/coinor-ipopt-3.8.3/Ipopt/src/Algorithm/Inexact/IpInexactTSymScalingMethod.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 Common Public License.
00004 //
00005 // $Id: IpInexactTSymScalingMethod.hpp 1692 2010-06-21 19:10:07Z andreasw $
00006 //
00007 // Authors:  Andreas Waechter, Frank E. Curtis         IBM    2009-06-12
00008 //               (based on IpMc19TSymScalingMethod.hpp rev 699)
00009 
00010 #ifndef __IPINEXACTTSYMSCALINGMETHOD_HPP__
00011 #define __IPINEXACTTSYMSCLAINGMETHOD_HPP__
00012 
00013 #include "IpUtils.hpp"
00014 #include "IpTSymScalingMethod.hpp"
00015 #include "IpInexactCq.hpp"
00016 
00017 namespace Ipopt
00018 {
00019 
00024   class InexactTSymScalingMethod: public TSymScalingMethod
00025   {
00026   public:
00029     InexactTSymScalingMethod()
00030     {}
00031 
00032     virtual ~InexactTSymScalingMethod()
00033     {}
00035 
00037     virtual bool InitializeImpl(const OptionsList& options,
00038                                 const std::string& prefix);
00039 
00042     virtual bool ComputeSymTScalingFactors(Index n,
00043                                            Index nnz,
00044                                            const ipfint* airn,
00045                                            const ipfint* ajcn,
00046                                            const double* a,
00047                                            double* scaling_factors);
00048   private:
00056     InexactTSymScalingMethod(const InexactTSymScalingMethod&);
00057 
00059     void operator=(const InexactTSymScalingMethod&);
00060 
00062     InexactCq& InexCq()
00063     {
00064       InexactCq& inexact_cq =
00065         static_cast<InexactCq&>(IpCq().AdditionalCq());
00066       DBG_ASSERT(dynamic_cast<InexactCq*>(&IpCq().AdditionalCq()));
00067       return inexact_cq;
00068     }
00069 
00070   };
00071 
00072 
00073 } // namespace Ipopt
00074 
00075 #endif

Generated on Thu Jul 29 2010 19:56:08 by  doxygen 1.7.1