Clingo
|
Keys for aggregate elements storing their tuple and their aggregate index. More...
#include <theory_atom.hh>
Public Member Functions | |
ElementKey (priv_tag tag, EvalContext const &ctx, OutputTheory &out, size_t atom_idx, UTheoryTermVec const &terms) | |
Constructor. | |
ElementKey (ElementKey const &other)=delete | |
Prevent copying and moving. | |
auto | terms () const -> UTheoryTermVec const & |
Get the terms. | |
auto | size () const -> size_t |
Get the size of the tuple. | |
auto | span () const -> std::span< size_t const > |
Get the tuple. | |
auto | hash () const -> size_t |
Compute a hash for the key. | |
Static Public Member Functions | |
static void | construct (std::pmr::monotonic_buffer_resource &mbr, EvalContext const &ctx, OutputTheory &out, size_t atom_idx, UTheoryTermVec const &terms, ElementKey *&target) |
Construct an element key evaluating the given tuple. | |
Friends | |
auto | operator== (ElementKey const &a, ElementKey const &b) -> bool |
Compare to element keys. | |
Keys for aggregate elements storing their tuple and their aggregate index.
The atom index is used to store all elements in one big hash table.