Clp  1.17.3
List of all members
ClpNetworkBasis Class Reference

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

#include <ClpNetworkBasis.hpp>

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...
 
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...
 

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.


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