13 #ifndef CoinWarmStartBasis_H 14 #define CoinWarmStartBasis_H 108 st_byte =
static_cast< char >(st_byte & ~(3 << ((i & 3) << 1)));
109 st_byte =
static_cast< char >(st_byte | (st << ((i & 3) << 1)));
142 st_byte =
static_cast< char >(st_byte & ~(3 << ((i & 3) << 1)));
143 st_byte =
static_cast< char >(st_byte | (st << ((i & 3) << 1)));
186 virtual void setSize(
int ns,
int na);
196 virtual void resize(
int newNumberRows,
int newNumberColumns);
227 virtual void deleteRows(
int rawTgtCnt,
const int *rawTgts);
319 virtual void print()
const;
353 const int st = (array[i >> 2] >> ((i & 3) << 1)) & 3;
363 char &st_byte = array[i >> 2];
364 st_byte =
static_cast< char >(st_byte & ~(3 << ((i & 3) << 1)));
365 st_byte =
static_cast< char >(st_byte | (st << ((i & 3) << 1)));
410 return (dynamic_cast< CoinWarmStartDiff * >(cwsbd));
446 const unsigned int *
const diffVals);
462 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.
CoinTriple< int, int, int > XferEntry
Transfer vector entry for mergeBasis(const CoinWarmStartBasis*,const XferVec*,const XferVec*) ...
bool fixFullBasis()
Returns true if full basis and fixes up (for debug)
CoinWarmStartBasis::Status charToStatus(char status)
Convert character to status.
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.
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.
Not basic and not at bound.
CoinWarmStartBasisDiff()
Default constructor.
CoinWarmStartBasis()
Default constructor.
virtual CoinWarmStartDiff * clone() const
‘Virtual constructor’
int getNumStructural() const
Return the number of structural variables.
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 numArtificial_
The number of artificial variables.
A ‘diff’ between two CoinWarmStartBasis objects.
Status getStructStatus(int i) const
Return the status of the specified structural variable.
char * artificialStatus_
The status of the artificial variables.
int getNumArtificial() const
Return the number of artificial variables.
char * structuralStatus_
The status of the structural variables.
virtual void print() const
Prints in readable format (for debug)
int numberBasicStructurals() const
Return the number of basic structurals.
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 b...
const char * getArtificialStatus() const
const overload for getArtificialStatus()
bool fullBasis() const
Returns true if full basis (for debug)
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.
virtual CoinWarmStartBasisDiff & operator=(const CoinWarmStartBasisDiff &rhs)
Assignment.
Abstract base class for warm start ‘diff’ objects.
virtual ~CoinWarmStartBasis()
Destructor.
std::vector< XferEntry > XferVec
Transfer vector for mergeBasis(const CoinWarmStartBasis*,const XferVec*,const XferVec*) ...
Status
Enum for status of variables.
Status getArtifStatus(int i) const
Return the status of the specified artificial variable.
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 CoinWarmStart * clone() const
‘Virtual constructor’
char statusToChar(CoinWarmStartBasis::Status status)
In an example Aleksandr Kazachkov sent to me, I noticed he was using code as above but with char - it...
virtual void applyDiff(const CoinWarmStartDiff *const cwsdDiff)
Apply diff to this basis.
Abstract base class for warm start information.
const char * getStructuralStatus() const
const overload for getStructuralStatus()