souffle
2.0.2-371-g6315b36
|
#include <UnionFind.h>
Public Member Functions | |
void | clear () |
Remove all elements from this disjoint set. More... | |
bool | contains (SparseDomain v1, SparseDomain v2) |
SparseDomain | findNode (SparseDomain x) |
void | makeNode (SparseDomain val) |
bool | nodeExists (const SparseDomain val) const |
SparseDisjointSet & | operator= (SparseDisjointSet &&other)=delete |
SparseDisjointSet & | operator= (SparseDisjointSet &other)=delete |
bool | sameSet (SparseDomain x, SparseDomain y) |
std::size_t | size () |
SparseDisjointSet ()=default | |
SparseDisjointSet (SparseDisjointSet &&other)=delete | |
SparseDisjointSet (SparseDisjointSet &other)=delete | |
parent_t | toDense (const SparseDomain in) |
Retrieve dense encoding, adding it in if non-existent. More... | |
const SparseDomain | toSparse (const parent_t in) const |
For the given dense value, return the associated sparse value Undefined behaviour if dense value not in set. More... | |
void | unionNodes (SparseDomain x, SparseDomain y) |
Private Types | |
using | DenseMap = RandomInsertPiggyList< SparseDomain > |
using | PairStore = std::pair< SparseDomain, parent_t > |
using | SparseMap = LambdaBTreeSet< PairStore, std::function< parent_t(PairStore &)>, EqrelMapComparator< PairStore > > |
Private Attributes | |
DenseMap | denseToSparseMap |
DisjointSet | ds |
SparseMap::operation_hints | last_ins |
SparseMap | sparseToDenseMap |
Friends | |
template<typename TupleType > | |
class | EquivalenceRelation |
Definition at line 258 of file UnionFind.h.
|
private |
Definition at line 267 of file UnionFind.h.
|
private |
Definition at line 264 of file UnionFind.h.
|
private |
Definition at line 266 of file UnionFind.h.
|
default |
|
delete |
|
delete |
|
inline |
Remove all elements from this disjoint set.
Definition at line 338 of file UnionFind.h.
|
inline |
Definition at line 355 of file UnionFind.h.
|
inline |
Definition at line 323 of file UnionFind.h.
Referenced by souffle::EquivalenceRelation< Arity >::anteriorIt(), souffle::EquivalenceRelation< Arity >::antpostit(), and souffle::EquivalenceRelation< Arity >::upper_bound().
|
inline |
Definition at line 345 of file UnionFind.h.
Referenced by souffle::test::TEST().
|
inline |
Definition at line 351 of file UnionFind.h.
Referenced by souffle::EquivalenceRelation< Arity >::getBoundaries().
|
delete |
|
delete |
|
inline |
Definition at line 319 of file UnionFind.h.
Referenced by souffle::EquivalenceRelation< Arity >::anteriorIt().
|
inline |
Definition at line 331 of file UnionFind.h.
|
inline |
Retrieve dense encoding, adding it in if non-existent.
in | the sparse value |
Definition at line 281 of file UnionFind.h.
Referenced by souffle::SparseDisjointSet< value_type >::clear().
|
inline |
For the given dense value, return the associated sparse value Undefined behaviour if dense value not in set.
in | the supplied dense value |
Definition at line 314 of file UnionFind.h.
|
inline |
Definition at line 327 of file UnionFind.h.
Referenced by souffle::EquivalenceRelation< Arity >::insert().
|
friend |
Definition at line 262 of file UnionFind.h.
|
private |
Definition at line 273 of file UnionFind.h.
Referenced by souffle::SparseDisjointSet< value_type >::size().
|
private |
Definition at line 259 of file UnionFind.h.
Referenced by souffle::EqrelMapComparator< PairStore >::equal(), and souffle::SparseDisjointSet< value_type >::size().
|
private |
Definition at line 269 of file UnionFind.h.
|
private |
Definition at line 271 of file UnionFind.h.
Referenced by souffle::SparseDisjointSet< value_type >::makeNode(), and souffle::SparseDisjointSet< value_type >::size().