Ipopt Documentation  
IpMc19TSymScalingMethod.hpp
Go to the documentation of this file.
1 // Copyright (C) 2004, 2006 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Authors: Carl Laird, Andreas Waechter IBM 2004-03-17
6 
7 #ifndef __IPMC19TSYMSCALINGMETHOD_HPP__
8 #define __IPMC19TSYMSCALINGMETHOD_HPP__
9 
10 #include "IpUtils.hpp"
11 #include "IpTSymScalingMethod.hpp"
12 #include "IpLibraryLoader.hpp"
13 #include "IpTypes.h"
14 
15 // note that R,C,W are single-precision also in the double-precision version of MC19 (MC19AD)
16 // here we assume that float corresponds to Fortran's single precision
18 #define IPOPT_DECL_MC19A(x) void (x)( \
19  const ipindex* N, \
20  const ipindex* NZ, \
21  ipnumber* A, \
22  ipindex* IRN, \
23  ipindex* ICN, \
24  float* R, \
25  float* C, \
26  float* W \
27 )
28 
29 namespace Ipopt
30 {
31 
36 {
37 public:
41  SmartPtr<LibraryLoader> hslloader_
42  ) : hslloader(hslloader_),
43  mc19a(NULL)
44  { }
45 
47  { }
49 
50  virtual bool InitializeImpl(
51  const OptionsList& options,
52  const std::string& prefix
53  );
54 
58  virtual bool ComputeSymTScalingFactors(
59  Index n,
60  Index nnz,
61  const Index* airn,
62  const Index* ajcn,
63  const Number* a,
64  Number* scaling_factors
65  );
66 
69  static void SetFunctions(
71  );
72 
77  static IPOPT_DECL_MC19A(*GetMC19A());
78 
79 private:
85 
89  );
90 
92  void operator=(
94  );
95 
100 
103 };
104 
105 } // namespace Ipopt
106 
107 #endif
Mc19TSymScalingMethod(SmartPtr< LibraryLoader > hslloader_)
Class for the method for computing scaling factors for symmetric matrices in triplet format...
virtual bool ComputeSymTScalingFactors(Index n, Index nnz, const Index *airn, const Index *ajcn, const Number *a, Number *scaling_factors)
Method for computing the symmetric scaling factors, given the symmetric matrix in triplet (MA27) form...
Base class for the method for computing scaling factors for symmetric matrices in triplet format...
SmartPtr< LibraryLoader > hslloader
ipindex Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:20
static void SetFunctions()
set MC19 function to use for every instantiation of this class
This file contains a base class for all exceptions and a set of macros to help with exceptions...
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:164
This class stores a list of user set options.
ipnumber Number
Type of all numbers.
Definition: IpTypes.hpp:17
#define IPOPT_DECL_MC19A(x)
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class...
void operator=(const Mc19TSymScalingMethod &)
Default Assignment Operator.
static IPOPT_DECL_MC19A * GetMC19A()
get MC19A function that has been set via SetFunctions