Crate gmp_mpfr_sys [−] [src]
Rust low-level bindings for GMP, MPFR and MPC
The gmp-mpfr-sys
crate provides Rust low-level bindings for
- the GNU Multiple Precision Arithmetic Library (GMP),
- the GNU MPFR Library, a library for multiple-precision floating-point computations, and
- GNU MPC, a library for the arithmetic of complex numbers with arbitrarily high precision.
This crate is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This crate provides a low-level interface to GMP, MPFR and MPC. If you want a high-level API, consider using the following crates:
rugint
provides arbitrary-precision integers based on GMP.rugrat
provides arbitrary-precision rational number based on GMP.rugflo
provides arbitrary-precision floating-point numbers based on MPFR.rugcom
provides arbitrary-precision complex numbers based on MPC.
If you want to use the low-level bindings, you can refer to the documentation of the C libraries themselves:
Name prefixes
Since modules and enumerated types provide namespacing, most
prefixes in the C names are removed. However, when the prefix is
not a whole word it is not removed, for example
mp_set_memory_functions()
becomes gmp::set_memory_functions()
,
but mpz_init()
becomes gmp::mpz_init()
not gmp::z_init()
,
and MPFR_RNDN
in enum MPFR_RND_T
becomes mpfr::rnd_t::RNDN
not mpfr::rnd_t::N
. Also, the types mpfr::mpfr_t
and
mpc::mpc_t
are not shortened to mpfr::t
or mpc::t
.
Types
Unlike the C libraries, the types gmp::mpz_t
, gmp::mpq_t
,
gmp::mpf_t
, gmp::rand_state_t
, mpfr::mpfr_t
and mpc::mpc_t
are defined directly as structs, not as single-element arrays.
Undocumented or obsolete functions
The bindings do not cover undocumented or obsolete functions and macros.
Modules
gmp | |
mpc | |
mpfr |