common.icc
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 namespace Gecode { namespace Set { namespace Rel {
00029
00030 #define GECODE_ME_CHECK_B(modified, tell) \
00031 { \
00032 ModEvent me = (tell); \
00033 modified |= me_modified(me); \
00034 GECODE_ME_CHECK(me); \
00035 }
00036
00037 forceinline
00038 bool subsumesME(ModEvent me0, ModEvent me1, ModEvent me2, ModEvent me) {
00039 ModEvent cme = SetView::combine(me0,SetView::combine(me1, me2));
00040 return SetView::combine(cme, me)==cme;
00041 }
00042 forceinline
00043 bool subsumesME(ModEvent me0, ModEvent me1, ModEvent me) {
00044 ModEvent cme = SetView::combine(me0, me1);
00045 return SetView::combine(cme, me)==cme;
00046 }
00047 forceinline
00048 bool subsumesME(ModEvent me0, ModEvent me) {
00049 return SetView::combine(me0, me)==me0;
00050 }
00051
00052 forceinline
00053 bool testSetEventLB(ModEvent me0, ModEvent me1, ModEvent me2) {
00054 return subsumesME(me0, me1, me2, ME_SET_GLB);
00055 }
00056 forceinline
00057 bool testSetEventUB(ModEvent me0, ModEvent me1, ModEvent me2) {
00058 return subsumesME(me0, me1, me2, ME_SET_LUB);
00059 }
00060 forceinline
00061 bool testSetEventAnyB(ModEvent me0, ModEvent me1, ModEvent me2) {
00062 return ( me0!=ME_SET_CARD || me1!=ME_SET_CARD || me2!=ME_SET_CARD );
00063 }
00064 forceinline
00065 bool testSetEventCard(ModEvent me0, ModEvent me1, ModEvent me2) {
00066 return subsumesME(me0, me1, me2, ME_SET_CARD);
00067 }
00068 forceinline
00069 bool testSetEventLB(ModEvent me0, ModEvent me1) {
00070 return subsumesME(me0, me1, ME_SET_GLB);
00071 }
00072 forceinline
00073 bool testSetEventUB(ModEvent me0, ModEvent me1) {
00074 return subsumesME(me0, me1, ME_SET_LUB);
00075 }
00076 forceinline
00077 bool testSetEventAnyB(ModEvent me0, ModEvent me1) {
00078 return ( me0!=ME_SET_CARD || me1!=ME_SET_CARD );
00079 }
00080 forceinline
00081 bool testSetEventCard(ModEvent me0, ModEvent me1) {
00082 return subsumesME(me0, me1, ME_SET_CARD);
00083 }
00084 forceinline
00085 bool testSetEventLB(ModEvent me0) {
00086 return subsumesME(me0, ME_SET_GLB);
00087 }
00088 forceinline
00089 bool testSetEventUB(ModEvent me0) {
00090 return subsumesME(me0, ME_SET_LUB);
00091 }
00092 forceinline
00093 bool testSetEventAnyB(ModEvent me0) {
00094 return ( me0!=ME_SET_CARD );
00095 }
00096 forceinline
00097 bool testSetEventCard(ModEvent me0) {
00098 return subsumesME(me0, ME_SET_CARD);
00099 }
00100
00101 }}}
00102
00103