Cgl 0.59.7

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ClpNetworkBasis.hpp
Go to the documentation of this file.
1 /* $Id: ClpNetworkBasis.hpp 1722 2011-04-17 09:58:37Z stefan $ */
2 // Copyright (C) 2003, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 // This code is licensed under the terms of the Eclipse Public License (EPL).
5 /*
6 Authors
7
8 John Forrest
9
10 */
11 #ifndef ClpNetworkBasis_H
12 #define ClpNetworkBasis_H
13
14 class ClpMatrixBase;
15 class CoinIndexedVector;
16 class ClpSimplex;
17 #include "CoinTypes.hpp"
18 #ifndef COIN_FAST_CODE
19 #define COIN_FAST_CODE
20 #endif
21
26 class ClpNetworkBasis {
27
28 public:
29
32 ClpNetworkBasis ( );
35 ClpNetworkBasis(const ClpSimplex * model,
36 int numberRows, const CoinFactorizationDouble * pivotRegion,
37 const int * permuteBack, const CoinBigIndex * startColumn,
38 const int * numberInColumn,
39 const int * indexRow, const CoinFactorizationDouble * element);
41 ClpNetworkBasis ( const ClpNetworkBasis &other);
42
44 ~ClpNetworkBasis ( );
46 ClpNetworkBasis & operator = ( const ClpNetworkBasis & other );
48
59 int factorize ( const ClpMatrixBase * matrix,
60 int rowIsBasic[], int columnIsBasic[]);
62
65
69 int replaceColumn ( CoinIndexedVector * column,
70 int pivotRow);
72
79 double updateColumn ( CoinIndexedVector * regionSparse,
80 CoinIndexedVector * regionSparse2,
81 int pivotRow);
87 int updateColumn ( CoinIndexedVector * regionSparse,
88 double array[] ) const;
95 int updateColumnTranspose ( CoinIndexedVector * regionSparse,
96 double array[] ) const;
98 int updateColumnTranspose ( CoinIndexedVector * regionSparse,
99 CoinIndexedVector * regionSparse2) const;
101 private:
103
104 // checks looks okay
105 void check();
106 // prints data
107 void print();
110 #ifndef COIN_FAST_CODE
111 double slackValue_;
113 #endif
114 int numberRows_;
117 int numberColumns_;
119 const ClpSimplex * model_;
121 int * parent_;
123 int * descendant_;
125 int * pivot_;
127 int * rightSibling_;
129 int * leftSibling_;
131 double * sign_;
133 int * stack_;
135 int * permute_;
137 int * permuteBack_;
139 int * stack2_;
141 int * depth_;
143 char * mark_;
145 };
146 #endif
ClpNetworkBasis::permuteBack_
int * permuteBack_
Permute back array.
Definition: ClpNetworkBasis.hpp:137
ClpNetworkBasis::parent_
int * parent_
Parent for each column.
Definition: ClpNetworkBasis.hpp:121
ClpMatrixBase
Abstract base class for Clp Matrices.
Definition: ClpMatrixBase.hpp:38
CoinTypes.hpp
ClpNetworkBasis::numberColumns_
int numberColumns_
Number of Columns in factorization.
Definition: ClpNetworkBasis.hpp:117
ClpNetworkBasis
This deals with Factorization and Updates for network structures.
Definition: ClpNetworkBasis.hpp:26
ClpNetworkBasis::pivot_
int * pivot_
Pivot row.
Definition: ClpNetworkBasis.hpp:125
ClpNetworkBasis::updateColumnTranspose
int updateColumnTranspose(CoinIndexedVector *regionSparse, double array[]) const
Updates one column transpose (BTRAN) For large problems you should ALWAYS know where the nonzeros are...
ClpNetworkBasis::factorize
int factorize(const ClpMatrixBase *matrix, int rowIsBasic[], int columnIsBasic[])
When part of LP - given by basic variables.
ClpNetworkBasis::updateColumn
double updateColumn(CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, int pivotRow)
Updates one column (FTRAN) from region, Returns pivot value if &quot;pivotRow&quot; &gt;=0.
ClpNetworkBasis::check
void check()
ClpNetworkBasis::print
void print()
ClpNetworkBasis::depth_
int * depth_
Depth.
Definition: ClpNetworkBasis.hpp:141
ClpNetworkBasis::descendant_
int * descendant_
Descendant.
Definition: ClpNetworkBasis.hpp:123
CoinFactorizationDouble
double CoinFactorizationDouble
Definition: CoinTypes.hpp:57
ClpNetworkBasis::sign_
double * sign_
Sign of pivot.
Definition: ClpNetworkBasis.hpp:131
ClpSimplex
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:70
CoinIndexedVector
Indexed Vector.
Definition: CoinIndexedVector.hpp:104
ClpNetworkBasis::numberRows_
int numberRows_
Number of Rows in factorization.
Definition: ClpNetworkBasis.hpp:115
ClpNetworkBasis::replaceColumn
int replaceColumn(CoinIndexedVector *column, int pivotRow)
Replaces one Column to basis, returns 0=OK, 1=Probably OK, 2=singular!!
ClpNetworkBasis::model_
const ClpSimplex * model_
model
Definition: ClpNetworkBasis.hpp:119
ClpNetworkBasis::stack2_
int * stack2_
Second stack.
Definition: ClpNetworkBasis.hpp:139
ClpNetworkBasis::operator=
ClpNetworkBasis & operator=(const ClpNetworkBasis &other)
= copy
CoinBigIndex
int CoinBigIndex
Definition: Coin_C_defines.h:105
ClpNetworkBasis::rightSibling_
int * rightSibling_
Right sibling.
Definition: ClpNetworkBasis.hpp:127
ClpNetworkBasis::permute_
int * permute_
Permute into array.
Definition: ClpNetworkBasis.hpp:135
ClpNetworkBasis::~ClpNetworkBasis
~ClpNetworkBasis()
Destructor.
ClpNetworkBasis::leftSibling_
int * leftSibling_
Left sibling.
Definition: ClpNetworkBasis.hpp:129
ClpNetworkBasis::ClpNetworkBasis
ClpNetworkBasis()
Default constructor.
ClpNetworkBasis::stack_
int * stack_
Stack.
Definition: ClpNetworkBasis.hpp:133
ClpNetworkBasis::mark_
char * mark_
To mark rows.
Definition: ClpNetworkBasis.hpp:143