Go to the documentation of this file.
6 #ifndef ClpGubDynamicMatrix_H
7 #define ClpGubDynamicMatrix_H
9 #include "CoinPragma.hpp"
26 int &bestSequence,
int &numberWanted);
56 virtual void times(
double scalar,
57 const double *x,
double *y)
const;
83 int numberColumns,
const int *starts,
88 const unsigned char *status = NULL);
118 st_byte =
static_cast< unsigned char >(st_byte & ~7);
119 st_byte =
static_cast< unsigned char >(st_byte | status);
156 inline int *
id()
const
This solves LPs using the simplex method.
unsigned char * status_
Status of slacks.
int * fullStart() const
full starts
ClpGubDynamicMatrix & operator=(const ClpGubDynamicMatrix &)
virtual ClpMatrixBase * clone() const
Clone.
void setDynamicStatus(int sequence, DynamicStatus status)
unsigned char * dynamicStatus_
for status and which bound
int firstDynamic_
first dynamic
ClpGubDynamicMatrix()
Default constructor.
double * upperSet() const
Optional true upper bounds on sets.
double objectiveOffset() const
Saved value of objective offset.
CoinBigIndex numberElements_
size of working matrix (max)
unsigned char * gubRowStatus() const
Status region for gub slacks.
int firstDynamic() const
first dynamic
This implements Gub rows plus a ClpPackedMatrix.
double * lowerSet() const
Optional true lower bounds on sets.
double * upperColumn() const
Optional upper bounds on columns.
int savedFirstAvailable_
saved first free
double * upperSet_
Optional true upper bounds on sets.
CoinBigIndex * startColumn_
Starts of each column.
void setFirstAvailable(int value)
set first free
virtual void times(double scalar, const double *x, double *y) const
Return y + A * scalar *x in y.
int * start() const
Starts.
double * lower() const
Lower bounds on sets.
double * lowerSet_
Optional true lower bounds on sets.
double * lowerColumn_
Optional lower bounds on columns.
virtual void useEffectiveRhs(ClpSimplex *model, bool cheapest=true)
Sets up an effective RHS and does gub crash if needed.
bool flagged(int i) const
Whether flagged.
DynamicStatus
enums for status of various sorts
double * element_
elements
int * id_
ids of active columns (just index here)
virtual int checkFeasible(ClpSimplex *model, double &sum) const
Just for debug Returns sum and number of primal infeasibilities.
int * id() const
ids of active columns (just index here)
void cleanData(ClpSimplex *model)
Cleans data after setWarmStart.
virtual void partialPricing(ClpSimplex *model, double start, double end, int &bestSequence, int &numberWanted)
Partial pricing.
double * cost() const
costs
Abstract base class for Clp Matrices.
int * fullStart_
full starts
int numberGubColumns_
size
int lastDynamic() const
number of columns in dynamic model
DynamicStatus getDynamicStatus(int sequence) const
double * element() const
elements
CoinBigIndex * startColumn() const
Starts of each column.
double * upper() const
Upper bounds on sets.
virtual int synchronize(ClpSimplex *model, int mode)
This is local to Gub to allow synchronization: mode=0 when status of basis is good mode=1 when variab...
virtual ~ClpGubDynamicMatrix()
Destructor.
CoinBigIndex numberElements() const
size of working matrix (max)
int numberSets() const
Number of sets (gub rows)
int firstAvailable() const
first free
double objectiveOffset_
Saved value of objective offset.
double * upperColumn_
Optional upper bounds on columns.
unsigned char * dynamicStatus() const
Status region for gub variables.
int whichSet(int sequence) const
Returns which set a variable is in.
double * lowerColumn() const
Optional lower bounds on columns.
virtual void times(double scalar, const double *x, double *y) const
Return y + A * scalar *x in y.
int lastDynamic_
number of columns in dynamic model
virtual double * rhsOffset(ClpSimplex *model, bool forceRefresh=false, bool check=false)
Returns effective RHS offset if it is being used.
int firstAvailable_
first free
This implements Gub rows plus a ClpPackedMatrix.
int numberGubColumns() const
size
virtual int updatePivot(ClpSimplex *model, double oldInValue, double oldOutValue)
update information for a pivot (and effective rhs)
void insertNonBasic(int sequence, int iSet)
Add a new variable to a set.