Public Types | Public Member Functions
Clasp::SharedDependencyGraph::AtomNode Struct Reference

An atom node. More...

#include <dependency_graph.h>

Inheritance diagram for Clasp::SharedDependencyGraph::AtomNode:
Inheritance graph
[legend]

List of all members.

Public Types

enum  Property { property_in_choice = 1u, property_in_disj = 2u, property_in_ext = 4u, property_in_non_hcf = 8u }

Public Member Functions

 AtomNode ()
const NodeIdbodies_begin () const
 Bodies (i.e. predecessors): bodies from other SCCs precede those from same SCC.
const NodeIdbodies_end () const
NodeId body (uint32 i) const
bool inChoice () const
 Contained in the head of a choice rule?
bool inDisjunctive () const
 Contained in the head of a non-hcf disjunctive rule?
bool inExtended () const
 Contained in an extended body?
bool inNonHcf () const
 Contained in a non-hcf SCC?
void set (Property p)
void setProperties (uint32 f)
const NodeIdsuccs () const
 Successors from same SCC [B1,...Bn, idMax].
template<class P >
void visitSuccessors (const P &p) const
 Calls the given function object p once for each body containing this atom.

Detailed Description

An atom node.

The PBDAG stores a node of type AtomNode for each non-trivially connected atom. The predecessors of an AtomNode are the bodies that define the atom. Its successors are those bodies from the same SCC that contain the atom positively.

Definition at line 106 of file dependency_graph.h.


Member Enumeration Documentation

Enumerator:
property_in_choice 
property_in_disj 
property_in_ext 
property_in_non_hcf 

Definition at line 107 of file dependency_graph.h.


Constructor & Destructor Documentation

Definition at line 108 of file dependency_graph.h.


Member Function Documentation

Bodies (i.e. predecessors): bodies from other SCCs precede those from same SCC.

Definition at line 120 of file dependency_graph.h.

Definition at line 121 of file dependency_graph.h.

Definition at line 122 of file dependency_graph.h.

Contained in the head of a choice rule?

Definition at line 112 of file dependency_graph.h.

Contained in the head of a non-hcf disjunctive rule?

Definition at line 114 of file dependency_graph.h.

Contained in an extended body?

Definition at line 116 of file dependency_graph.h.

Contained in a non-hcf SCC?

Definition at line 118 of file dependency_graph.h.

Definition at line 109 of file dependency_graph.h.

Definition at line 110 of file dependency_graph.h.

Successors from same SCC [B1,...Bn, idMax].

Note:
If extended() is true, the atom is adjacent to some extended body. In that case, the returned list looks like this: [Bn1, ..., Bnj, idMax, Bext1, pos1, ..., Bextn, posn, idMax], where each Bni is a normal body, each Bexti is an extended body and posi is the position of this atom in Bexti.

Definition at line 131 of file dependency_graph.h.

template<class P >
void Clasp::SharedDependencyGraph::AtomNode::visitSuccessors ( const P &  p) const [inline]

Calls the given function object p once for each body containing this atom.

Definition at line 134 of file dependency_graph.h.


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


clasp
Author(s): Benjamin Kaufmann
autogenerated on Thu Aug 27 2015 12:41:41