#include <ClpNetworkBasis.hpp>
Collaboration diagram for ClpNetworkBasis:
Public Member Functions | |
Constructors and destructor and copy | |
ClpNetworkBasis () | |
Default constructor. | |
ClpNetworkBasis (const ClpSimplex *model, int numberRows, const double *pivotRegion, const int *permuteBack, const CoinBigIndex *startColumn, const int *numberInColumn, const int *indexRow, const double *element) | |
Constructor from CoinFactorization. | |
ClpNetworkBasis (const ClpNetworkBasis &other) | |
Copy constructor. | |
~ClpNetworkBasis () | |
Destructor. | |
ClpNetworkBasis & | operator= (const ClpNetworkBasis &other) |
= copy | |
Do factorization | |
int | factorize (const ClpMatrixBase *matrix, int rowIsBasic[], int columnIsBasic[]) |
When part of LP - given by basic variables. | |
rank one updates which do exist | |
int | replaceColumn (CoinIndexedVector *column, int pivotRow) |
Replaces one Column to basis, returns 0=OK, 1=Probably OK, 2=singular!! | |
various uses of factorization (return code number elements) | |
which user may want to know about | |
double | updateColumn (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, int pivotRow) |
Updates one column (FTRAN) from region, Returns pivot value if "pivotRow" >=0. | |
int | updateColumn (CoinIndexedVector *regionSparse, double array[]) const |
Updates one column (FTRAN) to/from array For large problems you should ALWAYS know where the nonzeros are, so please try and migrate to previous method after you have got code working using this simple method - thank you! (the only exception is if you know input is dense e.g. | |
int | updateColumnTranspose (CoinIndexedVector *regionSparse, double array[]) const |
Updates one column transpose (BTRAN) For large problems you should ALWAYS know where the nonzeros are, so please try and migrate to previous method after you have got code working using this simple method - thank you! (the only exception is if you know input is dense e.g. | |
int | updateColumnTranspose (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const |
Updates one column (BTRAN) from region2. | |
Private Member Functions | |
void | check () |
void | print () |
Private Attributes | |
data | |
double | slackValue_ |
Whether slack value is +1 or -1. | |
int | numberRows_ |
Number of Rows in factorization. | |
int | numberColumns_ |
Number of Columns in factorization. | |
const ClpSimplex * | model_ |
model | |
int * | parent_ |
Parent for each column. | |
int * | descendant_ |
Descendant. | |
int * | pivot_ |
Pivot row. | |
int * | rightSibling_ |
Right sibling. | |
int * | leftSibling_ |
Left sibling. | |
double * | sign_ |
Sign of pivot. | |
int * | stack_ |
Stack. | |
int * | permute_ |
Permute into array. | |
int * | permuteBack_ |
Permute back array. | |
int * | stack2_ |
Second stack. | |
int * | depth_ |
Depth. | |
char * | mark_ |
To mark rows. |
Definition at line 22 of file ClpNetworkBasis.hpp.
ClpNetworkBasis::ClpNetworkBasis | ( | ) |
Default constructor.
ClpNetworkBasis::ClpNetworkBasis | ( | const ClpSimplex * | model, | |
int | numberRows, | |||
const double * | pivotRegion, | |||
const int * | permuteBack, | |||
const CoinBigIndex * | startColumn, | |||
const int * | numberInColumn, | |||
const int * | indexRow, | |||
const double * | element | |||
) |
Constructor from CoinFactorization.
ClpNetworkBasis::ClpNetworkBasis | ( | const ClpNetworkBasis & | other | ) |
Copy constructor.
ClpNetworkBasis::~ClpNetworkBasis | ( | ) |
Destructor.
ClpNetworkBasis& ClpNetworkBasis::operator= | ( | const ClpNetworkBasis & | other | ) |
= copy
int ClpNetworkBasis::factorize | ( | const ClpMatrixBase * | matrix, | |
int | rowIsBasic[], | |||
int | columnIsBasic[] | |||
) |
When part of LP - given by basic variables.
Actually does factorization. Arrays passed in have non negative value to say basic. If status is okay, basic variables have pivot row - this is only needed if increasingRows_ >1. If status is singular, then basic variables have pivot row and ones thrown out have -1 returns 0 -okay, -1 singular, -2 too many in basis
int ClpNetworkBasis::replaceColumn | ( | CoinIndexedVector * | column, | |
int | pivotRow | |||
) |
Replaces one Column to basis, returns 0=OK, 1=Probably OK, 2=singular!!
double ClpNetworkBasis::updateColumn | ( | CoinIndexedVector * | regionSparse, | |
CoinIndexedVector * | regionSparse2, | |||
int | pivotRow | |||
) |
Updates one column (FTRAN) from region, Returns pivot value if "pivotRow" >=0.
int ClpNetworkBasis::updateColumn | ( | CoinIndexedVector * | regionSparse, | |
double | array[] | |||
) | const |
Updates one column (FTRAN) to/from array For large problems you should ALWAYS know where the nonzeros are, so please try and migrate to previous method after you have got code working using this simple method - thank you! (the only exception is if you know input is dense e.g.
rhs)
int ClpNetworkBasis::updateColumnTranspose | ( | CoinIndexedVector * | regionSparse, | |
double | array[] | |||
) | const |
Updates one column transpose (BTRAN) For large problems you should ALWAYS know where the nonzeros are, so please try and migrate to previous method after you have got code working using this simple method - thank you! (the only exception is if you know input is dense e.g.
dense objective) returns number of nonzeros
int ClpNetworkBasis::updateColumnTranspose | ( | CoinIndexedVector * | regionSparse, | |
CoinIndexedVector * | regionSparse2 | |||
) | const |
Updates one column (BTRAN) from region2.
void ClpNetworkBasis::check | ( | ) | [private] |
void ClpNetworkBasis::print | ( | ) | [private] |
double ClpNetworkBasis::slackValue_ [private] |
int ClpNetworkBasis::numberRows_ [private] |
int ClpNetworkBasis::numberColumns_ [private] |
const ClpSimplex* ClpNetworkBasis::model_ [private] |
int* ClpNetworkBasis::parent_ [private] |
int* ClpNetworkBasis::descendant_ [private] |
int* ClpNetworkBasis::pivot_ [private] |
int* ClpNetworkBasis::rightSibling_ [private] |
int* ClpNetworkBasis::leftSibling_ [private] |
double* ClpNetworkBasis::sign_ [private] |
int* ClpNetworkBasis::stack_ [private] |
int* ClpNetworkBasis::permute_ [private] |
int* ClpNetworkBasis::permuteBack_ [private] |
int* ClpNetworkBasis::stack2_ [private] |
int* ClpNetworkBasis::depth_ [private] |
char* ClpNetworkBasis::mark_ [private] |