Ipopt Documentation  
IpTripletHelper.hpp
Go to the documentation of this file.
1 // Copyright (C) 2004, 2009 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-08-13
6 
7 #ifndef __IPTRIPLETHELPER_HPP__
8 #define __IPTRIPLETHELPER_HPP__
9 
10 #include "IpTypes.hpp"
11 #include "IpException.hpp"
12 
13 namespace Ipopt
14 {
15 
16 DECLARE_STD_EXCEPTION(UNKNOWN_MATRIX_TYPE);
17 DECLARE_STD_EXCEPTION(UNKNOWN_VECTOR_TYPE);
18 
20 class Matrix;
21 class GenTMatrix;
22 class SymTMatrix;
23 class DiagMatrix;
24 class IdentityMatrix;
25 class ExpansionMatrix;
26 class ScaledMatrix;
27 class SymScaledMatrix;
28 class SumMatrix;
29 class SumSymMatrix;
30 class ZeroMatrix;
31 class ZeroSymMatrix;
32 class CompoundMatrix;
33 class CompoundSymMatrix;
34 class TransposeMatrix;
35 class ExpandedMultiVectorMatrix;
36 class Vector;
37 
39 {
40 public:
44  static Index GetNumberEntries(
45  const Matrix& matrix
46  );
47 
49  static void FillRowCol(
50  Index n_entries,
51  const Matrix& matrix,
52  Index* iRow,
53  Index* jCol,
54  Index row_offset = 0,
55  Index col_offset = 0
56  );
57 
59  static void FillValues(
60  Index n_entries,
61  const Matrix& matrix,
62  Number* values
63  );
64 
66  static void FillValuesFromVector(
67  Index dim,
68  const Vector& vector,
69  Number* values
70  );
71 
73  static void PutValuesInVector(
74  Index dim,
75  const double* values,
76  Vector& vector
77  );
79 
80 private:
82  static Index GetNumberEntries_(
83  const SumMatrix& matrix
84  );
85 
87  static Index GetNumberEntries_(
88  const SumSymMatrix& matrix
89  );
90 
92  static Index GetNumberEntries_(
93  const CompoundMatrix& matrix
94  );
95 
97  static Index GetNumberEntries_(
98  const CompoundSymMatrix& matrix
99  );
100 
102  static Index GetNumberEntries_(
103  const TransposeMatrix& matrix
104  );
105 
107  static Index GetNumberEntries_(
108  const ExpandedMultiVectorMatrix& matrix
109  );
110 
111  static void FillRowCol_(
112  Index n_entries,
113  const GenTMatrix& matrix,
114  Index row_offset,
115  Index col_offset,
116  Index* iRow,
117  Index* jCol
118  );
119 
120  static void FillValues_(
121  Index n_entries,
122  const GenTMatrix& matrix,
123  Number* values
124  );
125 
126  static void FillRowCol_(
127  Index n_entries,
128  const SymTMatrix& matrix,
129  Index row_offset,
130  Index col_offset,
131  Index* iRow,
132  Index* jCol
133  );
134 
135  static void FillValues_(
136  Index n_entries,
137  const SymTMatrix& matrix,
138  Number* values
139  );
140 
141  static void FillRowCol_(
142  Index n_entries,
143  const DiagMatrix& matrix,
144  Index row_offset,
145  Index col_offset,
146  Index* iRow,
147  Index* jCol
148  );
149 
150  static void FillValues_(
151  Index n_entries,
152  const DiagMatrix& matrix,
153  Number* values
154  );
155 
156  static void FillRowCol_(
157  Index n_entries,
158  const IdentityMatrix& matrix,
159  Index row_offset,
160  Index col_offset,
161  Index* iRow,
162  Index* jCol
163  );
164 
165  static void FillValues_(
166  Index n_entries,
167  const IdentityMatrix& matrix,
168  Number* values
169  );
170 
171  static void FillRowCol_(
172  Index n_entries,
173  const ExpansionMatrix& matrix,
174  Index row_offset,
175  Index col_offset,
176  Index* iRow,
177  Index* jCol
178  );
179 
180  static void FillValues_(
181  Index n_entries,
182  const ExpansionMatrix& matrix,
183  Number* values
184  );
185 
186  static void FillRowCol_(
187  Index n_entries,
188  const SumMatrix& matrix,
189  Index row_offset,
190  Index col_offset,
191  Index* iRow,
192  Index* jCol
193  );
194 
195  static void FillValues_(
196  Index n_entries,
197  const SumMatrix& matrix,
198  Number* values
199  );
200 
201  static void FillRowCol_(
202  Index n_entries,
203  const SumSymMatrix& matrix,
204  Index row_offset,
205  Index col_offset,
206  Index* iRow,
207  Index* jCol
208  );
209 
210  static void FillValues_(
211  Index n_entries,
212  const SumSymMatrix& matrix,
213  Number* values
214  );
215 
216  static void FillRowCol_(
217  Index n_entries,
218  const CompoundMatrix& matrix,
219  Index row_offset,
220  Index col_offset,
221  Index* iRow,
222  Index* jCol
223  );
224 
225  static void FillValues_(
226  Index n_entries,
227  const CompoundMatrix& matrix,
228  Number* values
229  );
230 
231  static void FillRowCol_(
232  Index n_entries,
233  const CompoundSymMatrix& matrix,
234  Index row_offset,
235  Index col_offset,
236  Index* iRow,
237  Index* jCol
238  );
239 
240  static void FillValues_(
241  Index n_entries,
242  const CompoundSymMatrix& matrix,
243  Number* values
244  );
245 
246  static void FillRowCol_(
247  Index n_entries,
248  const ScaledMatrix& matrix,
249  Index row_offset,
250  Index col_offset,
251  Index* iRow,
252  Index* jCol
253  );
254 
255  static void FillValues_(
256  Index n_entries,
257  const ScaledMatrix& matrix,
258  Number* values
259  );
260 
261  static void FillRowCol_(
262  Index n_entries,
263  const SymScaledMatrix& matrix,
264  Index row_offset,
265  Index col_offset,
266  Index* iRow,
267  Index* jCol
268  );
269 
270  static void FillValues_(
271  Index n_entries,
272  const SymScaledMatrix& matrix,
273  Number* values
274  );
275 
276  static void FillRowCol_(
277  Index n_entries,
278  const TransposeMatrix& matrix,
279  Index row_offset,
280  Index col_offset,
281  Index* iRow,
282  Index* jCol
283  );
284 
285  static void FillValues_(
286  Index n_entries,
287  const TransposeMatrix& matrix,
288  Number* values
289  );
290 
291  static void FillRowCol_(
292  Index n_entries,
293  const ExpandedMultiVectorMatrix& matrix,
294  Index row_offset,
295  Index col_offset,
296  Index* iRow,
297  Index* jCol
298  );
299 
300  static void FillValues_(
301  Index n_entries,
302  const ExpandedMultiVectorMatrix& matrix,
303  Number* values
304  );
305 };
306 
307 } // namespace Ipopt
308 #endif
Ipopt::SymScaledMatrix
Class for a Matrix in conjunction with its scaling factors for row and column scaling.
Definition: IpSymScaledMatrix.hpp:26
Ipopt::CompoundSymMatrix
Class for symmetric matrices consisting of other matrices.
Definition: IpCompoundSymMatrix.hpp:23
Ipopt::ScaledMatrix
Class for a Matrix in conjunction with its scaling factors for row and column scaling.
Definition: IpScaledMatrix.hpp:26
Ipopt::SumMatrix
Class for Matrices which are sum of matrices.
Definition: IpSumMatrix.hpp:23
Ipopt
This file contains a base class for all exceptions and a set of macros to help with exceptions.
Definition: IpInexactAlgBuilder.hpp:13
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:15
Ipopt::Matrix
Matrix Base Class.
Definition: IpMatrix.hpp:27
Ipopt::CompoundMatrix
Class for Matrices consisting of other matrices.
Definition: IpCompoundMatrix.hpp:34
Ipopt::SumSymMatrix
Class for Matrices which are sum of symmetric matrices.
Definition: IpSumSymMatrix.hpp:23
IPOPTLIB_EXPORT
#define IPOPTLIB_EXPORT
Definition: config_default.h:16
Ipopt::TripletHelper
Definition: IpTripletHelper.hpp:38
Ipopt::Index
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:17
IpTypes.hpp
Ipopt::IdentityMatrix
Class for Matrices which are multiples of the identity matrix.
Definition: IpIdentityMatrix.hpp:17
Ipopt::GenTMatrix
Class for general matrices stored in triplet format.
Definition: IpGenTMatrix.hpp:34
Ipopt::ExpandedMultiVectorMatrix
Class for Matrices with few rows that consists of Vectors, together with a premultiplied Expansion ma...
Definition: IpExpandedMultiVectorMatrix.hpp:28
Ipopt::DiagMatrix
Class for diagonal matrices.
Definition: IpDiagMatrix.hpp:20
Ipopt::SymTMatrix
Class for symmetric matrices stored in triplet format.
Definition: IpSymTMatrix.hpp:39
Ipopt::TransposeMatrix
Class for Matrices which are the transpose of another matrix.
Definition: IpTransposeMatrix.hpp:19
IpException.hpp
Ipopt::DECLARE_STD_EXCEPTION
DECLARE_STD_EXCEPTION(FATAL_ERROR_IN_LINEAR_SOLVER)
Ipopt::ExpansionMatrix
Class for expansion/projection matrices.
Definition: IpExpansionMatrix.hpp:27
Ipopt::Vector
Vector Base Class.
Definition: IpVector.hpp:47