souffle
2.0.2-371-g6315b36
|
search signature of a RAM operation; each bit represents an attribute of a relation. More...
#include <Index.h>
Data Structures | |
class | Hasher |
Public Member Functions | |
size_t | arity () const |
bool | containsEquality () const |
bool | empty () const |
bool | operator!= (const SearchSignature &other) const |
bool | operator< (const SearchSignature &other) const |
bool | operator== (const SearchSignature &other) const |
AttributeConstraint & | operator[] (std::size_t pos) |
const AttributeConstraint & | operator[] (std::size_t pos) const |
SearchSignature (size_t arity) | |
Static Public Member Functions | |
static SearchSignature | getDelta (const SearchSignature &lhs, const SearchSignature &rhs) |
static SearchSignature | getDischarged (const SearchSignature &signature) |
static SearchSignature | getFullSearchSignature (size_t arity) |
static bool | isComparable (const SearchSignature &lhs, const SearchSignature &rhs) |
static bool | isSubset (const SearchSignature &lhs, const SearchSignature &rhs) |
Private Attributes | |
std::vector< AttributeConstraint > | constraints |
Friends | |
std::ostream & | operator<< (std::ostream &out, const SearchSignature &signature) |
search signature of a RAM operation; each bit represents an attribute of a relation.
A one represents that the attribute has an assigned value; a zero represents that no value exists (i.e. attribute is unbounded) in the search.
|
explicit |
size_t souffle::ram::analysis::SearchSignature::arity | ( | ) | const |
bool souffle::ram::analysis::SearchSignature::containsEquality | ( | ) | const |
bool souffle::ram::analysis::SearchSignature::empty | ( | ) | const |
Definition at line 77 of file Index.cpp.
Referenced by souffle::ram::analysis::MinIndexSelection::addSearch().
|
static |
|
static |
|
static |
Definition at line 140 of file Index.cpp.
Referenced by souffle::interpreter::NodeGenerator::encodeIndexPos(), and souffle::ram::analysis::MinIndexSelection::insertDefaultTotalIndex().
|
static |
Definition at line 98 of file Index.cpp.
References i, souffle::ram::analysis::Inequal, lhs, souffle::ram::analysis::None, and rhs.
Referenced by operator[]().
|
static |
bool souffle::ram::analysis::SearchSignature::operator!= | ( | const SearchSignature & | other | ) | const |
Definition at line 73 of file Index.cpp.
References constraints, i, and souffle::ram::analysis::None.
bool souffle::ram::analysis::SearchSignature::operator< | ( | const SearchSignature & | other | ) | const |
bool souffle::ram::analysis::SearchSignature::operator== | ( | const SearchSignature & | other | ) | const |
AttributeConstraint & souffle::ram::analysis::SearchSignature::operator[] | ( | std::size_t | pos | ) |
const AttributeConstraint & souffle::ram::analysis::SearchSignature::operator[] | ( | std::size_t | pos | ) | const |
Definition at line 57 of file Index.cpp.
References constraints, isComparable(), and isSubset().
|
friend |
|
private |
Definition at line 90 of file Index.h.
Referenced by operator!=(), souffle::ram::analysis::SearchSignature::Hasher::operator()(), and operator[]().