Module Mpqf


module Mpqf: sig .. end
GMP multi-precision rationals, functional version


Functions in this module has a functional semantics, unlike the corresponding functions in Mpq. These functions are less efficients, due to the additional memory allocation neded for the result.
type t 
multi-precision rationals
val to_mpq : t -> Mpq.t
val of_mpq : Mpq.t -> t
Safe conversion from and to Mpq.t.

There is no sharing between the argument and the result.

val mpq : t -> Mpq.t
val mpqf : Mpq.t -> t
Unsafe conversion from and to Mpq.t.

The argument and the result actually share the same number: be cautious !


Pretty-printing


val print : Format.formatter -> t -> unit

Constructors


val of_string : string -> t
val of_float : float -> t
val of_int : int -> t
val of_frac : int -> int -> t
val of_mpz : Mpz.t -> t
val of_mpz2 : Mpz.t -> Mpz.t -> t
val of_mpzf : Mpzf.t -> t
val of_mpzf2 : Mpzf.t -> Mpzf.t -> t

Conversions


val to_string : t -> string
val to_float : t -> float
val to_mpzf2 : t -> Mpzf.t * Mpzf.t

Arithmetic Functions


val add : t -> t -> t
val sub : t -> t -> t
val mul : t -> t -> t
val div : t -> t -> t
val neg : t -> t
val abs : t -> t
val inv : t -> t
val equal : t -> t -> bool

Comparison Functions


val cmp : t -> t -> int
val cmp_int : t -> int -> int
val cmp_frac : t -> int -> int -> int
val sgn : t -> int

Extraction Functions


val get_num : t -> Mpzf.t
val get_den : t -> Mpzf.t