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))) ;
185 virtual void setSize(
int ns,
int na) ;
195 virtual void resize (
int newNumberRows,
int newNumberColumns);
213 virtual void compressRows (
int tgtCnt,
const int *tgts) ;
226 virtual void deleteRows(
int rawTgtCnt,
const int *rawTgts) ;
318 virtual void print()
const;
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))) ;
401 return (dynamic_cast<CoinWarmStartDiff *>(cwsbd)) ; }
434 const unsigned int *
const diffVals) ;
451 unsigned int *difference_ ;
virtual void assignBasisStatus(int ns, int na, char *&sStat, char *&aStat)
Assign the status vectors to be the warm start information.
virtual void resize(int newNumberRows, int newNumberColumns)
Set basis capacity; existing basis is maintained.
virtual void deleteColumns(int number, const int *which)
Delete a set of columns from the basis.
bool fixFullBasis()
Returns true if full basis and fixes up (for debug)
virtual void setSize(int ns, int na)
Set basis capacity; existing basis is discarded.
virtual ~CoinWarmStartBasisDiff()
Destructor.
void setStatus(char *array, int i, CoinWarmStartBasis::Status st)
Set the status of the specified variable in the given status array.
virtual CoinWarmStart * clone() const
`Virtual constructor'
Status getStructStatus(int i) const
Return the status of the specified structural variable.
void setStructStatus(int i, Status st)
Set the status of the specified structural variable.
int numStructural_
The number of structural variables.
CoinWarmStartBasis::Status getStatus(const char *array, int i)
Get the status of the specified variable in the given status array.
CoinWarmStartBasisDiff()
Default constructor.
CoinWarmStartBasis()
Default constructor.
virtual void compressRows(int tgtCnt, const int *tgts)
Delete a set of rows from the basis.
The default COIN simplex (basis-oriented) warm start class.
void setArtifStatus(int i, Status st)
Set the status of the specified artificial variable.
const char * statusName(CoinPrePostsolveMatrix::Status status)
Generate a print string for a status code.
virtual void mergeBasis(const CoinWarmStartBasis *src, const XferVec *xferRows, const XferVec *xferCols)
Merge entries from a source basis into this basis.
char * getStructuralStatus()
Return the status array for the structural variables.
int numberBasicStructurals() const
Return the number of basic structurals.
int numArtificial_
The number of artificial variables.
A `diff' between two CoinWarmStartBasis objects.
const char * getArtificialStatus() const
const overload for getArtificialStatus()
virtual void print() const
Prints in readable format (for debug)
bool fullBasis() const
Returns true if full basis (for debug)
virtual CoinWarmStartDiff * clone() const
`Virtual constructor'
Status getArtifStatus(int i) const
Return the status of the specified artificial variable.
char * artificialStatus_
The status of the artificial variables.
char * structuralStatus_
The status of the structural variables.
int getNumStructural() const
Return the number of structural variables.
std::vector< XferEntry > XferVec
Transfer vector for mergeBasis(const CoinWarmStartBasis*,const XferVec*,const XferVec*) ...
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 maxSize_
The maximum sise (in ints - actually 4*char) (so resize does not need to do new)
Copyright (C) 2000 – 2003, International Business Machines Corporation and others.
const char * getStructuralStatus() const
const overload for getStructuralStatus()
virtual CoinWarmStartBasisDiff & operator=(const CoinWarmStartBasisDiff &rhs)
Assignment.
Abstract base class for warm start `diff' objects.
virtual ~CoinWarmStartBasis()
Destructor.
Status
Enum for status of variables.
int getNumArtificial() const
Return the number of artificial variables.
virtual CoinWarmStartBasis & operator=(const CoinWarmStartBasis &rhs)
Assignment.
char * getArtificialStatus()
As for getStructuralStatus , but returns the status array for the artificial variables.
virtual void deleteRows(int rawTgtCnt, const int *rawTgts)
Delete a set of rows from the basis.
virtual void applyDiff(const CoinWarmStartDiff *const cwsdDiff)
Apply diff to this basis.
Abstract base class for warm start information.
CoinTriple< int, int, int > XferEntry
Transfer vector entry for mergeBasis(const CoinWarmStartBasis*,const XferVec*,const XferVec*) ...