1# 2# Main authors: 3# Guido Tack <tack@gecode.org> 4# 5# Contributing authors: 6# Christian Schulte <schulte@gecode.org> 7# 8# Copyright: 9# Guido Tack, 2004 10# Christian Schulte, 2006 11# 12# This file is part of Gecode, the generic constraint 13# development environment: 14# http://www.gecode.org 15# 16# Permission is hereby granted, free of charge, to any person obtaining 17# a copy of this software and associated documentation files (the 18# "Software"), to deal in the Software without restriction, including 19# without limitation the rights to use, copy, modify, merge, publish, 20# distribute, sublicense, and/or sell copies of the Software, and to 21# permit persons to whom the Software is furnished to do so, subject to 22# the following conditions: 23# 24# The above copyright notice and this permission notice shall be 25# included in all copies or substantial portions of the Software. 26# 27# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 28# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 29# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 30# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 31# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 32# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 33# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 34# 35 36[General] 37Name: Set 38Namespace: Gecode::Set 39Ifdef: GECODE_HAS_SET_VARS 40Bits: 0 41Dispose: false 42[ModEventHeader] 43 /** 44 * \defgroup TaskActorSetMEPC Set modification events and propagation conditions 45 * \ingroup TaskActorSet 46 */ 47 //@{ 48[ModEvent] 49Name: FAILED=FAILED 50 /// Domain operation has resulted in failure 51[ModEvent] 52Name: NONE=NONE 53 /// Domain operation has not changed domain 54[ModEvent] 55Name: VAL=ASSIGNED 56Combine: VAL=VAL,CARD=VAL,LUB=VAL,GLB=VAL,BB=VAL,CLUB=VAL,CGLB=VAL,CBB=VAL 57 /// Domain operation has resulted in a value (assigned variable) 58[ModEvent] 59Name: CARD 60Combine: VAL=VAL,CARD=CARD,LUB=CLUB,GLB=CGLB,BB=CBB,CLUB=CLUB,CGLB=CGLB,CBB=CBB 61 /** 62 * \brief Domain operation has changed the variable cardinality 63 * 64 * Note that this implies that the domain has not resulted in a value. 65 */ 66[ModEvent] 67Name: LUB 68Combine: VAL=VAL,CARD=CLUB,LUB=LUB,GLB=BB,BB=BB,CLUB=CLUB,CGLB=CGLB,CBB=CBB 69 /** 70 * \brief Domain operation has changed the least upper bound 71 * 72 * Note that this implies that the domain has not resulted in a value 73 * and that also neither cardinality nor the greatest lower bound 74 * have changed. 75 */ 76[ModEvent] 77Name: GLB 78Combine: VAL=VAL,CARD=CGLB,LUB=BB,GLB=GLB,BB=BB,CLUB=CBB,CGLB=CGLB,CBB=CBB 79 /** 80 * \brief Domain operation has changed the greatest lower bound 81 * 82 * Note that this implies that the domain has not resulted in a value 83 * and that also neither cardinality nor the least upper bound 84 * have changed. 85 */ 86[ModEvent] 87Name: BB 88Combine: VAL=VAL,CARD=CBB,LUB=BB,GLB=BB,BB=BB,CLUB=CBB,CGLB=CBB,CBB=CBB 89 /** 90 * \brief Domain operation has changed both greatest lower and least 91 * upper bound 92 * 93 * Note that this implies that the domain has not resulted in a value 94 * and that also the cardinality has not changed. 95 */ 96[ModEvent] 97Name: CLUB 98Combine: VAL=VAL,CARD=CLUB,LUB=CLUB,GLB=CBB,BB=CBB,CLUB=CLUB,CGLB=CBB,CBB=CBB 99 /** 100 * \brief Domain operation has changed the least upper bound and the cardinality 101 * 102 * Note that this implies that the domain has not resulted in a value 103 * and that also the greatest lower bound has not changed. 104 */ 105[ModEvent] 106Name: CGLB 107Combine: VAL=VAL,CARD=CGLB,LUB=CBB,GLB=CGLB,BB=CBB,CLUB=CBB,CGLB=CGLB,CBB=CBB 108 /** 109 * \brief Domain operation has changed the greatest lower bound and the cardinality 110 * 111 * Note that this implies that the domain has not resulted in a value 112 * and that also the least upper bound has not changed. 113 */ 114[ModEvent] 115Name: CBB=SUBSCRIBE 116Combine: VAL=VAL,CARD=CBB,LUB=CBB,GLB=CBB,BB=CBB,CLUB=CBB,CGLB=CBB,CBB=CBB 117 /** 118 * \brief Domain operation has changed both the greatest lower bound and 119 * the least upper bound, as well as the cardinality 120 * 121 * Note that this implies that the domain has not resulted in a value. 122 * 123 * If a propagator subscribes to this variable, it will be processed 124 * assuming a ME_SET_CBB modification event. 125 * 126 */ 127[ModEventFooter] 128[PropCondHeader] 129[PropCond] 130Name: NONE=NONE 131 /// Propagation condition to be ignored (convenience) 132[PropCond] 133Name: VAL=ASSIGNED 134ScheduledBy: VAL 135 /** 136 * \brief Propagate when a view becomes assigned (single value) 137 * 138 * If a propagator \a p depends on a view \a x with propagation 139 * condition PC_SET_VAL, then \a p is propagated when a domain 140 * update operation on \a x returns the modification event ME_SET_VAL. 141 */ 142[PropCond] 143Name: CARD 144ScheduledBy: VAL,CARD,CGLB,CLUB,CBB 145 /** 146 * \brief Propagate when the cardinality of a view changes 147 * 148 * If a propagator \a p depends on a view \a x with propagation 149 * condition PC_SET_CARD, then \a p is propagated when a domain 150 * update operation on \a x returns the modification event ME_SET_VAL, 151 * ME_SET_CARD, ME_SET_CGLB, ME_SET_CLUB, or ME_SET_CBB. 152 */ 153[PropCond] 154Name: CLUB 155ScheduledBy: VAL,CARD,LUB,BB,CLUB,CGLB,CBB 156 /** 157 * \brief Propagate when the cardinality or the least upper bound 158 * of a view changes 159 * 160 * If a propagator \a p depends on a view \a x with propagation 161 * condition PC_SET_CLUB, then \a p is propagated when a domain 162 * update operation on \a x returns the modification event ME_SET_VAL, 163 * ME_SET_LUB, ME_SET_BB, ME_SET_CARD, ME_SET_CGLB, ME_SET_CLUB, 164 * or ME_SET_CBB. 165 */ 166[PropCond] 167Name: CGLB 168ScheduledBy: VAL,CARD,GLB,BB,CLUB,CGLB,CBB 169 /** 170 * \brief Propagate when the cardinality or the greatest lower bound 171 * of a view changes 172 * 173 * If a propagator \a p depends on a view \a x with propagation 174 * condition PC_SET_CGLB, then \a p is propagated when a domain 175 * update operation on \a x returns the modification event ME_SET_VAL, 176 * ME_SET_GLB, ME_SET_BB, ME_SET_CARD, ME_SET_CGLB, ME_SET_CLUB, 177 * or ME_SET_CBB. 178 */ 179[PropCond] 180Name: ANY 181ScheduledBy: VAL,CARD,LUB,GLB,BB,CLUB,CGLB,CBB 182 /** 183 * \brief Propagate when any bound or the cardinality 184 * of a view changes 185 * 186 * If a propagator \a p depends on a view \a x with propagation 187 * condition PC_SET_ANY, then \a p is propagated when a domain 188 * update operation on \a x returns any modification event but ME_SET_FAILED 189 * and ME_SET_NONE. 190 */ 191[PropCondFooter] 192 //@} 193[End] 194