Functor Euclid.Make


module Make: functor (R : Rat) -> sig  end
Functor building an implementation of the Euclid.S signature given an input structure Euclid.Rat isomorphic to the rationals.
Parameters:
R : Euclid.Rat


type t
val euclid : t -> t -> t * t * t
Given two rational numbers p, q, euclid p q finds integers x, y, (p, q) satisfying p * x + q * y = (p, q), where (p, q) denotes the greatest common divisor of p, q.
Parameters:
? : t
? : t
val solve : t list -> t -> (t * t list) option
solve [c1;...;cn] b yields a particular solution for a linear diophantine equation c0 * x0 + ... + cn * xn = b with nonzero, rational coefficients ci, for i = 1,...,n with n >= 1. In case such a solution exists, it returns the gcd of the coefficients and a list of solutions li for variable xi.
Parameters:
? : t list
? : t