1 #ifndef OsiDylpWarmStartBasis_H
2 #define OsiDylpWarmStartBasis_H
22 #include "CoinWarmStartBasis.hpp"
24 class CoinMessageHandler;
66 {
const int st = (constraintStatus_[i>>2] >> ((i&3)<<1)) & 3 ;
67 return (static_cast<CoinWarmStartBasis::Status>(st)) ; }
74 {
char &st_byte = constraintStatus_[i>>2] ;
75 st_byte =
static_cast<char>(st_byte & ~(3 << ((i&3)<<1))) ;
76 st_byte =
static_cast<char>(st_byte | (st << ((i&3)<<1))) ; }
91 {
return (constraintStatus_) ; }
109 CoinWarmStartDiff *
generateDiff (
const CoinWarmStart *
const oldCWS)
const ;
113 void applyDiff (
const CoinWarmStartDiff *
const cwsdDiff) ;
122 void setSize (
int ns,
int na) ;
126 void resize (
int numRows,
int numCols) ;
149 void deleteRows (
int number,
const int *which) ;
164 virtual void mergeBasis(
const CoinWarmStartBasis *src,
165 const XferVec *xferRows,
166 const XferVec *xferCols) ;
180 const char *aStat,
const char *cStat = 0) ;
192 CoinWarmStart *
clone ()
const ;
205 (
int ns,
int na,
char *&sStat,
char *&aStat,
char *&cStat) ;
210 (
int ns,
int na,
char *&sStat,
char *&aStat) ;
220 void print ()
const ;
224 void checkBasis (CoinMessageHandler* msghandler = NULL)
const ;
235 char *constraintStatus_ ;
270 virtual CoinWarmStartDiff *
clone()
const
272 return (dynamic_cast<CoinWarmStartDiff *>(odwsbd)) ; }
280 {
delete[] condiffNdxs_ ;
281 delete[] condiffVals_ ; }
286 (
const CoinWarmStart *
const oldCWS)
const ;
288 (
const CoinWarmStartDiff *
const diff) ;
292 const unsigned int *
const diffVals,
293 const CoinWarmStartBasisDiff *
const cwsbd) ;
297 : CoinWarmStartBasisDiff(),
318 unsigned int *condiffNdxs_ ;
322 unsigned int *condiffVals_ ;
328 #endif // OsiDylpWarmStartBasis_H
OsiDylpWarmStartBasis()
Default constructor (empty object)
void compressRows(int tgtCnt, const int *tgts)
Delete a set of rows from the basis.
~OsiDylpWarmStartBasis()
Destructor.
dyphase_enum getPhase() const
Get the lp phase for this basis.
OsiDylpWarmStartBasis & operator=(const OsiDylpWarmStartBasis &rhs)
Assignment.
A `diff' between two OsiDylpWarmStartBasis objects.
virtual OsiDylpWarmStartBasisDiff & operator=(const OsiDylpWarmStartBasisDiff &rhs)
Assignment.
void checkBasis(CoinMessageHandler *msghandler=NULL) const
Performs basis consistency checks (for debug)
int numberActiveConstraints() const
Return the number of active constraints.
void setConStatus(int i, Status st)
Set the status of the specified constraint.
CoinWarmStartDiff * generateDiff(const CoinWarmStart *const oldCWS) const
Generate a `diff' that can convert oldBasis to this basis.
void resize(int numRows, int numCols)
Set basis capacity; existing basis is maintained.
void deleteRows(int number, const int *which)
Delete a set of rows from the basis.
Status getConStatus(int i) const
Return the status of the specified constraint.
void setPhase(dyphase_enum phase)
Set the lp phase for this basis.
virtual ~OsiDylpWarmStartBasisDiff()
Destructor.
virtual CoinWarmStartDiff * clone() const
`Virtual constructor'
void print() const
Prints in readable format (for debug)
const char * getConstraintStatus() const
const overload for getConstraintStatus()
The dylp warm start class.
void assignBasisStatus(int ns, int na, char *&sStat, char *&aStat, char *&cStat)
Assign the status vectors to be the warm start information.
void setSize(int ns, int na)
Set basis capacity; existing basis is discarded.
char * getConstraintStatus()
Return the status array for constraints.
virtual void mergeBasis(const CoinWarmStartBasis *src, const XferVec *xferRows, const XferVec *xferCols)
Merge entries from a source basis into this basis.
CoinWarmStart * clone() const
`Virtual constructor'
void applyDiff(const CoinWarmStartDiff *const cwsdDiff)
Apply diff to this basis.