- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# /home/coin/SVN-release/Ipopt-3.7.1/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: IpMc19TSymScalingMethod.hpp 699 2006-04-05 21:05:18Z 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