sig
type 'a tt = 'a Mpz.tt
type t = Mpz.f Mpzf.tt
val _mpz : Mpzf.t -> Mpz.t
val _mpzf : Mpz.t -> Mpzf.t
val to_mpz : Mpzf.t -> 'a Mpz.tt
val of_mpz : 'a Mpz.tt -> Mpzf.t
val print : Format.formatter -> 'a Mpzf.tt -> unit
val of_string : string -> Mpzf.t
val of_float : float -> Mpzf.t
val of_int : int -> Mpzf.t
val to_string : 'a Mpzf.tt -> string
val to_float : 'a Mpzf.tt -> float
val add : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t
val add_int : 'a Mpzf.tt -> int -> Mpzf.t
val sub : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t
val sub_int : 'a Mpzf.tt -> int -> Mpzf.t
val mul : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t
val mul_int : 'a Mpzf.tt -> int -> Mpzf.t
val cdiv_q : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t
val cdiv_r : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t
val cdiv_qr : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t * Mpzf.t
val fdiv_q : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t
val fdiv_r : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t
val fdiv_qr : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t * Mpzf.t
val tdiv_q : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t
val tdiv_r : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t
val tdiv_qr : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t * Mpzf.t
val divexact : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t
val gmod : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t
val gcd : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t
val lcm : 'a Mpzf.tt -> 'b Mpzf.tt -> Mpzf.t
val neg : 'a Mpzf.tt -> Mpzf.t
val abs : 'a Mpzf.tt -> Mpzf.t
val cmp : 'a Mpzf.tt -> 'b Mpzf.tt -> int
val cmp_int : 'a Mpzf.tt -> int -> int
val sgn : 'a Mpzf.tt -> int
end