Current section

Files

Jump to
fixpoint lib solver constraints modulo.ex
Raw

lib/solver/constraints/modulo.ex

defmodule CPSolver.Constraint.Modulo do
use CPSolver.Constraint
alias CPSolver.Propagator.Modulo, as: ModuloPropagator
alias CPSolver.IntVariable, as: Variable
def new(m, x, y)
def new(m, x, y) do
new([m, x, y])
end
@impl true
def arguments(args) do
Enum.map(args, fn arg -> (is_integer(arg) && Variable.new(arg)) || arg end)
end
@impl true
def propagators(args) do
[ModuloPropagator.new(args)]
end
end