clingo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
Gringo::SafetyChecker< Var, Ent > Struct Template Reference

#include <safetycheck.hh>

Inheritance diagram for Gringo::SafetyChecker< Var, Ent >:
Inheritance graph
Collaboration diagram for Gringo::SafetyChecker< Var, Ent >:
Collaboration graph

Classes

struct  EntNode
 
struct  VarNode
 

Public Types

typedef std::vector< EntNode * > EntVec
 
typedef std::vector< VarNode * > VarVec
 

Public Member Functions

 SafetyChecker ()
 
 SafetyChecker (SafetyChecker const &)=delete
 
 SafetyChecker (SafetyChecker &&x)
 
template<class... T>
VarNodeinsertVar (T &&...args)
 
template<class... T>
EntNodeinsertEnt (T &&...args)
 
void insertEdge (VarNode &x, EntNode &y)
 
void insertEdge (EntNode &x, VarNode &y)
 
void init (EntVec &open)
 
void propagate (EntNode *x, EntVec &open, VarVec *bound=nullptr)
 
template<class Pred = std::less<Ent>>
EntVec order (Pred pred=Pred())
 
VarVec open ()
 
template<class... T>
SafetyChecker< Var, Ent >
::VarNode
insertVar (T &&...args)
 
template<class... T>
SafetyChecker< Var, Ent >
::EntNode
insertEnt (T &&...args)
 
template<class Pred >
SafetyChecker< Var, Ent >::EntVec order (Pred pred)
 

Public Attributes

std::forward_list< EntNodeentNodes_
 
std::forward_list< VarNodevarNodes_
 

Member Typedef Documentation

template<class Var, class Ent>
typedef std::vector<EntNode*> Gringo::SafetyChecker< Var, Ent >::EntVec
template<class Var, class Ent>
typedef std::vector<VarNode*> Gringo::SafetyChecker< Var, Ent >::VarVec

Constructor & Destructor Documentation

template<class Var , class Ent >
Gringo::SafetyChecker< Var, Ent >::SafetyChecker ( )
default
template<class Var, class Ent>
Gringo::SafetyChecker< Var, Ent >::SafetyChecker ( SafetyChecker< Var, Ent > const &  )
delete
template<class Var , class Ent >
Gringo::SafetyChecker< Var, Ent >::SafetyChecker ( SafetyChecker< Var, Ent > &&  x)
default

Member Function Documentation

template<class Var , class Ent >
void Gringo::SafetyChecker< Var, Ent >::init ( EntVec open)
template<class Var , class Ent >
void Gringo::SafetyChecker< Var, Ent >::insertEdge ( VarNode x,
EntNode y 
)

Edge (x, y) implies that y depends on x being bound. E.g., variable x occurs on the rhs of assignment y.

template<class Var , class Ent >
void Gringo::SafetyChecker< Var, Ent >::insertEdge ( EntNode x,
VarNode y 
)

Edge (x, y) implies that y is bound by x. E.g., variable y occurs in a positive body element x.

template<class Var, class Ent>
template<class... T>
EntNode& Gringo::SafetyChecker< Var, Ent >::insertEnt ( T &&...  args)
template<class Var, class Ent>
template<class... T>
SafetyChecker<Var, Ent>::EntNode& Gringo::SafetyChecker< Var, Ent >::insertEnt ( T &&...  args)
template<class Var, class Ent>
template<class... T>
VarNode& Gringo::SafetyChecker< Var, Ent >::insertVar ( T &&...  args)
template<class Var, class Ent>
template<class... T>
SafetyChecker<Var, Ent>::VarNode& Gringo::SafetyChecker< Var, Ent >::insertVar ( T &&...  args)
template<class Var , class Ent >
SafetyChecker< Var, Ent >::VarVec Gringo::SafetyChecker< Var, Ent >::open ( )
template<class Var, class Ent>
template<class Pred = std::less<Ent>>
EntVec Gringo::SafetyChecker< Var, Ent >::order ( Pred  pred = Pred())
template<class Var, class Ent>
template<class Pred >
SafetyChecker<Var, Ent>::EntVec Gringo::SafetyChecker< Var, Ent >::order ( Pred  pred)

Here is the call graph for this function:

template<class Var , class Ent >
void Gringo::SafetyChecker< Var, Ent >::propagate ( EntNode x,
EntVec open,
VarVec bound = nullptr 
)

Member Data Documentation

template<class Var, class Ent>
std::forward_list<EntNode> Gringo::SafetyChecker< Var, Ent >::entNodes_
template<class Var, class Ent>
std::forward_list<VarNode> Gringo::SafetyChecker< Var, Ent >::varNodes_

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