Clp
1.17.11
Toggle main menu visibility
Loading...
Searching...
No Matches
Clp
src
ClpNetworkBasis.hpp
Go to the documentation of this file.
1
/* $Id$ */
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
24
25
class
ClpNetworkBasis
{
26
27
public
:
30
31
ClpNetworkBasis
();
33
ClpNetworkBasis
(
const
ClpSimplex
*model,
34
int
numberRows,
const
CoinFactorizationDouble *pivotRegion,
35
const
int
*permuteBack,
const
int
*startColumn,
36
const
int
*numberInColumn,
37
const
int
*indexRow,
const
CoinFactorizationDouble *element);
39
ClpNetworkBasis
(
const
ClpNetworkBasis
&other);
40
42
~ClpNetworkBasis
();
44
ClpNetworkBasis
&
operator=
(
const
ClpNetworkBasis
&other);
46
49
57
int
factorize
(
const
ClpMatrixBase
*matrix,
58
int
rowIsBasic[],
int
columnIsBasic[]);
60
63
67
int
replaceColumn
(CoinIndexedVector *column,
68
int
pivotRow);
70
74
77
double
updateColumn
(CoinIndexedVector *regionSparse,
78
CoinIndexedVector *regionSparse2,
79
int
pivotRow);
85
int
updateColumn
(CoinIndexedVector *regionSparse,
86
double
array[])
const
;
93
int
updateColumnTranspose
(CoinIndexedVector *regionSparse,
94
double
array[])
const
;
96
int
updateColumnTranspose
(CoinIndexedVector *regionSparse,
97
CoinIndexedVector *regionSparse2)
const
;
99
100
private
:
101
// checks looks okay
102
void
check
();
103
// prints data
104
void
print
();
107
#ifndef COIN_FAST_CODE
109
double
slackValue_;
110
#endif
112
int
numberRows_
;
114
int
numberColumns_
;
116
const
ClpSimplex
*
model_
;
118
int
*
parent_
;
120
int
*
descendant_
;
122
int
*
pivot_
;
124
int
*
rightSibling_
;
126
int
*
leftSibling_
;
128
double
*
sign_
;
130
int
*
stack_
;
132
int
*
permute_
;
134
int
*
permuteBack_
;
136
int
*
stack2_
;
138
int
*
depth_
;
140
char
*
mark_
;
142
};
143
#endif
144
145
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
146
*/
ClpMatrixBase
Abstract base class for Clp Matrices.
Definition
ClpMatrixBase.hpp:38
ClpNetworkBasis::sign_
double * sign_
Sign of pivot.
Definition
ClpNetworkBasis.hpp:128
ClpNetworkBasis::depth_
int * depth_
Depth.
Definition
ClpNetworkBasis.hpp:138
ClpNetworkBasis::updateColumn
double updateColumn(CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, int pivotRow)
Updates one column (FTRAN) from region, Returns pivot value if "pivotRow" >=0.
ClpNetworkBasis::permuteBack_
int * permuteBack_
Permute back array.
Definition
ClpNetworkBasis.hpp:134
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::operator=
ClpNetworkBasis & operator=(const ClpNetworkBasis &other)
= copy
ClpNetworkBasis::permute_
int * permute_
Permute into array.
Definition
ClpNetworkBasis.hpp:132
ClpNetworkBasis::~ClpNetworkBasis
~ClpNetworkBasis()
Destructor.
ClpNetworkBasis::numberColumns_
int numberColumns_
Number of Columns in factorization.
Definition
ClpNetworkBasis.hpp:114
ClpNetworkBasis::pivot_
int * pivot_
Pivot row.
Definition
ClpNetworkBasis.hpp:122
ClpNetworkBasis::leftSibling_
int * leftSibling_
Left sibling.
Definition
ClpNetworkBasis.hpp:126
ClpNetworkBasis::updateColumn
int updateColumn(CoinIndexedVector *regionSparse, double array[]) const
Updates one column (FTRAN) to/from array For large problems you should ALWAYS know where the nonzeros...
ClpNetworkBasis::parent_
int * parent_
Parent for each column.
Definition
ClpNetworkBasis.hpp:118
ClpNetworkBasis::ClpNetworkBasis
ClpNetworkBasis()
Default constructor.
ClpNetworkBasis::factorize
int factorize(const ClpMatrixBase *matrix, int rowIsBasic[], int columnIsBasic[])
When part of LP - given by basic variables.
ClpNetworkBasis::model_
const ClpSimplex * model_
model
Definition
ClpNetworkBasis.hpp:116
ClpNetworkBasis::updateColumnTranspose
int updateColumnTranspose(CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const
Updates one column (BTRAN) from region2.
ClpNetworkBasis::stack2_
int * stack2_
Second stack.
Definition
ClpNetworkBasis.hpp:136
ClpNetworkBasis::replaceColumn
int replaceColumn(CoinIndexedVector *column, int pivotRow)
Replaces one Column to basis, returns 0=OK, 1=Probably OK, 2=singular!
ClpNetworkBasis::mark_
char * mark_
To mark rows.
Definition
ClpNetworkBasis.hpp:140
ClpNetworkBasis::stack_
int * stack_
Stack.
Definition
ClpNetworkBasis.hpp:130
ClpNetworkBasis::descendant_
int * descendant_
Descendant.
Definition
ClpNetworkBasis.hpp:120
ClpNetworkBasis::numberRows_
int numberRows_
Number of Rows in factorization.
Definition
ClpNetworkBasis.hpp:112
ClpNetworkBasis::ClpNetworkBasis
ClpNetworkBasis(const ClpNetworkBasis &other)
Copy constructor.
ClpNetworkBasis::print
void print()
ClpNetworkBasis::rightSibling_
int * rightSibling_
Right sibling.
Definition
ClpNetworkBasis.hpp:124
ClpNetworkBasis::check
void check()
ClpNetworkBasis::ClpNetworkBasis
ClpNetworkBasis(const ClpSimplex *model, int numberRows, const CoinFactorizationDouble *pivotRegion, const int *permuteBack, const int *startColumn, const int *numberInColumn, const int *indexRow, const CoinFactorizationDouble *element)
Constructor from CoinFactorization.
ClpSimplex
This solves LPs using the simplex method.
Definition
ClpSimplex.hpp:106
Generated by
1.17.0