Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

ClpNetworkBasis Class Reference

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

#include <ClpNetworkBasis.hpp>

List of all members.

Public Methods

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 Methods

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


Detailed Description

This deals with Factorization and Updates for network structures.

Definition at line 22 of file ClpNetworkBasis.hpp.


Constructor & Destructor Documentation

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.


Member Function Documentation

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]
 


Member Data Documentation

double ClpNetworkBasis::slackValue_ [private]
 

Whether slack value is +1 or -1.

Definition at line 107 of file ClpNetworkBasis.hpp.

int ClpNetworkBasis::numberRows_ [private]
 

Number of Rows in factorization.

Definition at line 109 of file ClpNetworkBasis.hpp.

int ClpNetworkBasis::numberColumns_ [private]
 

Number of Columns in factorization.

Definition at line 111 of file ClpNetworkBasis.hpp.

const ClpSimplex* ClpNetworkBasis::model_ [private]
 

model

Definition at line 113 of file ClpNetworkBasis.hpp.

int* ClpNetworkBasis::parent_ [private]
 

Parent for each column.

Definition at line 115 of file ClpNetworkBasis.hpp.

int* ClpNetworkBasis::descendant_ [private]
 

Descendant.

Definition at line 117 of file ClpNetworkBasis.hpp.

int* ClpNetworkBasis::pivot_ [private]
 

Pivot row.

Definition at line 119 of file ClpNetworkBasis.hpp.

int* ClpNetworkBasis::rightSibling_ [private]
 

Right sibling.

Definition at line 121 of file ClpNetworkBasis.hpp.

int* ClpNetworkBasis::leftSibling_ [private]
 

Left sibling.

Definition at line 123 of file ClpNetworkBasis.hpp.

double* ClpNetworkBasis::sign_ [private]
 

Sign of pivot.

Definition at line 125 of file ClpNetworkBasis.hpp.

int* ClpNetworkBasis::stack_ [private]
 

Stack.

Definition at line 127 of file ClpNetworkBasis.hpp.

int* ClpNetworkBasis::permute_ [private]
 

Permute into array.

Definition at line 129 of file ClpNetworkBasis.hpp.

int* ClpNetworkBasis::permuteBack_ [private]
 

Permute back array.

Definition at line 131 of file ClpNetworkBasis.hpp.

int* ClpNetworkBasis::stack2_ [private]
 

Second stack.

Definition at line 133 of file ClpNetworkBasis.hpp.

int* ClpNetworkBasis::depth_ [private]
 

Depth.

Definition at line 135 of file ClpNetworkBasis.hpp.

char* ClpNetworkBasis::mark_ [private]
 

To mark rows.

Definition at line 137 of file ClpNetworkBasis.hpp.


The documentation for this class was generated from the following file:
Generated on Fri Aug 6 02:01:35 2004 by doxygen1.3-rc2