# 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