51#ifndef DOXYGEN_SHOULD_SKIP_THIS
95 switch (change.type()) {
107 "edge modifications are not "
108 "supported by StructuralConstraintNoParentNodes");
127 switch (change.type()) {
139 "edge modifications are not supported "
140 "by StructuralConstraintNoParentNodes");
163# define GUM_CONSTRAINT_CLASS_NAME StructuralConstraintNoParentNodes
165# undef GUM_CONSTRAINT_CLASS_NAME
The class for notifying learning algorithms of new arc additions.
The class for notifying learning algorithms of arc removals.
The class for notifying learning algorithms of arc reversals.
NodeSet _noParentNodes_
the ForbiddenArcs on which we perform checks
bool checkArcDeletionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to remove arc (x,y)
bool checkModificationAlone(const GraphChange &change) const
checks whether the constraints enable to perform a graph change
void modifyGraphAlone(const ArcAddition &change)
notify the constraint of a modification of the graph
const NodeSet & nodes() const
returns the set of nodes without parent
void setNodes(const NodeSet &set)
assign a set of nodes without parent
bool isAlwaysInvalidAlone(const GraphChange &change) const
indicates whether a change will always violate the constraint
void addNode(NodeId node)
assign a new node without parent
void setGraphAlone(const DiGraph &graph)
sets a new graph from which we will perform checkings
bool checkArcReversalAlone(NodeId x, NodeId y) const
checks whether the constraints enable to reverse arc (x,y)
void eraseNode(NodeId node)
remove a node without parent
bool checkArcAdditionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to add arc (x,y)
#define GUM_ERROR(type, msg)
Size NodeId
Type for node ids.
Set< NodeId > NodeSet
Some typdefs and define for shortcuts ...
include the inlined functions if necessary
the structural constraint for forbidding parents for some nodes during structure learning