souffle
2.0.2-371-g6315b36
|
An index is an abstraction of a data structure. More...
#include <Index.h>
Data Structures | |
class | View |
A view on a relation caching local access patterns (not thread safe!). More... | |
Public Types | |
using | Data = Structure< Arity > |
using | Hints = typename Data::operation_hints |
using | iterator = typename Data::iterator |
using | Tuple = typename souffle::Tuple< RamDomain, Arity > |
Public Member Functions | |
iterator | begin () const |
void | clear () |
Clears the content of this index, turning it empty. More... | |
bool | contains (const Tuple &low, const Tuple &high) const |
Tests whether this index contains any tuple within the given bounds. More... | |
bool | contains (const Tuple &tuple) const |
Tests whether the given tuple is present in this index or not. More... | |
View | createView () |
Requests the creation of a view on this index. More... | |
bool | empty () const |
Tests whether this index is empty or not. More... | |
iterator | end () const |
Order | getOrder () const |
Obtains the lex order of this index. More... | |
Index (Order order) | |
void | insert (const Index< Arity, Structure > &src) |
Inserts all elements of the given index. More... | |
bool | insert (const Tuple &tuple) |
Inserts a tuple into this index. More... | |
std::vector< souffle::range< iterator > > | partitionRange (const Tuple &low, const Tuple &high, int partitionCount) const |
Returns a partitioned list of iterators coving elements in range [low, high]. More... | |
std::vector< souffle::range< iterator > > | partitionScan (int partitionCount) const |
Retruns a partitioned list of iterators for parallel computation. More... | |
souffle::range< iterator > | range (const Tuple &low, const Tuple &high) const |
Returns a pair of iterators covering elements in the range [low,high) More... | |
souffle::range< iterator > | scan () const |
Returns a pair of iterators covering the entire index content. More... | |
size_t | size () const |
Obtains the number of elements stored in this index. More... | |
Static Public Attributes | |
static constexpr size_t | Arity = _Arity |
Protected Attributes | |
Data | data |
Order | order |
An index is an abstraction of a data structure.
using souffle::interpreter::Index< _Arity, Structure >::Data = Structure<Arity> |
using souffle::interpreter::Index< _Arity, Structure >::Hints = typename Data::operation_hints |
using souffle::interpreter::Index< _Arity, Structure >::iterator = typename Data::iterator |
using souffle::interpreter::Index< _Arity, Structure >::Tuple = typename souffle::Tuple<RamDomain, Arity> |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Tests whether the given tuple is present in this index or not.
Definition at line 251 of file Index.h.
Referenced by souffle::interpreter::Relation< 2, Eqrel >::__purge(), and souffle::interpreter::Relation< 2, Eqrel >::insert().
|
inline |
|
inline |
Tests whether this index is empty or not.
Definition at line 221 of file Index.h.
Referenced by souffle::interpreter::Relation< 2, Eqrel >::__size().
|
inline |
|
inline |
|
inline |
|
inline |
Inserts a tuple into this index.
Definition at line 235 of file Index.h.
Referenced by souffle::interpreter::Relation< 2, Eqrel >::end(), and souffle::interpreter::Index< 2, Eqrel >::insert().
|
inline |
Returns a partitioned list of iterators coving elements in range [low, high].
|
inline |
Retruns a partitioned list of iterators for parallel computation.
Definition at line 279 of file Index.h.
Referenced by souffle::interpreter::Index< 0, Structure >::partitionScan(), and souffle::interpreter::Relation< 2, Eqrel >::scan().
|
inline |
Returns a pair of iterators covering elements in the range [low,high)
Definition at line 272 of file Index.h.
Referenced by souffle::interpreter::Index< 2, Eqrel >::contains().
|
inline |
|
inline |
|
staticconstexpr |
Definition at line 154 of file Index.h.
Referenced by souffle::interpreter::Index< 2, Eqrel >::clear().
|
protected |
Definition at line 164 of file Index.h.
Referenced by souffle::interpreter::Index< 2, Eqrel >::contains(), souffle::interpreter::Index< 2, Eqrel >::empty(), souffle::interpreter::Index< 2, Eqrel >::getOrder(), souffle::interpreter::Index< 2, Eqrel >::insert(), souffle::interpreter::Index< 2, Eqrel >::range(), souffle::interpreter::Index< 2, Eqrel >::scan(), and souffle::interpreter::Index< 2, Eqrel >::size().
|
protected |
Definition at line 163 of file Index.h.
Referenced by souffle::interpreter::Index< 2, Eqrel >::end(), and souffle::interpreter::Index< 2, Eqrel >::size().