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