Go to the documentation of this file.
13 #ifndef CoinWarmStartBasis_H
14 #define CoinWarmStartBasis_H
107 st_byte =
static_cast<char>(st_byte & ~(3 << ((i&3)<<1))) ;
108 st_byte =
static_cast<char>(st_byte | (st << ((i&3)<<1))) ;
139 st_byte =
static_cast<char>(st_byte & ~(3 << ((i&3)<<1))) ;
140 st_byte =
static_cast<char>(st_byte | (st << ((i&3)<<1))) ;
195 virtual void resize (
int newNumberRows,
int newNumberColumns);
352 const int st = (array[i>>2] >> ((i&3)<<1)) & 3;
361 char& st_byte = array[i>>2];
362 st_byte =
static_cast<char>(st_byte & ~(3 << ((i&3)<<1))) ;
363 st_byte =
static_cast<char>(st_byte | (st << ((i&3)<<1))) ;
434 const unsigned int *
const diffVals) ;
virtual CoinWarmStartDiff * generateDiff(const CoinWarmStart *const oldCWS) const
Generate a ‘diff’ that can convert the warm start basis passed as a parameter to the warm start basis...
int numberBasicStructurals() const
Return the number of basic structurals.
bool fullBasis() const
Returns true if full basis (for debug)
virtual CoinWarmStartBasis & operator=(const CoinWarmStartBasis &rhs)
Assignment.
virtual void mergeBasis(const CoinWarmStartBasis *src, const XferVec *xferRows, const XferVec *xferCols)
Merge entries from a source basis into this basis.
int numArtificial_
The number of artificial variables.
A ‘diff’ between two CoinWarmStartBasis objects.
char * getArtificialStatus()
As for getStructuralStatus , but returns the status array for the artificial variables.
int getNumArtificial() const
Return the number of artificial variables.
char * structuralStatus_
The status of the structural variables.
void setStructStatus(int i, Status st)
Set the status of the specified structural variable.
CoinWarmStartBasis()
Default constructor.
const char * getArtificialStatus() const
const overload for getArtificialStatus()
virtual void print() const
Prints in readable format (for debug)
CoinWarmStartBasisDiff(const CoinWarmStartBasis *rhs)
Constructor when full is smaller than diff!
CoinTriple< int, int, int > XferEntry
Transfer vector entry for mergeBasis(const CoinWarmStartBasis*,const XferVec*,const XferVec*)
Status
Enum for status of variables.
@ atLowerBound
Nonbasic at lower bound.
Abstract base class for warm start ‘diff’ objects.
The default COIN simplex (basis-oriented) warm start class.
int maxSize_
The maximum sise (in ints - actually 4*char) (so resize does not need to do new)
virtual CoinWarmStartBasisDiff & operator=(const CoinWarmStartBasisDiff &rhs)
Assignment.
@ atUpperBound
Nonbasic at upper bound.
virtual void deleteRows(int rawTgtCnt, const int *rawTgts)
Delete a set of rows from the basis.
Status getStructStatus(int i) const
Return the status of the specified structural variable.
int numStructural_
The number of structural variables.
virtual ~CoinWarmStartBasis()
Destructor.
virtual void applyDiff(const CoinWarmStartDiff *const cwsdDiff)
Apply diff to this basis.
\legal Copyright (C) 2000 – 2003, International Business Machines Corporation and others.
std::vector< XferEntry > XferVec
Transfer vector for mergeBasis(const CoinWarmStartBasis*,const XferVec*,const XferVec*)
CoinWarmStartBasisDiff(int sze, const unsigned int *const diffNdxs, const unsigned int *const diffVals)
Standard constructor.
virtual ~CoinWarmStartBasisDiff()
Destructor.
virtual void setSize(int ns, int na)
Set basis capacity; existing basis is discarded.
virtual void resize(int newNumberRows, int newNumberColumns)
Set basis capacity; existing basis is maintained.
CoinWarmStartBasis(int ns, int na, const char *sStat, const char *aStat)
Constructs a warm start object with the specified status vectors.
char * getStructuralStatus()
Return the status array for the structural variables.
const char * getStructuralStatus() const
const overload for getStructuralStatus()
void setStatus(char *array, int i, CoinWarmStartBasis::Status st)
Set the status of the specified variable in the given status array.
Status getArtifStatus(int i) const
Return the status of the specified artificial variable.
virtual void assignBasisStatus(int ns, int na, char *&sStat, char *&aStat)
Assign the status vectors to be the warm start information.
CoinWarmStartBasisDiff(const CoinWarmStartBasisDiff &cwsbd)
Copy constructor.
virtual void deleteColumns(int number, const int *which)
Delete a set of columns from the basis.
unsigned int * difference_
Array of diff indices and diff values.
virtual CoinWarmStartDiff * clone() const
‘Virtual constructor’
@ isFree
Nonbasic free variable.
CoinWarmStartBasisDiff()
Default constructor.
virtual void compressRows(int tgtCnt, const int *tgts)
Delete a set of rows from the basis.
const char * statusName(CoinWarmStartBasis::Status status)
Generate a print string for a status code.
void setArtifStatus(int i, Status st)
Set the status of the specified artificial variable.
CoinWarmStartBasis(const CoinWarmStartBasis &ws)
Copy constructor.
Abstract base class for warm start information.
bool fixFullBasis()
Returns true if full basis and fixes up (for debug)
CoinWarmStartBasis::Status getStatus(const char *array, int i)
Get the status of the specified variable in the given status array.
virtual CoinWarmStart * clone() const
‘Virtual constructor’
int sze_
Number of entries (and allocated capacity), in units of int.
int getNumStructural() const
Return the number of structural variables.
char * artificialStatus_
The status of the artificial variables.