1#ifndef OsiDylpWarmStartBasis_H
2#define OsiDylpWarmStartBasis_H
22#include "CoinWarmStartBasis.hpp"
24class CoinMessageHandler;
67 return (
static_cast<CoinWarmStartBasis::Status
>(st)) ; }
75 st_byte =
static_cast<char>(st_byte & ~(3 << ((i&3)<<1))) ;
76 st_byte =
static_cast<char>(st_byte | (st << ((i&3)<<1))) ; }
109 CoinWarmStartDiff *
generateDiff (
const CoinWarmStart *
const oldCWS)
const ;
113 void applyDiff (
const CoinWarmStartDiff *
const cwsdDiff) ;
165 const XferVec *xferRows,
166 const XferVec *xferCols) ;
180 const char *aStat,
const char *cStat = 0) ;
205 (
int ns,
int na,
char *&sStat,
char *&aStat,
char *&cStat) ;
210 (
int ns,
int na,
char *&sStat,
char *&aStat) ;
224 void checkBasis (CoinMessageHandler* msghandler = NULL)
const ;
270 virtual CoinWarmStartDiff *
clone()
const
272 return (
dynamic_cast<CoinWarmStartDiff *
>(odwsbd)) ; }
286 (
const CoinWarmStart *
const oldCWS)
const ;
288 (
const CoinWarmStartDiff *
const diff) ;
292 const unsigned int *
const diffVals,
293 const CoinWarmStartBasisDiff *
const cwsbd) ;
297 : CoinWarmStartBasisDiff(),
A ‘diff’ between two OsiDylpWarmStartBasis objects.
virtual OsiDylpWarmStartBasisDiff & operator=(const OsiDylpWarmStartBasisDiff &rhs)
Assignment.
OsiDylpWarmStartBasisDiff()
Default constructor.
int consze_
Number of entries (and allocated capacity), in units of int.
virtual CoinWarmStartDiff * clone() const
‘Virtual constructor’
OsiDylpWarmStartBasisDiff(const OsiDylpWarmStartBasisDiff &odwsbd)
Copy constructor.
unsigned int * condiffVals_
Array of diff values for constraint status.
virtual ~OsiDylpWarmStartBasisDiff()
Destructor.
unsigned int * condiffNdxs_
Array of diff indices for constraint status.
OsiDylpWarmStartBasisDiff(int sze, const unsigned int *const diffNdxs, const unsigned int *const diffVals, const CoinWarmStartBasisDiff *const cwsbd)
Standard constructor.
The dylp warm start class.
OsiDylpWarmStartBasis(const CoinWarmStartBasis &cwsb)
Construct an OsiDylpWarmStartBasis from a CoinWarmStartBasis.
void setPhase(dyphase_enum phase)
Set the lp phase for this basis.
CoinWarmStart * clone() const
‘Virtual constructor’
Status getConStatus(int i) const
Return the status of the specified constraint.
void assignBasisStatus(int ns, int na, char *&sStat, char *&aStat, char *&cStat)
Assign the status vectors to be the warm start information.
int numberActiveConstraints() const
Return the number of active constraints.
const char * getConstraintStatus() const
const overload for getConstraintStatus()
char * getConstraintStatus()
Return the status array for constraints.
void setSize(int ns, int na)
Set basis capacity; existing basis is discarded.
void setConStatus(int i, Status st)
Set the status of the specified constraint.
void deleteRows(int number, const int *which)
Delete a set of rows from the basis.
virtual void mergeBasis(const CoinWarmStartBasis *src, const XferVec *xferRows, const XferVec *xferCols)
Merge entries from a source basis into this basis.
OsiDylpWarmStartBasis()
Default constructor (empty object)
void compressRows(int tgtCnt, const int *tgts)
Delete a set of rows from the basis.
void resize(int numRows, int numCols)
Set basis capacity; existing basis is maintained.
void applyDiff(const CoinWarmStartDiff *const cwsdDiff)
Apply diff to this basis.
void assignBasisStatus(int ns, int na, char *&sStat, char *&aStat)
Assign the status vectors to be the warm start information.
dyphase_enum phase_
dylp phase
char * constraintStatus_
vector of constraint status information
CoinWarmStartDiff * generateDiff(const CoinWarmStart *const oldCWS) const
Generate a ‘diff’ that can convert oldBasis to this basis.
OsiDylpWarmStartBasis & operator=(const OsiDylpWarmStartBasis &rhs)
Assignment.
dyphase_enum getPhase() const
Get the lp phase for this basis.
OsiDylpWarmStartBasis(int ns, int na, const char *sStat, const char *aStat, const char *cStat=0)
Constructs a warm start object with the specified status arrays.
OsiDylpWarmStartBasis(const OsiDylpWarmStartBasis &ws)
Copy constructor.
void print() const
Prints in readable format (for debug)
void checkBasis(CoinMessageHandler *msghandler=NULL) const
Performs basis consistency checks (for debug)
~OsiDylpWarmStartBasis()
Destructor.