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:
42 
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 Number* 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
Class for diagonal matrices.
#define IPOPTLIB_EXPORT
Definition: config.h:94
DECLARE_STD_EXCEPTION(FATAL_ERROR_IN_LINEAR_SOLVER)
Class for a Matrix in conjunction with its scaling factors for row and column scaling.
Vector Base Class.
Definition: IpVector.hpp:47
Class for a Matrix in conjunction with its scaling factors for row and column scaling.
ipindex Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:20
This file contains a base class for all exceptions and a set of macros to help with exceptions...
Class for symmetric matrices consisting of other matrices.
Matrix Base Class.
Definition: IpMatrix.hpp:27
Class for Matrices which are the transpose of another matrix.
Class for Matrices which are multiples of the identity matrix.
Class for Matrices which are sum of symmetric matrices.
Class for Matrices with few rows that consists of Vectors, together with a premultiplied Expansion ma...
ipnumber Number
Type of all numbers.
Definition: IpTypes.hpp:17
Class for general matrices stored in triplet format.
Class for expansion/projection matrices.
Class for symmetric matrices stored in triplet format.
Class for Matrices which are sum of matrices.
Definition: IpSumMatrix.hpp:23
Class for Matrices consisting of other matrices.