delete iterator;
}
+void updateEdgePolarity(BooleanEdge dst, BooleanEdge src) {
+ Boolean *bdst = dst.getBoolean();
+ Boolean *bsrc = src.getBoolean();
+ bool isNegated = dst.isNegated() ^ src.isNegated();
+ Polarity p = isNegated ? negatePolarity(bsrc->polarity) : bsrc->polarity;
+ updatePolarity(bdst, p);
+}
+
+void updateEdgePolarity(BooleanEdge dst, Polarity p) {
+ Boolean *bdst = dst.getBoolean();
+ bool isNegated = dst.isNegated();
+ if (isNegated)
+ p=negatePolarity(p);
+ updatePolarity(bdst, p);
+}
+
bool updatePolarity(Boolean *This, Polarity polarity) {
Polarity oldpolarity = This->polarity;
Polarity newpolarity = (Polarity) (This->polarity | polarity);
}
}
-Polarity negatePolarity(Polarity This) {
- switch (This) {
- case P_UNDEFINED:
- case P_BOTHTRUEFALSE:
- return This;
- case P_TRUE:
- return P_FALSE;
- case P_FALSE:
- return P_TRUE;
- default:
- ASSERT(0);
- }
-}
-
BooleanValue negateBooleanValue(BooleanValue This) {
switch (This) {
case BV_UNDEFINED:
ASSERT(0);
}
}
+
+Polarity negatePolarity(Polarity This) {
+ switch (This) {
+ case P_UNDEFINED:
+ case P_BOTHTRUEFALSE:
+ return This;
+ case P_TRUE:
+ return P_FALSE;
+ case P_FALSE:
+ return P_TRUE;
+ default:
+ ASSERT(0);
+ }
+}