57template<
class BaseType,
class CoType>
144 void statistics(
int &nDuplications,
int &nCollisions)
const {
146 nCollisions =
hash_.nCollisions();
The master of the optimization.
Standard pools without constraint duplication.
int nDuplications_
The number of insertions of constraints/variables that were rejected since the constraint/variable is...
virtual void increase(int size)
Enlarges the pool to store up to size items.
AbaHash< unsigned, PoolSlot< BaseType, CoType > * > hash_
A hash table for a fast access to the pool slot storing a constraint/variable.
virtual int softDeleteConVar(PoolSlot< BaseType, CoType > *slot)
Has to be redefined because the slot has to be removed from the hash table if the constraint/variable...
virtual PoolSlot< BaseType, CoType > * present(BaseType *cv)
Checks if constraint/variables cv is already contained in the pool.
void statistics(int &nDuplications, int &nCollisions) const
Returns some statistic information in nDuplicates and nCollisions.
NonDuplPool(Master *master, int size, bool autoRealloc=false)
Creates an empty pool.
virtual const PoolSlot< BaseType, CoType > * present(const BaseType *cv) const
Checks if constraint/variables cv is already contained in the pool.
NonDuplPool(const NonDuplPool &rhs)
virtual PoolSlot< BaseType, CoType > * insert(BaseType *cv)
Insert constraint/variable cv in the pool.
virtual ~NonDuplPool()
The destructor.
const NonDuplPool & operator=(const NonDuplPool &rhs)
virtual void hardDeleteConVar(PoolSlot< BaseType, CoType > *slot)
Has to be redefined because the pool slot has to be removed from the hash table.
Stores constraints and variables.
int size() const
Return the maximal number of constraints/variables that can be inserted in the pool.
virtual void increase(int size)
Enlarges the pool to store up to size items.
PoolSlot< BaseType, CoType > * slot(int i)
Returns a pointer to the i-th slot in the pool.
static std::ostream & ifout()
stream for forced output (global; used by internal libraries, e.g. Abacus)
the master of the optimization.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()