v2.21.0
What's new
IntervalDomain propagation extended to comparator and offset constraints
Three constraint types now propagate over IntervalDomain (continuous [min, max]) variables in addition to SumConstraint and LinearConstraint:
UnaryComparatorConstraint— clips a single interval variable's bounds (x >= 3.0raises the floor,x <= 7.0lowers the ceiling)BinaryComparatorConstraint— clips both variables' bounds relative to each other (x <= yreducesx.maxand raisesy.min); also handles mixed discrete/interval pairsBinaryOffsetConstraint— clips bounds accounting for the offset (x + 3.0 == ypropagates in both directions)
NumericBounds promoted to constraints package
NumericBounds (shared min/max extraction and narrowing utility) moved from constraints.nary to constraints so it can be reused across binary and n-ary constraint implementations.
getNeighbours(Variable) on ConstraintSatisfactionProblem
Convenience overload returns the neighbour set for a single variable, replacing the previous TODO in TreeDecomposerImpl.