java.lang.Object
org.chocosolver.solver.constraints.Propagator<IntVar>
org.chocosolver.solver.constraints.ternary.PropXplusYeqZ
All Implemented Interfaces:
Comparable<Propagator<IntVar>>, ICause, Identity

public class PropXplusYeqZ extends Propagator<IntVar>
A propagator to ensure that X + Y = Z holds, where X, Y and Z are IntVar. This propagator ensures AC when all variables are enumerated, BC otherwise.

Project: choco.

Since:
03/02/2016.
Author:
Charles Prud'homme
  • Constructor Details

    • PropXplusYeqZ

      public PropXplusYeqZ(IntVar X, IntVar Y, IntVar Z)
      Create propagator for ternary sum: X + Y =Z
      Parameters:
      X - an integer variable
      Y - an integer variable
      Z - an integer variable
  • Method Details

    • propagate

      public void propagate(int evtmask) throws ContradictionException
      Description copied from class: Propagator
      Call the main filtering algorithm to apply to the Domain of the Variable objects. It considers the current state of this objects to remove some values from domains and/or instantiate some variables. Calling this method is done from 2 (and only 2) steps:
      - at the initial propagation step,
      - when involved in a reified constraint.
      It should initialized the internal data structure and apply filtering algorithm from scratch.
      Specified by:
      propagate in class Propagator<IntVar>
      Parameters:
      evtmask - type of propagation event this must consider.
      Throws:
      ContradictionException - when a contradiction occurs, like domain wipe out or other incoherencies.
    • isEntailed

      public ESat isEntailed()
      Description copied from class: Propagator
      Check wether this is entailed according to the current state of its internal structure. At least, should check the satisfaction of this (when all is instantiated).
      Specified by:
      isEntailed in class Propagator<IntVar>
      Returns:
      ESat.TRUE if entailed, ESat.FALSE if not entailed, ESat.UNDEFINED if unknown