Module Funarith_zarith__.Diophantine_zarith

include Funarith.Diophantine.S with type Z.t = Z.t
module Z : Funarith.Int.DERIVED with type t = Z.t
exception Empty
exception Inconsistent_lengths
module Solution : sig ... end
type solution = Solution.t
module Homogeneous_system : sig ... end
val solve : ?⁠cut:(solution ‑> bool) ‑> Z.t array array ‑> solution Sequence.t

Return an iterator on minimum solutions. Any solution to the initial problem is a linear combination of these minimal solutions.

  • Parameter cut: called on every intermediate tuple traversed by the algorithm (in an increasing order). If it returns true, the tuple (and all solutions below it) is dropped.
  • Raises Empty: if the array is empty
  • Raises Inconsistent_lengths: if all equations don't have the same length
val solve_l : ?⁠cut:(solution ‑> bool) ‑> Z.t array array ‑> solution list

Eager version of solve, returns the (reverse) list of solutions

  • Raises Empty: if the array is empty
  • Raises Inconsistent_lengths: if all equations don't have the same length