1#
2#  Main authors:
3#     Christian Schulte <schulte@gecode.org>
4#
5#  Copyright:
6#     Christian Schulte, 2006
7#
8#  This file is part of Gecode, the generic constraint
9#  development environment:
10#     http://www.gecode.org
11#
12#  Permission is hereby granted, free of charge, to any person obtaining
13#  a copy of this software and associated documentation files (the
14#  "Software"), to deal in the Software without restriction, including
15#  without limitation the rights to use, copy, modify, merge, publish,
16#  distribute, sublicense, and/or sell copies of the Software, and to
17#  permit persons to whom the Software is furnished to do so, subject to
18#  the following conditions:
19#
20#  The above copyright notice and this permission notice shall be
21#  included in all copies or substantial portions of the Software.
22#
23#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24#  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25#  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26#  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27#  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28#  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29#  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30#
31
32[General]
33Name:           Int
34Namespace:      Gecode::Int
35Ifdef:          GECODE_HAS_INT_VARS
36Bits:           0
37Dispose:        false
38[ModEventHeader]
39  /**
40   * \defgroup TaskActorIntMEPC Integer modification events and propagation conditions
41   * \ingroup TaskActorInt
42   */
43  //@{
44[ModEvent]
45Name:           FAILED=FAILED
46  /// Domain operation has resulted in failure
47[ModEvent]
48Name:           NONE=NONE
49  /// Domain operation has not changed domain
50[ModEvent]
51Name:           VAL=ASSIGNED
52Combine:        VAL=VAL, BND=VAL, DOM=VAL
53  /// Domain operation has resulted in a value (assigned variable)
54[ModEvent]
55Name:           BND=SUBSCRIBE
56Combine:        VAL=VAL, BND=BND, DOM=BND
57  /**
58   * \brief Domain operation has changed the minimum or maximum of the domain
59   *
60   * Note that this implies that the domain has not resulted in a value.
61   *
62   * If a propagator subscribes to this variable, it will be processed
63   * assuming a ME_INT_BND modification event.
64   */
65[ModEvent]
66Name:           DOM
67Combine:        VAL=VAL, BND=BND, DOM=DOM
68  /**
69   * \brief Domain operation has changed the domain
70   *
71   * Note that this implies that the domain has not resulted in a value
72   * and that also the minimum and maximum of the domain have not changed.
73   */
74[ModEventFooter]
75[PropCondHeader]
76[PropCond]
77Name:           NONE=NONE
78  /// Propagation condition to be ignored (convenience)
79[PropCond]
80Name:           VAL=ASSIGNED
81ScheduledBy:    VAL
82  /**
83   * \brief Propagate when a view becomes assigned (single value)
84   *
85   * If a propagator \a p depends on a view \a x with propagation
86   * condition PC_INT_VAL, then \a p is propagated when a domain
87   * update operation on \a x returns the modification event ME_INT_VAL.
88   */
89[PropCond]
90Name:           BND
91ScheduledBy:    VAL, BND
92  /**
93   * \brief Propagate when minimum or maximum of a view changes
94   *
95   * If a propagator \a p depends on a view \a x with propagation
96   * condition PC_INT_BND, then \a p is propagated when a domain
97   * update operation on \a x returns the modification events ME_INT_VAL
98   * or ME_INT_BND.
99   */
100[PropCond]
101Name:           DOM
102ScheduledBy:    VAL, BND, DOM
103  /**
104   * \brief Propagate when domain changes
105   *
106   * If a propagator \a p depends on a view \a x with propagation
107   * condition PC_INT_DOM, then \a p is propagated when a domain
108   * update operation on \a x returns the modification event ME_INT_VAL,
109   * ME_INT_BND, or ME_INT_DOM.
110   */
111[PropCondFooter]
112  //@}
113[End]
114