Current section

Files

Jump to
fixpoint lib solver constraints all_different all_different_binary.ex
Raw

lib/solver/constraints/all_different/all_different_binary.ex

defmodule CPSolver.Constraint.AllDifferent.Binary do
use CPSolver.Constraint
alias CPSolver.Propagator.NotEqual
@impl true
def propagators(variables) do
for i <- 0..(length(variables) - 2) do
for j <- (i + 1)..(length(variables) - 1) do
NotEqual.new(Enum.at(variables, i), Enum.at(variables, j))
end
end
|> List.flatten()
end
end