Clp  1.17.8
List of all members
ClpNetworkBasis Class Reference

This deals with Factorization and Updates for network structures. More...

#include <ClpNetworkBasis.hpp>

+ Collaboration diagram for ClpNetworkBasis:

Public Member Functions

Constructors and destructor and copy
 ClpNetworkBasis ()
 Default constructor. More...
 
 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. More...
 
 ClpNetworkBasis (const ClpNetworkBasis &other)
 Copy constructor. More...
 
 ~ClpNetworkBasis ()
 Destructor. More...
 
ClpNetworkBasisoperator= (const ClpNetworkBasis &other)
 = copy More...
 
Do factorization
int factorize (const ClpMatrixBase *matrix, int rowIsBasic[], int columnIsBasic[])
 When part of LP - given by basic variables. More...
 
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!! More...
 

Private Attributes

data
int numberRows_
 Number of Rows in factorization. More...
 
int numberColumns_
 Number of Columns in factorization. More...
 
const ClpSimplexmodel_
 model More...
 
int * parent_
 Parent for each column. More...
 
int * descendant_
 Descendant. More...
 
int * pivot_
 Pivot row. More...
 
int * rightSibling_
 Right sibling. More...
 
int * leftSibling_
 Left sibling. More...
 
double * sign_
 Sign of pivot. More...
 
int * stack_
 Stack. More...
 
int * permute_
 Permute into array. More...
 
int * permuteBack_
 Permute back array. More...
 
int * stack2_
 Second stack. More...
 
int * depth_
 Depth. More...
 
char * mark_
 To mark rows. More...
 

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. More...
 
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. More...
 
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. More...
 
int updateColumnTranspose (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const
 Updates one column (BTRAN) from region2. More...
 
void check ()
 
void print ()
 

Detailed Description

This deals with Factorization and Updates for network structures.

Definition at line 25 of file ClpNetworkBasis.hpp.

Constructor & Destructor Documentation

◆ ClpNetworkBasis() [1/3]

ClpNetworkBasis::ClpNetworkBasis ( )

Default constructor.

◆ ClpNetworkBasis() [2/3]

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.

◆ ClpNetworkBasis() [3/3]

ClpNetworkBasis::ClpNetworkBasis ( const ClpNetworkBasis other)

Copy constructor.

◆ ~ClpNetworkBasis()

ClpNetworkBasis::~ClpNetworkBasis ( )

Destructor.

Member Function Documentation

◆ operator=()

ClpNetworkBasis& ClpNetworkBasis::operator= ( const ClpNetworkBasis other)

= copy

◆ factorize()

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

◆ replaceColumn()

int ClpNetworkBasis::replaceColumn ( CoinIndexedVector *  column,
int  pivotRow 
)

Replaces one Column to basis, returns 0=OK, 1=Probably OK, 2=singular!!

◆ updateColumn() [1/2]

double ClpNetworkBasis::updateColumn ( CoinIndexedVector *  regionSparse,
CoinIndexedVector *  regionSparse2,
int  pivotRow 
)

Updates one column (FTRAN) from region, Returns pivot value if "pivotRow" >=0.

◆ updateColumn() [2/2]

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)

◆ updateColumnTranspose() [1/2]

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

◆ updateColumnTranspose() [2/2]

int ClpNetworkBasis::updateColumnTranspose ( CoinIndexedVector *  regionSparse,
CoinIndexedVector *  regionSparse2 
) const

Updates one column (BTRAN) from region2.

◆ check()

void ClpNetworkBasis::check ( )
private

◆ print()

void ClpNetworkBasis::print ( )
private

Member Data Documentation

◆ numberRows_

int ClpNetworkBasis::numberRows_
private

Number of Rows in factorization.

Definition at line 112 of file ClpNetworkBasis.hpp.

◆ numberColumns_

int ClpNetworkBasis::numberColumns_
private

Number of Columns in factorization.

Definition at line 114 of file ClpNetworkBasis.hpp.

◆ model_

const ClpSimplex* ClpNetworkBasis::model_
private

model

Definition at line 116 of file ClpNetworkBasis.hpp.

◆ parent_

int* ClpNetworkBasis::parent_
private

Parent for each column.

Definition at line 118 of file ClpNetworkBasis.hpp.

◆ descendant_

int* ClpNetworkBasis::descendant_
private

Descendant.

Definition at line 120 of file ClpNetworkBasis.hpp.

◆ pivot_

int* ClpNetworkBasis::pivot_
private

Pivot row.

Definition at line 122 of file ClpNetworkBasis.hpp.

◆ rightSibling_

int* ClpNetworkBasis::rightSibling_
private

Right sibling.

Definition at line 124 of file ClpNetworkBasis.hpp.

◆ leftSibling_

int* ClpNetworkBasis::leftSibling_
private

Left sibling.

Definition at line 126 of file ClpNetworkBasis.hpp.

◆ sign_

double* ClpNetworkBasis::sign_
private

Sign of pivot.

Definition at line 128 of file ClpNetworkBasis.hpp.

◆ stack_

int* ClpNetworkBasis::stack_
private

Stack.

Definition at line 130 of file ClpNetworkBasis.hpp.

◆ permute_

int* ClpNetworkBasis::permute_
private

Permute into array.

Definition at line 132 of file ClpNetworkBasis.hpp.

◆ permuteBack_

int* ClpNetworkBasis::permuteBack_
private

Permute back array.

Definition at line 134 of file ClpNetworkBasis.hpp.

◆ stack2_

int* ClpNetworkBasis::stack2_
private

Second stack.

Definition at line 136 of file ClpNetworkBasis.hpp.

◆ depth_

int* ClpNetworkBasis::depth_
private

Depth.

Definition at line 138 of file ClpNetworkBasis.hpp.

◆ mark_

char* ClpNetworkBasis::mark_
private

To mark rows.

Definition at line 140 of file ClpNetworkBasis.hpp.


The documentation for this class was generated from the following file: