Ipopt 3.11.9
Loading...
Searching...
No Matches
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// $Id: IpTripletHelper.hpp 1861 2010-12-21 21:34:47Z andreasw $
6//
7// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9#ifndef __IPTRIPLETHELPER_HPP__
10#define __IPTRIPLETHELPER_HPP__
11
12#include "IpTypes.hpp"
13#include "IpException.hpp"
14
15namespace Ipopt
16{
17
18 DECLARE_STD_EXCEPTION(UNKNOWN_MATRIX_TYPE);
19 DECLARE_STD_EXCEPTION(UNKNOWN_VECTOR_TYPE);
20
22 class Matrix;
23 class GenTMatrix;
24 class SymTMatrix;
25 class DiagMatrix;
26 class IdentityMatrix;
27 class ExpansionMatrix;
28 class ScaledMatrix;
29 class SymScaledMatrix;
30 class SumMatrix;
31 class SumSymMatrix;
32 class ZeroMatrix;
33 class CompoundMatrix;
35 class TransposeMatrix;
37 class Vector;
38
40 {
41 public:
45 static Index GetNumberEntries(const Matrix& matrix);
46
48 static void FillRowCol(Index n_entries, const Matrix& matrix, Index* iRow, Index* jCol, Index row_offset=0, Index col_offset=0);
49
51 static void FillValues(Index n_entries, const Matrix& matrix, Number* values);
52
54 static void FillValuesFromVector(Index dim, const Vector& vector, Number* values);
55
57 static void PutValuesInVector(Index dim, const double* values, Vector& vector);
59
60 private:
62 static Index GetNumberEntries_(const SumMatrix& matrix);
63
65 static Index GetNumberEntries_(const SumSymMatrix& matrix);
66
68 static Index GetNumberEntries_(const CompoundMatrix& matrix);
69
72
75
78
79 static void FillRowCol_(Index n_entries, const GenTMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol);
80
81 static void FillValues_(Index n_entries, const GenTMatrix& matrix, Number* values);
82
83 static void FillRowCol_(Index n_entries, const SymTMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol);
84
85 static void FillValues_(Index n_entries, const SymTMatrix& matrix, Number* values);
86
87 static void FillRowCol_(Index n_entries, const DiagMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol);
88
89 static void FillValues_(Index n_entries, const DiagMatrix& matrix, Number* values);
90
91 static void FillRowCol_(Index n_entries, const IdentityMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol);
92
93 static void FillValues_(Index n_entries, const IdentityMatrix& matrix, Number* values);
94
95 static void FillRowCol_(Index n_entries, const ExpansionMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol);
96
97 static void FillValues_(Index n_entries, const ExpansionMatrix& matrix, Number* values);
98
99 static void FillRowCol_(Index n_entries, const SumMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol);
100
101 static void FillValues_(Index n_entries, const SumMatrix& matrix, Number* values);
102
103 static void FillRowCol_(Index n_entries, const SumSymMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol);
104
105 static void FillValues_(Index n_entries, const SumSymMatrix& matrix, Number* values);
106
107 static void FillRowCol_(Index n_entries, const CompoundMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol);
108
109 static void FillValues_(Index n_entries, const CompoundMatrix& matrix, Number* values);
110
111 static void FillRowCol_(Index n_entries, const CompoundSymMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol);
112
113 static void FillValues_(Index n_entries, const CompoundSymMatrix& matrix, Number* values);
114
115 static void FillRowCol_(Index n_entries, const ScaledMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol);
116
117 static void FillValues_(Index n_entries, const ScaledMatrix& matrix, Number* values);
118
119 static void FillRowCol_(Index n_entries, const SymScaledMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol);
120
121 static void FillValues_(Index n_entries, const SymScaledMatrix& matrix, Number* values);
122
123 static void FillRowCol_(Index n_entries, const TransposeMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol);
124
125 static void FillValues_(Index n_entries, const TransposeMatrix& matrix, Number* values);
126
127 static void FillRowCol_(Index n_entries, const ExpandedMultiVectorMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol);
128
129 static void FillValues_(Index n_entries, const ExpandedMultiVectorMatrix& matrix, Number* values);
130
131 };
132} // namespace Ipopt
133
134#endif
#define DECLARE_STD_EXCEPTION(__except_type)
Class for Matrices consisting of other matrices.
Class for symmetric matrices consisting of other matrices.
Class for diagonal matrices.
Class for Matrices with few rows that consists of Vectors, together with a premultiplied Expansion ma...
Class for expansion/projection matrices.
Class for general matrices stored in triplet format.
Class for Matrices which are multiples of the identity matrix.
Matrix Base Class.
Definition IpMatrix.hpp:28
Class for a Matrix in conjunction with its scaling factors for row and column scaling.
Class for Matrices which are sum of matrices.
Class for Matrices which are sum of symmetric matrices.
Class for a Matrix in conjunction with its scaling factors for row and column scaling.
Class for symmetric matrices stored in triplet format.
Class for Matrices which are the transpose of another matrix.
static void FillRowCol_(Index n_entries, const ExpandedMultiVectorMatrix &matrix, Index row_offset, Index col_offset, Index *iRow, Index *jCol)
static Index GetNumberEntries_(const SumMatrix &matrix)
find the total number of triplet entries for the SumMatrix
static void FillRowCol_(Index n_entries, const SymScaledMatrix &matrix, Index row_offset, Index col_offset, Index *iRow, Index *jCol)
static void FillRowCol_(Index n_entries, const DiagMatrix &matrix, Index row_offset, Index col_offset, Index *iRow, Index *jCol)
static void FillValues_(Index n_entries, const CompoundSymMatrix &matrix, Number *values)
static void FillRowCol_(Index n_entries, const SumMatrix &matrix, Index row_offset, Index col_offset, Index *iRow, Index *jCol)
static void FillValues_(Index n_entries, const TransposeMatrix &matrix, Number *values)
static Index GetNumberEntries_(const ExpandedMultiVectorMatrix &matrix)
find the total number of triplet entries for the TransposeMatrix
static void FillValues_(Index n_entries, const SumSymMatrix &matrix, Number *values)
static Index GetNumberEntries_(const TransposeMatrix &matrix)
find the total number of triplet entries for the TransposeMatrix
static void FillRowCol_(Index n_entries, const ExpansionMatrix &matrix, Index row_offset, Index col_offset, Index *iRow, Index *jCol)
static void FillRowCol_(Index n_entries, const TransposeMatrix &matrix, Index row_offset, Index col_offset, Index *iRow, Index *jCol)
static void FillValues_(Index n_entries, const IdentityMatrix &matrix, Number *values)
static Index GetNumberEntries_(const SumSymMatrix &matrix)
find the total number of triplet entries for the SumSymMatrix
static void FillRowCol_(Index n_entries, const SymTMatrix &matrix, Index row_offset, Index col_offset, Index *iRow, Index *jCol)
static Index GetNumberEntries(const Matrix &matrix)
find the total number of triplet entries of a Matrix
static void FillValues_(Index n_entries, const CompoundMatrix &matrix, Number *values)
static void FillRowCol_(Index n_entries, const CompoundMatrix &matrix, Index row_offset, Index col_offset, Index *iRow, Index *jCol)
static void FillValues_(Index n_entries, const ExpansionMatrix &matrix, Number *values)
static void FillValues_(Index n_entries, const GenTMatrix &matrix, Number *values)
static void FillValues_(Index n_entries, const DiagMatrix &matrix, Number *values)
static Index GetNumberEntries_(const CompoundMatrix &matrix)
find the total number of triplet entries for the CompoundMatrix
static void FillValuesFromVector(Index dim, const Vector &vector, Number *values)
fill the values from the vector into a dense double* structure
static void FillValues(Index n_entries, const Matrix &matrix, Number *values)
fill the values for the triplet format from the matrix
static void FillValues_(Index n_entries, const SymScaledMatrix &matrix, Number *values)
static void FillValues_(Index n_entries, const ExpandedMultiVectorMatrix &matrix, Number *values)
static void FillValues_(Index n_entries, const ScaledMatrix &matrix, Number *values)
static void FillRowCol_(Index n_entries, const CompoundSymMatrix &matrix, Index row_offset, Index col_offset, Index *iRow, Index *jCol)
static void FillValues_(Index n_entries, const SymTMatrix &matrix, Number *values)
static void FillRowCol(Index n_entries, const Matrix &matrix, Index *iRow, Index *jCol, Index row_offset=0, Index col_offset=0)
fill the irows, jcols structure for the triplet format from the matrix
static void FillRowCol_(Index n_entries, const IdentityMatrix &matrix, Index row_offset, Index col_offset, Index *iRow, Index *jCol)
static void PutValuesInVector(Index dim, const double *values, Vector &vector)
put the values from the double* back into the vector
static void FillValues_(Index n_entries, const SumMatrix &matrix, Number *values)
static Index GetNumberEntries_(const CompoundSymMatrix &matrix)
find the total number of triplet entries for the CompoundSymMatrix
static void FillRowCol_(Index n_entries, const GenTMatrix &matrix, Index row_offset, Index col_offset, Index *iRow, Index *jCol)
static void FillRowCol_(Index n_entries, const SumSymMatrix &matrix, Index row_offset, Index col_offset, Index *iRow, Index *jCol)
static void FillRowCol_(Index n_entries, const ScaledMatrix &matrix, Index row_offset, Index col_offset, Index *iRow, Index *jCol)
Vector Base Class.
Definition IpVector.hpp:48
Class for Matrices with only zero entries.
int Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:19
double Number
Type of all numbers.
Definition IpTypes.hpp:17