Go to the documentation of this file.
18 #ifndef DECOMP_VAR_INCLUDED
19 #define DECOMP_VAR_INCLUDED
41 std::string m_strHash;
72 return m_colMasterIndex;
82 m_colMasterIndex = colIndex;
91 m_origCost = origCost;
101 m_effCnt = m_effCnt <= 0 ? 1 : m_effCnt + 1;
107 m_effCnt = m_effCnt >= 0 ? -1 : m_effCnt - 1;
123 DecompVarList::const_iterator vi;
125 for (vi = vars.begin(); vi != vars.end(); vi++) {
126 if ((*vi)->getStrHash() == this->getStrHash()) {
144 virtual void print(
double infinity,
145 std::ostream* os = &std::cout,
147 virtual void print(
double infinity,
149 const std::vector<std::string>& colNames,
150 const double* value = NULL)
const;
156 m_varType (source.m_varType),
157 m_origCost(source.m_origCost),
158 m_effCnt (source.m_effCnt),
159 m_strHash (source.m_strHash),
160 m_blockId (source.m_blockId),
161 m_colMasterIndex (source.m_colMasterIndex),
162 m_norm (source.m_norm) {
168 m_varType = rhs.m_varType;
169 m_origCost = rhs.m_origCost;
170 m_redCost = rhs.m_redCost;
171 m_effCnt = rhs.m_effCnt;
172 m_strHash = rhs.m_strHash;
173 m_blockId = rhs.m_blockId;
174 m_colMasterIndex = rhs.m_colMasterIndex;
188 m_colMasterIndex(-1),
194 const double redCost,
195 const double origCost,
199 m_origCost(origCost),
204 m_colMasterIndex(-1),
207 if (ind.size() > 0) {
218 const std::vector<double>& els,
219 const double redCost,
220 const double origCost) :
223 m_origCost(origCost),
228 m_colMasterIndex(-1),
231 if (ind.size() > 0) {
242 const std::vector<double>& els,
243 const double redCost,
244 const double origCost,
248 m_origCost(origCost),
253 m_colMasterIndex(-1),
256 if (ind.size() > 0) {
269 const double origCost) :
272 m_origCost(origCost),
277 m_colMasterIndex(-1),
290 const double origCost,
294 m_origCost(origCost),
299 m_colMasterIndex(-1),
312 const double origCost) :
315 m_origCost(origCost),
320 m_colMasterIndex(-1),
333 const double origCost,
337 m_origCost(origCost),
342 m_colMasterIndex(-1),
355 const double redCost,
356 const double origCost) :
359 m_origCost(origCost),
364 m_colMasterIndex(-1),
377 const double redCost,
378 const double origCost,
382 m_origCost(origCost),
387 m_colMasterIndex(-1),
398 const double* denseArray,
399 const double redCost,
400 const double origCost,
404 m_origCost(origCost),
409 m_colMasterIndex(-1),
bool isDuplicate(const DecompVarList &vars)
#define DECOMP_TEST_DUPINDEX
DecompVar(const DecompVar &source)
bool isEquivalent(const DecompVar &dvar)
const double COIN_DBL_MAX
void setReducedCost(const double redCost)
virtual int getNumElements() const
DecompVar(const std::vector< int > &ind, const double els, const double redCost, const double origCost, const DecompVarType varType)
void setVector(int size, const int *inds, const double *elems, bool testForDuplicateIndex=COIN_DEFAULT_VALUE_FOR_DUPLICATE)
void setConstant(int size, const int *inds, double elems, bool testForDuplicateIndex=COIN_DEFAULT_VALUE_FOR_DUPLICATE)
double getOriginalCost() const
double getLowerBound() const
std::string UtilCreateStringHash(const int len, const double *els, const int precision=6)
double getUpperBound() const
DecompVar(const int len, const int *ind, const double *els, const double origCost)
DecompVar(const int len, const int *ind, const double *els, const double redCost, const double origCost, const DecompVarType varType)
DecompVarType getVarType() const
DecompVar(const int len, const int *ind, const double *els, const double redCost, const double origCost)
CoinPackedVector * UtilPackedVectorFromDense(const int len, const double *dense, const double etol)
DecompVar(const std::vector< int > &ind, const std::vector< double > &els, const double redCost, const double origCost, const DecompVarType varType)
int getColMasterIndex() const
DecompVar(const int denseLen, const double *denseArray, const double redCost, const double origCost, const DecompVarType varType)
const double DecompEpsilon
void decreaseEffCnt()
Decrease the effectiveness count by 1 (or to -1 if it was positive).
DecompVar(const int len, const int *ind, const double els, const double origCost)
virtual void print(double infinity, std::ostream *os=&std::cout, DecompApp *app=0) const
std::string getStrHash() const
DecompVar(const int len, const int *ind, const double *els, const double origCost, const DecompVarType varType)
void setVarType(const DecompVarType varType)
double getReducedCost() const
DecompVar(const int len, const int *ind, const double els, const double origCost, const DecompVarType varType)
void increaseEffCnt()
Increase the effectiveness count by 1 (or to 1 if it was negative).
void resetEffectiveness()
bool isEquivalent(const CoinPackedVectorBase &rhs, const FloatEqual &eq) const
DecompVar(const std::vector< int > &ind, const std::vector< double > &els, const double redCost, const double origCost)
void setOriginalCost(const double origCost)
int getEffectiveness() const
void fillDenseArr(int len, double *arr)
void setColMasterIndex(const int colIndex)
std::list< DecompVar * > DecompVarList
void setBlockId(const int blockId)
bool doesSatisfyBounds(int denseLen, double *denseArr, const DecompSubModel &model, const double *lbs, const double *ubs)
DecompVar & operator=(const DecompVar &rhs)
The main application class.