48#ifdef GUM_CONSTRAINT_CLASS_NAME
51INLINE
void GUM_CONSTRAINT_CLASS_NAME::setGraph(
const DiGraph& graph) {
52 constraints::setGraph(graph);
57INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkArcAddition(NodeId x, NodeId y)
const {
58 return constraints::checkArcAddition(x, y) && checkArcAdditionAlone(x, y);
62INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkArcDeletion(NodeId x, NodeId y)
const {
63 return constraints::checkArcDeletion(x, y) && checkArcDeletionAlone(x, y);
67INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkArcReversal(NodeId x, NodeId y)
const {
68 return constraints::checkArcReversal(x, y) && checkArcReversalAlone(x, y);
72INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkArcTriangleDeletion1(NodeId node1,
75 return constraints::checkArcTriangleDeletion1(node1, node2, node3)
76 && checkArcTriangleDeletion1Alone(node1, node2, node3);
80INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkArcTriangleDeletion2(NodeId node1,
83 return constraints::checkArcTriangleDeletion2(node1, node2, node3)
84 && checkArcTriangleDeletion2Alone(node1, node2, node3);
88INLINE
void GUM_CONSTRAINT_CLASS_NAME::modifyGraph(
const ArcAddition& change) {
89 constraints::modifyGraph(change);
90 modifyGraphAlone(change);
94INLINE
void GUM_CONSTRAINT_CLASS_NAME::modifyGraph(
const ArcDeletion& change) {
95 constraints::modifyGraph(change);
96 modifyGraphAlone(change);
100INLINE
void GUM_CONSTRAINT_CLASS_NAME::modifyGraph(
const ArcReversal& change) {
101 constraints::modifyGraph(change);
102 modifyGraphAlone(change);
106INLINE
void GUM_CONSTRAINT_CLASS_NAME::modifyGraph(
const ArcTriangleDeletion1& change) {
107 constraints::modifyGraph(change);
108 modifyGraphAlone(change);
112INLINE
void GUM_CONSTRAINT_CLASS_NAME::modifyGraph(
const ArcTriangleDeletion2& change) {
113 constraints::modifyGraph(change);
114 modifyGraphAlone(change);
118INLINE
void GUM_CONSTRAINT_CLASS_NAME::modifyGraph(
const GraphChange& change) {
119 constraints::modifyGraph(change);
120 modifyGraphAlone(change);
124INLINE
bool GUM_CONSTRAINT_CLASS_NAME::isAlwaysInvalid(
const GraphChange& change)
const {
125 return constraints::isAlwaysInvalid(change) || isAlwaysInvalidAlone(change);
129INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkModification(
const ArcAddition& change)
const {
130 return checkArcAddition(change.node1(), change.node2());
134INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkModification(
const ArcDeletion& change)
const {
135 return checkArcDeletion(change.node1(), change.node2());
139INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkModification(
const ArcReversal& change)
const {
140 return checkArcReversal(change.node1(), change.node2());
144INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkModification(
const ArcTriangleDeletion1& change)
const {
145 return checkArcTriangleDeletion1(change.node1(), change.node2(), change.node3());
149INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkModification(
const ArcTriangleDeletion2& change)
const {
150 return checkArcTriangleDeletion2(change.node1(), change.node2(), change.node3());
154INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkModification(
const GraphChange& change)
const {
155 switch (change.type()) {
156 case GraphChangeType::ARC_ADDITION :
return checkArcAddition(change.node1(), change.node2());
158 case GraphChangeType::ARC_DELETION :
return checkArcDeletion(change.node1(), change.node2());
160 case GraphChangeType::ARC_REVERSAL :
return checkArcReversal(change.node1(), change.node2());
162 case GraphChangeType::ARC_TRIANGLE_DELETION1 :
163 return checkArcTriangleDeletion1(change.node1(), change.node2(), change.node3());
165 case GraphChangeType::ARC_TRIANGLE_DELETION2 :
166 return checkArcTriangleDeletion2(change.node1(), change.node2(), change.node3());
Exception : operation not allowed.
#define GUM_ERROR(type, msg)