Module type Emc.S
module type S = sig
.. end
a common interface for ZDD and DLX
type
t
val create : ?primary:int -> bool array array -> t
construct the algorithm corresponding structure
doubly linked matrix for dlx and a zdd for zdd
val find_solution : t -> Emc.solution
raises Not_found
if the problem has no solution
val iter_solution : (Emc.solution -> unit) -> t -> unit
Emc.iter_solution f p
applies f
in turn to each problem p
solutions
val count_solutions : t -> int
Return the number of solutions to this problem
module type ARITH = sig
.. end
simple arithmetic module with big integers
module Count:
Functor usage of arithmetics