Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
nonduplpool.h
Go to the documentation of this file.
1
30#pragma once
31
39#include <ogdf/lib/abacus/sub.h>
41
42namespace abacus {
43
45
57template<class BaseType, class CoType>
58class NonDuplPool : public StandardPool<BaseType, CoType> {
59public:
60
62
69 NonDuplPool(Master *master, int size, bool autoRealloc = false)
71 { }
72
74 virtual ~NonDuplPool() {
75#ifdef OGDF_DEBUG
76 Logger::ifout() << "Number of duplicated constraints: " <<
77 nDuplications_ << std::endl;
78#endif
79 }
80
82
94
96
105
107
115 virtual const PoolSlot<BaseType, CoType> *present(const BaseType *cv) const;
116
118
125 virtual void increase(int size) {
127 hash_.resize(size);
128 }
129
131
144 void statistics(int &nDuplications, int &nCollisions) const {
145 nDuplications = nDuplications_;
146 nCollisions = hash_.nCollisions();
147}
148
149private:
150
161
169
172
176
177
180};
181
182}
183
Hash tables.
Definition hash.h:124
The master of the optimization.
Definition master.h:69
Standard pools without constraint duplication.
Definition nonduplpool.h:58
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.
Definition nonduplpool.h:69
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.
Definition nonduplpool.h:74
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.
Definition poolslot.h:77
Standard pools.
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)
Definition Logger.h:192
constraint.
cutbuffer.
hash table.
the master of the optimization.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
poolslot.
standard pool.
variable.