clingo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
Public Types | Public Member Functions | Public Attributes | List of all members
Gringo::Ground::HeadAggregateDomain Struct Reference

#include <statements.hh>

Inheritance diagram for Gringo::Ground::HeadAggregateDomain:
Inheritance graph
Collaboration diagram for Gringo::Ground::HeadAggregateDomain:
Collaboration graph

Public Types

using MarksQueue = std::deque< unsigned >
 
using AccumulateVec = std::vector< std::pair< PredicateDomain &, HeadDefinition >>
 
using TodoVec = std::vector< std::reference_wrapper< HeadAggregateState >>
 
- Public Types inherited from Gringo::AbstractDomain< HeadAggregateState >
using element_map = std::unordered_map< Value, HeadAggregateState >
 
using element_type = typename element_map::value_type
 
using bind_index_type = BindIndex< element_type >
 
using full_index_type = FullIndex< element_type >
 
using exports_type = typename bind_index_type::exports_type
 
using element_vec = typename exports_type::element_vec
 
using bind_index_set = std::unordered_set< bind_index_type, call_hash< bind_index_type >>
 
using full_index_set = std::unordered_set< full_index_type, call_hash< full_index_type >>
 

Public Member Functions

 HeadAggregateDomain (UTerm &&repr, AggregateFunction fun, BoundVec &&bounds, FWString dummy)
 
HeadAggregateStateinsert (Value rep)
 
void accumulate (unsigned headNum, ValVec const &tuple, Output::LitVec const &lits, Location const &loc)
 
AccumulateVec::value_type & head (unsigned x)
 
virtual void accumulateMark ()
 
virtual void accumulateUnmark (Queue &queue)
 
virtual void mark ()
 
virtual void unmark ()
 
virtual ~HeadAggregateDomain ()
 
- Public Member Functions inherited from Gringo::AbstractDomain< HeadAggregateState >
 AbstractDomain ()
 
 AbstractDomain (AbstractDomain const &)=delete
 
 AbstractDomain (AbstractDomain &&)=delete
 
void init ()
 
virtual element_typereserve (Value x)
 
bind_index_typeadd (SValVec &&bound, UTerm &&repr)
 
full_index_typeadd (UTerm &&repr, unsigned imported)
 
element_typelookup (Term const &repr, RECNAF naf)
 
element_typelookup (Term const &repr, BinderType type)
 
bool check (Term const &repr, unsigned &imported)
 
void clear ()
 
virtual void setEnqueued (bool x)
 
virtual bool isEnqueued () const
 
virtual bool expire ()
 
virtual void doClear ()
 
virtual ~AbstractDomain ()
 
- Public Member Functions inherited from Gringo::Domain
virtual ~Domain ()
 

Public Attributes

MarksQueue marks
 
UTerm repr
 
AggregateFunction fun
 
BoundVec bounds
 
HeadDummyDep dummy
 
AccumulateVec heads
 
TodoVec todo
 
unsigned numBlocked = 0
 
unsigned blocked = 0
 
- Public Attributes inherited from Gringo::AbstractDomain< HeadAggregateState >
bind_index_set indices
 
full_index_set fullIndices
 
element_map domain
 
exports_type exports
 
bool enqueued
 

Member Typedef Documentation

using Gringo::Ground::HeadAggregateDomain::TodoVec = std::vector<std::reference_wrapper<HeadAggregateState>>

Constructor & Destructor Documentation

Gringo::Ground::HeadAggregateDomain::HeadAggregateDomain ( UTerm &&  repr,
AggregateFunction  fun,
BoundVec &&  bounds,
FWString  dummy 
)
Gringo::Ground::HeadAggregateDomain::~HeadAggregateDomain ( )
virtual

Member Function Documentation

void Gringo::Ground::HeadAggregateDomain::accumulate ( unsigned  headNum,
ValVec const &  tuple,
Output::LitVec const &  lits,
Location const &  loc 
)

Here is the call graph for this function:

void Gringo::Ground::HeadAggregateDomain::accumulateMark ( )
virtual
void Gringo::Ground::HeadAggregateDomain::accumulateUnmark ( Queue queue)
virtual

Here is the call graph for this function:

AccumulateVec::value_type& Gringo::Ground::HeadAggregateDomain::head ( unsigned  x)
inline
HeadAggregateState & Gringo::Ground::HeadAggregateDomain::insert ( Value  rep)

Here is the call graph for this function:

void Gringo::Ground::HeadAggregateDomain::mark ( )
virtual
void Gringo::Ground::HeadAggregateDomain::unmark ( )
virtual

Member Data Documentation

unsigned Gringo::Ground::HeadAggregateDomain::blocked = 0
BoundVec Gringo::Ground::HeadAggregateDomain::bounds
HeadDummyDep Gringo::Ground::HeadAggregateDomain::dummy
AggregateFunction Gringo::Ground::HeadAggregateDomain::fun
AccumulateVec Gringo::Ground::HeadAggregateDomain::heads
MarksQueue Gringo::Ground::HeadAggregateDomain::marks
unsigned Gringo::Ground::HeadAggregateDomain::numBlocked = 0
UTerm Gringo::Ground::HeadAggregateDomain::repr
TodoVec Gringo::Ground::HeadAggregateDomain::todo

The documentation for this struct was generated from the following files: