An atom node. More...
#include <dependency_graph.h>
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 NodeId * | bodies_begin () const |
Bodies (i.e. predecessors): bodies from other SCCs precede those from same SCC. | |
const NodeId * | bodies_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 NodeId * | succs () 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. |
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.
Definition at line 107 of file dependency_graph.h.
Clasp::SharedDependencyGraph::AtomNode::AtomNode | ( | ) | [inline] |
Definition at line 108 of file dependency_graph.h.
const NodeId* Clasp::SharedDependencyGraph::AtomNode::bodies_begin | ( | ) | const [inline] |
Bodies (i.e. predecessors): bodies from other SCCs precede those from same SCC.
Definition at line 120 of file dependency_graph.h.
const NodeId* Clasp::SharedDependencyGraph::AtomNode::bodies_end | ( | ) | const [inline] |
Definition at line 121 of file dependency_graph.h.
NodeId Clasp::SharedDependencyGraph::AtomNode::body | ( | uint32 | i | ) | const [inline] |
Definition at line 122 of file dependency_graph.h.
bool Clasp::SharedDependencyGraph::AtomNode::inChoice | ( | ) | const [inline] |
Contained in the head of a choice rule?
Definition at line 112 of file dependency_graph.h.
bool Clasp::SharedDependencyGraph::AtomNode::inDisjunctive | ( | ) | const [inline] |
Contained in the head of a non-hcf disjunctive rule?
Definition at line 114 of file dependency_graph.h.
bool Clasp::SharedDependencyGraph::AtomNode::inExtended | ( | ) | const [inline] |
Contained in an extended body?
Definition at line 116 of file dependency_graph.h.
bool Clasp::SharedDependencyGraph::AtomNode::inNonHcf | ( | ) | const [inline] |
Contained in a non-hcf SCC?
Definition at line 118 of file dependency_graph.h.
void Clasp::SharedDependencyGraph::AtomNode::set | ( | Property | p | ) | [inline] |
Definition at line 109 of file dependency_graph.h.
void Clasp::SharedDependencyGraph::AtomNode::setProperties | ( | uint32 | f | ) | [inline] |
Definition at line 110 of file dependency_graph.h.
const NodeId* Clasp::SharedDependencyGraph::AtomNode::succs | ( | ) | const [inline] |
Successors from same SCC [B1,...Bn, idMax].
Definition at line 131 of file dependency_graph.h.
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.