A head node of a program-dependency graph. More...
#include <logic_program_types.h>
Public Types | |
enum | Simplify { no_simplify = 0, force_simplify = 1 } |
enum | State { state_normal = 0u, state_in_flux = 1u, state_freeze = 2u, state_freeze_true = 3u } |
typedef EdgeIterator | sup_iterator |
Public Member Functions | |
void | addSupport (PrgEdge r) |
Adds r as support edge for this node. | |
void | addSupport (PrgEdge r, Simplify s) |
bool | assignValue (ValueRep v) |
Assigns the value v to this head. | |
Literal | assumption () const |
void | clearSupports () |
void | clearSupports (EdgeVec &to) |
bool | frozen () const |
Defined in a later incremental step? | |
bool | inFlux () const |
Thawed in this step? | |
bool | inUpper () const |
Is the head part of the (simplified) program? | |
bool | isAtom () const |
Is this head an atom? | |
void | removeSupport (PrgEdge r) |
Removes r from the head's list of supports. | |
bool | simplifySupports (LogicProgram &prg, bool strong, uint32 *numDiffSupps=0) |
Removes any superfluous/irrelevant supports. | |
State | state () const |
uint32 | supports () const |
Number of supports (rules) for this head. | |
sup_iterator | supps_begin () const |
sup_iterator | supps_end () const |
implementation functions | |
Low-level implementation functions. Use with care and only if you know what you are doing! | |
void | setInUpper (bool b) |
void | markDirty () |
void | assignVar (LogicProgram &prg, PrgEdge it) |
Protected Member Functions | |
bool | backpropagate (LogicProgram &prg, ValueRep val, bool bpFull) |
PrgHead (uint32 id, NodeType t, uint32 data=0, bool checkScc=true) | |
Creates a new node that corresponds to a literal that is false. | |
Protected Attributes | |
uint32 | data_: 27 |
uint32 | dirty_: 1 |
uint32 | isAtom_: 1 |
uint32 | state_: 2 |
EdgeVec | supports_ |
uint32 | upper_: 1 |
A head node of a program-dependency graph.
A head node stores its possible supports and is either an atom or a disjunction.
Definition at line 396 of file logic_program_types.h.
Definition at line 400 of file logic_program_types.h.
Definition at line 398 of file logic_program_types.h.
Definition at line 399 of file logic_program_types.h.
Clasp::Asp::PrgHead::PrgHead | ( | uint32 | id, |
NodeType | t, | ||
uint32 | data = 0 , |
||
bool | checkScc = true |
||
) | [explicit, protected] |
Creates a new node that corresponds to a literal that is false.
Definition at line 507 of file logic_program_types.cpp.
void Clasp::Asp::PrgHead::addSupport | ( | PrgEdge | r | ) | [inline] |
Adds r as support edge for this node.
Definition at line 417 of file logic_program_types.h.
void Clasp::Asp::PrgHead::addSupport | ( | PrgEdge | r, |
Simplify | s | ||
) |
Definition at line 516 of file logic_program_types.cpp.
bool Clasp::Asp::PrgHead::assignValue | ( | ValueRep | v | ) | [inline] |
Assigns the value v to this head.
Definition at line 426 of file logic_program_types.h.
void Clasp::Asp::PrgHead::assignVar | ( | LogicProgram & | prg, |
PrgEdge | it | ||
) |
Definition at line 583 of file logic_program_types.cpp.
Literal Clasp::Asp::PrgHead::assumption | ( | ) | const [inline] |
Definition at line 414 of file logic_program_types.h.
bool Clasp::Asp::PrgHead::backpropagate | ( | LogicProgram & | prg, |
ValueRep | val, | ||
bool | bpFull | ||
) | [protected] |
Definition at line 604 of file logic_program_types.cpp.
void Clasp::Asp::PrgHead::clearSupports | ( | ) |
Definition at line 528 of file logic_program_types.cpp.
void Clasp::Asp::PrgHead::clearSupports | ( | EdgeVec & | to | ) | [inline] |
Definition at line 422 of file logic_program_types.h.
bool Clasp::Asp::PrgHead::frozen | ( | ) | const [inline] |
Defined in a later incremental step?
Definition at line 411 of file logic_program_types.h.
bool Clasp::Asp::PrgHead::inFlux | ( | ) | const [inline] |
Thawed in this step?
Definition at line 413 of file logic_program_types.h.
bool Clasp::Asp::PrgHead::inUpper | ( | ) | const [inline] |
Is the head part of the (simplified) program?
Definition at line 403 of file logic_program_types.h.
bool Clasp::Asp::PrgHead::isAtom | ( | ) | const [inline] |
Is this head an atom?
Definition at line 405 of file logic_program_types.h.
void Clasp::Asp::PrgHead::markDirty | ( | ) | [inline] |
Definition at line 434 of file logic_program_types.h.
void Clasp::Asp::PrgHead::removeSupport | ( | PrgEdge | r | ) |
Removes r from the head's list of supports.
Definition at line 521 of file logic_program_types.cpp.
void Clasp::Asp::PrgHead::setInUpper | ( | bool | b | ) | [inline] |
Definition at line 433 of file logic_program_types.h.
bool Clasp::Asp::PrgHead::simplifySupports | ( | LogicProgram & | prg, |
bool | strong, | ||
uint32 * | numDiffSupps = 0 |
||
) |
Removes any superfluous/irrelevant supports.
Definition at line 536 of file logic_program_types.cpp.
State Clasp::Asp::PrgHead::state | ( | ) | const [inline] |
Definition at line 415 of file logic_program_types.h.
uint32 Clasp::Asp::PrgHead::supports | ( | ) | const [inline] |
Number of supports (rules) for this head.
Definition at line 407 of file logic_program_types.h.
sup_iterator Clasp::Asp::PrgHead::supps_begin | ( | ) | const [inline] |
Definition at line 408 of file logic_program_types.h.
sup_iterator Clasp::Asp::PrgHead::supps_end | ( | ) | const [inline] |
Definition at line 409 of file logic_program_types.h.
uint32 Clasp::Asp::PrgHead::data_ [protected] |
Definition at line 442 of file logic_program_types.h.
uint32 Clasp::Asp::PrgHead::dirty_ [protected] |
Definition at line 444 of file logic_program_types.h.
uint32 Clasp::Asp::PrgHead::isAtom_ [protected] |
Definition at line 446 of file logic_program_types.h.
uint32 Clasp::Asp::PrgHead::state_ [protected] |
Definition at line 445 of file logic_program_types.h.
EdgeVec Clasp::Asp::PrgHead::supports_ [protected] |
Definition at line 441 of file logic_program_types.h.
uint32 Clasp::Asp::PrgHead::upper_ [protected] |
Definition at line 443 of file logic_program_types.h.