Cbc  2.9.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Related Functions | List of all members
CoinPrePostsolveMatrix Class Reference

Collects all the information about the problem that is needed in both presolve and postsolve. More...

#include <CoinPresolveMatrix.hpp>

+ Inheritance diagram for CoinPrePostsolveMatrix:
+ Collaboration diagram for CoinPrePostsolveMatrix:

Public Types

enum  Status {
  isFree = 0x00, basic = 0x01, atUpperBound = 0x02, atLowerBound = 0x03,
  superBasic = 0x04
}
 Enum for status of various sorts. More...
 

Public Member Functions

Constructors & Destructors
 CoinPrePostsolveMatrix (int ncols_alloc, int nrows_alloc, CoinBigIndex nelems_alloc)
 `Native' constructor More...
 
 CoinPrePostsolveMatrix (const OsiSolverInterface *si, int ncols_, int nrows_, CoinBigIndex nelems_)
 Generic OSI constructor. More...
 
 CoinPrePostsolveMatrix (const ClpSimplex *si, int ncols_, int nrows_, CoinBigIndex nelems_, double bulkRatio)
 ClpOsi constructor. More...
 
 ~CoinPrePostsolveMatrix ()
 Destructor. More...
 
Functions to work with variable status

Functions to work with the CoinPrePostsolveMatrix::Status enum and related vectors.

Todo:
Why are we futzing around with three bit status? A holdover from the packed arrays of CoinWarmStartBasis? Big swaths of the presolve code manipulates colstat_ and rowstat_ as unsigned char arrays using simple assignment to set values.
void setRowStatus (int sequence, Status status)
 Set row status (i.e., status of artificial for this row) More...
 
Status getRowStatus (int sequence) const
 Get row status. More...
 
bool rowIsBasic (int sequence) const
 Check if artificial for this row is basic. More...
 
void setColumnStatus (int sequence, Status status)
 Set column status (i.e., status of primal variable) More...
 
Status getColumnStatus (int sequence) const
 Get column (structural variable) status. More...
 
bool columnIsBasic (int sequence) const
 Check if column (structural variable) is basic. More...
 
void setRowStatusUsingValue (int iRow)
 Set status of row (artificial variable) to the correct nonbasic status given bounds and current value. More...
 
void setColumnStatusUsingValue (int iColumn)
 Set status of column (structural variable) to the correct nonbasic status given bounds and current value. More...
 
void setStructuralStatus (const char *strucStatus, int lenParam)
 Set column (structural variable) status vector. More...
 
void setArtificialStatus (const char *artifStatus, int lenParam)
 Set row (artificial variable) status vector. More...
 
void setStatus (const CoinWarmStartBasis *basis)
 Set the status of all variables from a basis. More...
 
CoinWarmStartBasisgetStatus ()
 Get status in the form of a CoinWarmStartBasis. More...
 
const char * columnStatusString (int j) const
 Return a print string for status of a column (structural variable) More...
 
const char * rowStatusString (int i) const
 Return a print string for status of a row (artificial variable) More...
 
Functions to load problem and solution information

These functions can be used to load portions of the problem definition and solution.

See also the CoinPresolveMatrix and CoinPostsolveMatrix classes.

void setObjOffset (double offset)
 Set the objective function offset for the original system. More...
 
void setObjSense (double objSense)
 Set the objective sense (max/min) More...
 
void setPrimalTolerance (double primTol)
 Set the primal feasibility tolerance. More...
 
void setDualTolerance (double dualTol)
 Set the dual feasibility tolerance. More...
 
void setColLower (const double *colLower, int lenParam)
 Set column lower bounds. More...
 
void setColUpper (const double *colUpper, int lenParam)
 Set column upper bounds. More...
 
void setColSolution (const double *colSol, int lenParam)
 Set column solution. More...
 
void setCost (const double *cost, int lenParam)
 Set objective coefficients. More...
 
void setReducedCost (const double *redCost, int lenParam)
 Set reduced costs. More...
 
void setRowLower (const double *rowLower, int lenParam)
 Set row lower bounds. More...
 
void setRowUpper (const double *rowUpper, int lenParam)
 Set row upper bounds. More...
 
void setRowPrice (const double *rowSol, int lenParam)
 Set row solution. More...
 
void setRowActivity (const double *rowAct, int lenParam)
 Set row activity. More...
 
Functions to retrieve problem and solution information
int getNumCols () const
 Get current number of columns. More...
 
int getNumRows () const
 Get current number of rows. More...
 
int getNumElems () const
 Get current number of non-zero coefficients. More...
 
const CoinBigIndexgetColStarts () const
 Get column start vector for column-major packed matrix. More...
 
const int * getColLengths () const
 Get column length vector for column-major packed matrix. More...
 
const int * getRowIndicesByCol () const
 Get vector of row indices for column-major packed matrix. More...
 
const double * getElementsByCol () const
 Get vector of elements for column-major packed matrix. More...
 
const double * getColLower () const
 Get column lower bounds. More...
 
const double * getColUpper () const
 Get column upper bounds. More...
 
const double * getCost () const
 Get objective coefficients. More...
 
const double * getRowLower () const
 Get row lower bounds. More...
 
const double * getRowUpper () const
 Get row upper bounds. More...
 
const double * getColSolution () const
 Get column solution (primal variable values) More...
 
const double * getRowActivity () const
 Get row activity (constraint lhs values) More...
 
const double * getRowPrice () const
 Get row solution (dual variables) More...
 
const double * getReducedCost () const
 Get reduced costs. More...
 
int countEmptyCols ()
 Count empty columns. More...
 

Public Attributes

Current and Allocated Size

During pre- and postsolve, the matrix will change in size.

During presolve it will shrink; during postsolve it will grow. Hence there are two sets of size variables, one for the current size and one for the allocated size. (See the general comments for the CoinPrePostsolveMatrix class for more information.)

int ncols_
 current number of columns More...
 
int nrows_
 current number of rows More...
 
CoinBigIndex nelems_
 current number of coefficients More...
 
int ncols0_
 Allocated number of columns. More...
 
int nrows0_
 Allocated number of rows. More...
 
CoinBigIndex nelems0_
 Allocated number of coefficients. More...
 
CoinBigIndex bulk0_
 Allocated size of bulk storage for row indices and coefficients. More...
 
double bulkRatio_
 Ratio of bulk0_ to nelems0_; default is 2. More...
 
Problem representation

The matrix is the common column-major format: A pair of vectors with positional correspondence to hold coefficients and row indices, and a second pair of vectors giving the starting position and length of each column in the first pair.

CoinBigIndexmcstrt_
 Vector of column start positions in hrow_, colels_. More...
 
int * hincol_
 Vector of column lengths. More...
 
int * hrow_
 Row indices (positional correspondence with colels_) More...
 
double * colels_
 Coefficients (positional correspondence with hrow_) More...
 
double * cost_
 Objective coefficients. More...
 
double originalOffset_
 Original objective offset. More...
 
double * clo_
 Column (primal variable) lower bounds. More...
 
double * cup_
 Column (primal variable) upper bounds. More...
 
double * rlo_
 Row (constraint) lower bounds. More...
 
double * rup_
 Row (constraint) upper bounds. More...
 
int * originalColumn_
 Original column numbers. More...
 
int * originalRow_
 Original row numbers. More...
 
double ztolzb_
 Primal feasibility tolerance. More...
 
double ztoldj_
 Dual feasibility tolerance. More...
 
double maxmin_
 Maximization/minimization. More...
 
Problem solution information

The presolve phase will work without any solution information (appropriate for initial optimisation) or with solution information (appropriate for reoptimisation).

When solution information is supplied, presolve will maintain it to the best of its ability. colstat_ is checked to determine the presence/absence of status information. sol_ is checked for primal solution information, and rowduals_ for dual solution information.

The postsolve phase requires the complete solution information from the presolved problem (status, primal and dual solutions). It will be transformed into a correct solution for the original problem.

double * sol_
 Vector of primal variable values. More...
 
double * rowduals_
 Vector of dual variable values. More...
 
double * acts_
 Vector of constraint left-hand-side values (row activity) More...
 
double * rcosts_
 Vector of reduced costs. More...
 
unsigned char * colstat_
 Status of primal variables. More...
 
unsigned char * rowstat_
 Status of constraints. More...
 

Related Functions

(Note that these are not member functions.)

const char * statusName (CoinPrePostsolveMatrix::Status status)
 Generate a print string for a status code. More...
 
void presolve_make_memlists (int *lengths, presolvehlink *link, int n)
 Initialise linked list for major vector order in bulk storage. More...
 
bool presolve_expand_major (CoinBigIndex *majstrts, double *majels, int *minndxs, int *majlens, presolvehlink *majlinks, int nmaj, int k)
 Make sure a major-dimension vector k has room for one more coefficient. More...
 
bool presolve_expand_col (CoinBigIndex *mcstrt, double *colels, int *hrow, int *hincol, presolvehlink *clink, int ncols, int colx)
 Make sure a column (colx) in a column-major matrix has room for one more coefficient. More...
 
bool presolve_expand_row (CoinBigIndex *mrstrt, double *rowels, int *hcol, int *hinrow, presolvehlink *rlink, int nrows, int rowx)
 Make sure a row (rowx) in a row-major matrix has room for one more coefficient. More...
 
CoinBigIndex presolve_find_minor (int tgt, CoinBigIndex ks, CoinBigIndex ke, const int *minndxs)
 Find position of a minor index in a major vector. More...
 
CoinBigIndex presolve_find_row (int row, CoinBigIndex kcs, CoinBigIndex kce, const int *hrow)
 Find position of a row in a column in a column-major matrix. More...
 
CoinBigIndex presolve_find_minor1 (int tgt, CoinBigIndex ks, CoinBigIndex ke, const int *minndxs)
 Find position of a minor index in a major vector. More...
 
CoinBigIndex presolve_find_row1 (int row, CoinBigIndex kcs, CoinBigIndex kce, const int *hrow)
 Find position of a row in a column in a column-major matrix. More...
 
CoinBigIndex presolve_find_col1 (int col, CoinBigIndex krs, CoinBigIndex kre, const int *hcol)
 Find position of a column in a row in a row-major matrix. More...
 
void presolve_delete_from_major (int majndx, int minndx, const CoinBigIndex *majstrts, int *majlens, int *minndxs, double *els)
 Delete the entry for a minor index from a major vector. More...
 
void presolve_delete_many_from_major (int majndx, char *marked, const CoinBigIndex *majstrts, int *majlens, int *minndxs, double *els)
 Delete marked entries. More...
 
void presolve_delete_from_col (int row, int col, const CoinBigIndex *mcstrt, int *hincol, int *hrow, double *colels)
 Delete the entry for row row from column col in a column-major matrix. More...
 
void presolve_delete_from_row (int row, int col, const CoinBigIndex *mrstrt, int *hinrow, int *hcol, double *rowels)
 Delete the entry for column col from row row in a row-major matrix. More...
 

Message handling

Uses the standard COIN approach: a default handler is installed, and the CoinPrePostsolveMatrix object takes responsibility for it.

If the client replaces the handler with one of their own, it becomes their responsibility.

CoinMessageHandlerhandler_
 Message handler. More...
 
bool defaultHandler_
 Indicates if the current handler_ is default (true) or not (false). More...
 
CoinMessage messages_
 Standard COIN messages. More...
 
CoinMessageHandlermessageHandler () const
 Return message handler. More...
 
void setMessageHandler (CoinMessageHandler *handler)
 Set message handler. More...
 
CoinMessages messages () const
 Return messages. More...
 

Detailed Description

Collects all the information about the problem that is needed in both presolve and postsolve.

In a bit more detail, a column-major representation of the constraint matrix and upper and lower bounds on variables and constraints, plus row and column solutions, reduced costs, and status. There's also a set of arrays holding the original row and column numbers.

As presolve and postsolve transform the matrix, it will occasionally be necessary to expand the number of entries in a column. There are two aspects:

The first is addressed by the members ncols0_, nrows0_, and nelems0_. These should be set (via constructor parameters) to values large enough for the largest size taken on by the constraint system. Typically, this will be the size of the original constraint system.

The second is addressed by a generous allocation of extra (empty) space for the arrays used to hold coefficients and row indices. When columns must be expanded, they are moved into the empty space. When it is used up, the arrays are compacted. When compaction fails to produce sufficient space, presolve/postsolve will fail.

CoinPrePostsolveMatrix isn't really intended to be used `bare' — the expectation is that it'll be used through CoinPresolveMatrix or CoinPostsolveMatrix. Some of the functions needed to load a problem are defined in the derived classes.

When CoinPresolve is applied when reoptimising, we need to be prepared to accept a basis and modify it in step with the presolve actions (otherwise we throw away all the advantages of warm start for reoptimization). But other solution components (acts_, rowduals_, sol_, and rcosts_) are needed only for postsolve, where they're used in places to determine the proper action(s) when restoring rows or columns. If presolve is provided with a solution, it will modify it in step with the presolve actions. Moving the solution components from CoinPrePostsolveMatrix to CoinPostsolveMatrix would break a lot of code. It's not clear that it's worth it, and it would preclude upgrades to the presolve side that might make use of any of these. – lh, 080501 –

The constructors that take an OSI or ClpSimplex as a parameter really should not be here, but for historical reasons they will likely remain for the forseeable future. – lh, 111202 –

Definition at line 265 of file CoinPresolveMatrix.hpp.

Member Enumeration Documentation

Enum for status of various sorts.

Matches CoinWarmStartBasis::Status and adds superBasic. Most code that converts between CoinPrePostsolveMatrix::Status and CoinWarmStartBasis::Status will break if this correspondence is broken.

superBasic is an unresolved problem: there's no analogue in CoinWarmStartBasis::Status.

Enumerator
isFree 
basic 
atUpperBound 
atLowerBound 
superBasic 

Definition at line 313 of file CoinPresolveMatrix.hpp.

Constructor & Destructor Documentation

CoinPrePostsolveMatrix::CoinPrePostsolveMatrix ( int  ncols_alloc,
int  nrows_alloc,
CoinBigIndex  nelems_alloc 
)

`Native' constructor

This constructor creates an empty object which must then be loaded. On the other hand, it doesn't assume that the client is an OsiSolverInterface.

CoinPrePostsolveMatrix::CoinPrePostsolveMatrix ( const OsiSolverInterface si,
int  ncols_,
int  nrows_,
CoinBigIndex  nelems_ 
)

Generic OSI constructor.

See OSI code for the definition.

CoinPrePostsolveMatrix::CoinPrePostsolveMatrix ( const ClpSimplex si,
int  ncols_,
int  nrows_,
CoinBigIndex  nelems_,
double  bulkRatio 
)

ClpOsi constructor.

See Clp code for the definition.

CoinPrePostsolveMatrix::~CoinPrePostsolveMatrix ( )

Destructor.

Member Function Documentation

void CoinPrePostsolveMatrix::setRowStatus ( int  sequence,
Status  status 
)
inline

Set row status (i.e., status of artificial for this row)

Definition at line 335 of file CoinPresolveMatrix.hpp.

Status CoinPrePostsolveMatrix::getRowStatus ( int  sequence) const
inline

Get row status.

Definition at line 342 of file CoinPresolveMatrix.hpp.

bool CoinPrePostsolveMatrix::rowIsBasic ( int  sequence) const
inline

Check if artificial for this row is basic.

Definition at line 345 of file CoinPresolveMatrix.hpp.

void CoinPrePostsolveMatrix::setColumnStatus ( int  sequence,
Status  status 
)
inline

Set column status (i.e., status of primal variable)

Definition at line 348 of file CoinPresolveMatrix.hpp.

Status CoinPrePostsolveMatrix::getColumnStatus ( int  sequence) const
inline

Get column (structural variable) status.

Definition at line 388 of file CoinPresolveMatrix.hpp.

bool CoinPrePostsolveMatrix::columnIsBasic ( int  sequence) const
inline

Check if column (structural variable) is basic.

Definition at line 391 of file CoinPresolveMatrix.hpp.

void CoinPrePostsolveMatrix::setRowStatusUsingValue ( int  iRow)

Set status of row (artificial variable) to the correct nonbasic status given bounds and current value.

void CoinPrePostsolveMatrix::setColumnStatusUsingValue ( int  iColumn)

Set status of column (structural variable) to the correct nonbasic status given bounds and current value.

void CoinPrePostsolveMatrix::setStructuralStatus ( const char *  strucStatus,
int  lenParam 
)

Set column (structural variable) status vector.

void CoinPrePostsolveMatrix::setArtificialStatus ( const char *  artifStatus,
int  lenParam 
)

Set row (artificial variable) status vector.

void CoinPrePostsolveMatrix::setStatus ( const CoinWarmStartBasis basis)

Set the status of all variables from a basis.

CoinWarmStartBasis* CoinPrePostsolveMatrix::getStatus ( )

Get status in the form of a CoinWarmStartBasis.

const char* CoinPrePostsolveMatrix::columnStatusString ( int  j) const

Return a print string for status of a column (structural variable)

const char* CoinPrePostsolveMatrix::rowStatusString ( int  i) const

Return a print string for status of a row (artificial variable)

void CoinPrePostsolveMatrix::setObjOffset ( double  offset)

Set the objective function offset for the original system.

void CoinPrePostsolveMatrix::setObjSense ( double  objSense)

Set the objective sense (max/min)

Coded as 1.0 for min, -1.0 for max. Yes, there's a method, and a matching attribute. No, you really don't want to set this to maximise.

void CoinPrePostsolveMatrix::setPrimalTolerance ( double  primTol)

Set the primal feasibility tolerance.

void CoinPrePostsolveMatrix::setDualTolerance ( double  dualTol)

Set the dual feasibility tolerance.

void CoinPrePostsolveMatrix::setColLower ( const double *  colLower,
int  lenParam 
)

Set column lower bounds.

void CoinPrePostsolveMatrix::setColUpper ( const double *  colUpper,
int  lenParam 
)

Set column upper bounds.

void CoinPrePostsolveMatrix::setColSolution ( const double *  colSol,
int  lenParam 
)

Set column solution.

void CoinPrePostsolveMatrix::setCost ( const double *  cost,
int  lenParam 
)

Set objective coefficients.

void CoinPrePostsolveMatrix::setReducedCost ( const double *  redCost,
int  lenParam 
)

Set reduced costs.

void CoinPrePostsolveMatrix::setRowLower ( const double *  rowLower,
int  lenParam 
)

Set row lower bounds.

void CoinPrePostsolveMatrix::setRowUpper ( const double *  rowUpper,
int  lenParam 
)

Set row upper bounds.

void CoinPrePostsolveMatrix::setRowPrice ( const double *  rowSol,
int  lenParam 
)

Set row solution.

void CoinPrePostsolveMatrix::setRowActivity ( const double *  rowAct,
int  lenParam 
)

Set row activity.

int CoinPrePostsolveMatrix::getNumCols ( ) const
inline

Get current number of columns.

Definition at line 462 of file CoinPresolveMatrix.hpp.

int CoinPrePostsolveMatrix::getNumRows ( ) const
inline

Get current number of rows.

Definition at line 465 of file CoinPresolveMatrix.hpp.

int CoinPrePostsolveMatrix::getNumElems ( ) const
inline

Get current number of non-zero coefficients.

Definition at line 468 of file CoinPresolveMatrix.hpp.

const CoinBigIndex* CoinPrePostsolveMatrix::getColStarts ( ) const
inline

Get column start vector for column-major packed matrix.

Definition at line 471 of file CoinPresolveMatrix.hpp.

const int* CoinPrePostsolveMatrix::getColLengths ( ) const
inline

Get column length vector for column-major packed matrix.

Definition at line 474 of file CoinPresolveMatrix.hpp.

const int* CoinPrePostsolveMatrix::getRowIndicesByCol ( ) const
inline

Get vector of row indices for column-major packed matrix.

Definition at line 477 of file CoinPresolveMatrix.hpp.

const double* CoinPrePostsolveMatrix::getElementsByCol ( ) const
inline

Get vector of elements for column-major packed matrix.

Definition at line 480 of file CoinPresolveMatrix.hpp.

const double* CoinPrePostsolveMatrix::getColLower ( ) const
inline

Get column lower bounds.

Definition at line 483 of file CoinPresolveMatrix.hpp.

const double* CoinPrePostsolveMatrix::getColUpper ( ) const
inline

Get column upper bounds.

Definition at line 486 of file CoinPresolveMatrix.hpp.

const double* CoinPrePostsolveMatrix::getCost ( ) const
inline

Get objective coefficients.

Definition at line 489 of file CoinPresolveMatrix.hpp.

const double* CoinPrePostsolveMatrix::getRowLower ( ) const
inline

Get row lower bounds.

Definition at line 492 of file CoinPresolveMatrix.hpp.

const double* CoinPrePostsolveMatrix::getRowUpper ( ) const
inline

Get row upper bounds.

Definition at line 495 of file CoinPresolveMatrix.hpp.

const double* CoinPrePostsolveMatrix::getColSolution ( ) const
inline

Get column solution (primal variable values)

Definition at line 498 of file CoinPresolveMatrix.hpp.

const double* CoinPrePostsolveMatrix::getRowActivity ( ) const
inline

Get row activity (constraint lhs values)

Definition at line 501 of file CoinPresolveMatrix.hpp.

const double* CoinPrePostsolveMatrix::getRowPrice ( ) const
inline

Get row solution (dual variables)

Definition at line 504 of file CoinPresolveMatrix.hpp.

const double* CoinPrePostsolveMatrix::getReducedCost ( ) const
inline

Get reduced costs.

Definition at line 507 of file CoinPresolveMatrix.hpp.

int CoinPrePostsolveMatrix::countEmptyCols ( )
inline

Count empty columns.

Definition at line 510 of file CoinPresolveMatrix.hpp.

CoinMessageHandler* CoinPrePostsolveMatrix::messageHandler ( ) const
inline

Return message handler.

Definition at line 520 of file CoinPresolveMatrix.hpp.

void CoinPrePostsolveMatrix::setMessageHandler ( CoinMessageHandler handler)
inline

Set message handler.

The client retains responsibility for the handler — it will not be destroyed with the CoinPrePostsolveMatrix object.

Definition at line 527 of file CoinPresolveMatrix.hpp.

CoinMessages CoinPrePostsolveMatrix::messages ( ) const
inline

Return messages.

Definition at line 533 of file CoinPresolveMatrix.hpp.

Friends And Related Function Documentation

const char * statusName ( CoinPrePostsolveMatrix::Status  status)
related

Generate a print string for a status code.

Member Data Documentation

int CoinPrePostsolveMatrix::ncols_

current number of columns

Definition at line 548 of file CoinPresolveMatrix.hpp.

int CoinPrePostsolveMatrix::nrows_

current number of rows

Definition at line 550 of file CoinPresolveMatrix.hpp.

CoinBigIndex CoinPrePostsolveMatrix::nelems_

current number of coefficients

Definition at line 552 of file CoinPresolveMatrix.hpp.

int CoinPrePostsolveMatrix::ncols0_

Allocated number of columns.

Definition at line 555 of file CoinPresolveMatrix.hpp.

int CoinPrePostsolveMatrix::nrows0_

Allocated number of rows.

Definition at line 557 of file CoinPresolveMatrix.hpp.

CoinBigIndex CoinPrePostsolveMatrix::nelems0_

Allocated number of coefficients.

Definition at line 559 of file CoinPresolveMatrix.hpp.

CoinBigIndex CoinPrePostsolveMatrix::bulk0_

Allocated size of bulk storage for row indices and coefficients.

This is the space allocated for hrow_ and colels_. This must be large enough to allow columns to be copied into empty space when they need to be expanded. For efficiency (to minimize the number of times the representation must be compressed) it's recommended that this be at least 2*nelems0_.

Definition at line 568 of file CoinPresolveMatrix.hpp.

double CoinPrePostsolveMatrix::bulkRatio_

Ratio of bulk0_ to nelems0_; default is 2.

Definition at line 570 of file CoinPresolveMatrix.hpp.

CoinBigIndex* CoinPrePostsolveMatrix::mcstrt_

Vector of column start positions in hrow_, colels_.

Definition at line 582 of file CoinPresolveMatrix.hpp.

int* CoinPrePostsolveMatrix::hincol_

Vector of column lengths.

Definition at line 584 of file CoinPresolveMatrix.hpp.

int* CoinPrePostsolveMatrix::hrow_

Row indices (positional correspondence with colels_)

Definition at line 586 of file CoinPresolveMatrix.hpp.

double* CoinPrePostsolveMatrix::colels_

Coefficients (positional correspondence with hrow_)

Definition at line 588 of file CoinPresolveMatrix.hpp.

double* CoinPrePostsolveMatrix::cost_

Objective coefficients.

Definition at line 591 of file CoinPresolveMatrix.hpp.

double CoinPrePostsolveMatrix::originalOffset_

Original objective offset.

Definition at line 593 of file CoinPresolveMatrix.hpp.

double* CoinPrePostsolveMatrix::clo_

Column (primal variable) lower bounds.

Definition at line 596 of file CoinPresolveMatrix.hpp.

double* CoinPrePostsolveMatrix::cup_

Column (primal variable) upper bounds.

Definition at line 598 of file CoinPresolveMatrix.hpp.

double* CoinPrePostsolveMatrix::rlo_

Row (constraint) lower bounds.

Definition at line 601 of file CoinPresolveMatrix.hpp.

double* CoinPrePostsolveMatrix::rup_

Row (constraint) upper bounds.

Definition at line 603 of file CoinPresolveMatrix.hpp.

int* CoinPrePostsolveMatrix::originalColumn_

Original column numbers.

Over the current range of column numbers in the presolved problem, the entry for column j will contain the index of the corresponding column in the original problem.

Definition at line 611 of file CoinPresolveMatrix.hpp.

int* CoinPrePostsolveMatrix::originalRow_

Original row numbers.

Over the current range of row numbers in the presolved problem, the entry for row i will contain the index of the corresponding row in the original problem.

Definition at line 618 of file CoinPresolveMatrix.hpp.

double CoinPrePostsolveMatrix::ztolzb_

Primal feasibility tolerance.

Definition at line 621 of file CoinPresolveMatrix.hpp.

double CoinPrePostsolveMatrix::ztoldj_

Dual feasibility tolerance.

Definition at line 623 of file CoinPresolveMatrix.hpp.

double CoinPrePostsolveMatrix::maxmin_

Maximization/minimization.

Yes, there's a variable here. No, you really don't want to set this to maximise. See the main notes for CoinPresolveMatrix.

Definition at line 630 of file CoinPresolveMatrix.hpp.

double* CoinPrePostsolveMatrix::sol_

Vector of primal variable values.

If sol_ exists, it is assumed that primal solution information should be updated and that acts_ also exists.

Definition at line 653 of file CoinPresolveMatrix.hpp.

double* CoinPrePostsolveMatrix::rowduals_

Vector of dual variable values.

If rowduals_ exists, it is assumed that dual solution information should be updated and that rcosts_ also exists.

Definition at line 659 of file CoinPresolveMatrix.hpp.

double* CoinPrePostsolveMatrix::acts_

Vector of constraint left-hand-side values (row activity)

Produced by evaluating constraints according to sol_. Updated iff sol_ exists.

Definition at line 665 of file CoinPresolveMatrix.hpp.

double* CoinPrePostsolveMatrix::rcosts_

Vector of reduced costs.

Produced by evaluating dual constraints according to rowduals_. Updated iff rowduals_ exists.

Definition at line 671 of file CoinPresolveMatrix.hpp.

unsigned char* CoinPrePostsolveMatrix::colstat_

Status of primal variables.

Coded with CoinPrePostSolveMatrix::Status, one code per char. colstat_ and rowstat_ MUST be allocated as a single vector. This is to maintain compatibility with ClpPresolve and OsiPresolve, which do it this way.

Definition at line 679 of file CoinPresolveMatrix.hpp.

unsigned char* CoinPrePostsolveMatrix::rowstat_

Status of constraints.

More accurately, the status of the logical variable associated with the constraint. Coded with CoinPrePostSolveMatrix::Status, one code per char. Note that this must be allocated as a single vector with colstat_.

Definition at line 687 of file CoinPresolveMatrix.hpp.

CoinMessageHandler* CoinPrePostsolveMatrix::handler_

Message handler.

Definition at line 699 of file CoinPresolveMatrix.hpp.

bool CoinPrePostsolveMatrix::defaultHandler_

Indicates if the current handler_ is default (true) or not (false).

Definition at line 701 of file CoinPresolveMatrix.hpp.

CoinMessage CoinPrePostsolveMatrix::messages_

Standard COIN messages.

Definition at line 703 of file CoinPresolveMatrix.hpp.


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