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 : Stdlib.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