this repo has no description
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]