module Mpzf:GMP multi-precision integers, functional versionsig..end
Mpz. These functions are less efficients, due to
the additional memory allocation needed for the result.
This module could be extended to offer more functions with a functional
semantics, if asked for.
type'att ='a Mpz.tt
typet =Mpz.f tt
val _mpz : t -> Mpz.tval _mpzf : Mpz.t -> tval to_mpz : t -> 'a Mpz.ttval of_mpz : 'a Mpz.tt -> t
There is no sharing between the argument and the result.
val print : Format.formatter -> 'a tt -> unitval of_string : string -> tval of_float : float -> tval of_int : int -> tval to_string : 'a tt -> stringval to_float : 'a tt -> floatval add : 'a tt -> 'b tt -> tval add_int : 'a tt -> int -> tval sub : 'a tt -> 'b tt -> tval sub_int : 'a tt -> int -> tval mul : 'a tt -> 'b tt -> tval mul_int : 'a tt -> int -> tval cdiv_q : 'a tt -> 'b tt -> tval cdiv_r : 'a tt -> 'b tt -> tval cdiv_qr : 'a tt -> 'b tt -> t * tval fdiv_q : 'a tt -> 'b tt -> tval fdiv_r : 'a tt -> 'b tt -> tval fdiv_qr : 'a tt -> 'b tt -> t * tval tdiv_q : 'a tt -> 'b tt -> tval tdiv_r : 'a tt -> 'b tt -> tval tdiv_qr : 'a tt -> 'b tt -> t * tval divexact : 'a tt -> 'b tt -> tval gmod : 'a tt -> 'b tt -> tval gcd : 'a tt -> 'b tt -> tval lcm : 'a tt -> 'b tt -> tval neg : 'a tt -> tval abs : 'a tt -> tval cmp : 'a tt -> 'b tt -> intval cmp_int : 'a tt -> int -> intval sgn : 'a tt -> int