Loading [MathJax]/extensions/tex2jax.js

Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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.