Module gmp

Source
Expand description

Function and type bindings for the GMP library.

§Examples

use core::mem::MaybeUninit;
use gmp_mpfr_sys::gmp;
unsafe {
    let mut z = {
        let mut z = MaybeUninit::uninit();
        gmp::mpz_init(z.as_mut_ptr());
        z.assume_init()
    };
    gmp::mpz_set_ui(&mut z, 15);
    let u = gmp::mpz_get_ui(&z);
    assert_eq!(u, 15);
    gmp::mpz_clear(&mut z);
}

Structs§

mpf_t
See: mpf_t and Float Internals
mpq_t
See: mpq_t and Rational Internals
mpz_t
See: mpz_t and Integer Internals
randfnptr_t
The type for the algdata field in the randstate_t struct.
randseed_t
The type for the seed field in the randstate_t struct.
randstate_t
See: gmp_randstate_t

Constants§

CC
See: __GMP_CC
CFLAGS
See: __GMP_CFLAGS
LIMB_BITS
See: GMP_LIMB_BITS
NAIL_BITS
See: GMP_NAIL_BITS
NAIL_MASK
See: GMP_NAIL_MASK
NUMB_BITS
See: GMP_NUMB_BITS
NUMB_MASK
See: GMP_NUMB_MASK
NUMB_MAX
See: GMP_NUMB_MAX
VERSION
See: __GNU_MP_VERSION
VERSION_MINOR
See: __GNU_MP_VERSION_MINOR
VERSION_PATCHLEVEL
See: __GNU_MP_VERSION_PATCHLEVEL

Statics§

bits_per_limb
See: mp_bits_per_limb
version
See: gmp_version

Functions§

MPZ_ROINIT_N
See: MPZ_ROINIT_N
_mpz_realloc
See: _mpz_realloc
asprintf
See: gmp_asprintf
fprintf
See: gmp_fprintf
fscanf
See: gmp_fscanf
get_memory_functions
See: mp_get_memory_functions
mpf_abs
See: mpf_abs
mpf_add
See: mpf_add
mpf_add_ui
See: mpf_add_ui
mpf_ceil
See: mpf_ceil
mpf_clear
See: mpf_clear
mpf_clears
See: mpf_clears
mpf_cmp
See: mpn_cmp
mpf_cmp_d
See: mpf_cmp_d
mpf_cmp_si
See: mpf_cmp_si
mpf_cmp_ui
See: mpf_cmp_ui
mpf_cmp_z
See: mpq_cmp_z
mpf_div
See: mpf_div
mpf_div_2exp
See: mpf_div_2exp
mpf_div_ui
See: mpf_div_ui
mpf_eq
See: mpf_eq
mpf_fits_sint_p
See: mpf_fits_sint_p
mpf_fits_slong_p
See: mpf_fits_slong_p
mpf_fits_sshort_p
See: mpf_fits_sshort_p
mpf_fits_uint_p
See: mpf_fits_uint_p
mpf_fits_ulong_p
See: mpf_fits_ulong_p
mpf_fits_ushort_p
See: mpf_fits_ushort_p
mpf_floor
See: mpf_floor
mpf_get_d
See: mpf_get_d
mpf_get_d_2exp
See: mpf_get_d_2exp
mpf_get_default_prec
See: mpf_get_default_prec
mpf_get_prec
See: mpf_get_prec
mpf_get_si
See: mpf_get_si
mpf_get_str
See: mpf_get_str
mpf_get_ui
See: mpf_get_ui
mpf_init
See: mpf_init
mpf_init2
See: mpf_init2
mpf_init_set
See: mpf_init_set
mpf_init_set_d
See: mpf_init_set_d
mpf_init_set_si
See: mpf_init_set_si
mpf_init_set_str
See: mpf_init_set_str
mpf_init_set_ui
See: mpf_init_set_ui
mpf_inits
See: mpf_inits
mpf_inp_str
See: mpf_inp_str
mpf_integer_p
See: mpf_integer_p
mpf_mul
See: mpf_mul
mpf_mul_2exp
See: mpf_mul_2exp
mpf_mul_ui
See: mpf_mul_ui
mpf_neg
See: mpf_neg
mpf_out_str
See: mpf_out_str
mpf_pow_ui
See: mpf_pow_ui
mpf_random2
See: mpf_random2
mpf_reldiff
See: mpf_reldiff
mpf_set
See: mpf_set
mpf_set_d
See: mpf_set_default_prec
mpf_set_default_prec
See: mpf_set_default_prec
mpf_set_prec
See: mpf_set_prec
mpf_set_prec_raw
See: mpf_set_prec_raw
mpf_set_q
See: mpf_set_q
mpf_set_si
See: mpf_set_si
mpf_set_str
See: mpf_set_str
mpf_set_ui
See: mpf_set_ui
mpf_set_z
See: mpf_set_z
mpf_sgn
See: mpf_sgn
mpf_sqrt
See: mpf_sqrt
mpf_sqrt_ui
See: mpf_sqrt_ui
mpf_sub
See: mpf_sub
mpf_sub_ui
See: mpf_sub_ui
mpf_swap
See: mpf_swap
mpf_trunc
See: mpf_trunc
mpf_ui_div
See: mpf_ui_div
mpf_ui_sub
See: mpf_ui_sub
mpf_urandomb
See: mpf_urandomb
mpn_add
See: mpn_add
mpn_add_1
See: mpn_add_1
mpn_add_n
See: mpn_add_n
mpn_addmul_1
See: mpn_addmul_1
mpn_and_n
See: mpn_and_n
mpn_andn_n
See: mpn_andn_n
mpn_cmp
See: mpn_cmp
mpn_cnd_add_n
See: mpn_cnd_add_n
mpn_cnd_sub_n
See: mpn_cnd_sub_n
mpn_cnd_swap
See: mpn_cnd_swap
mpn_com
See: mpn_com
mpn_copyd
See: mpn_copyd
mpn_copyi
See: mpn_copyi
mpn_divexact_1
See: mpn_divexact_1
mpn_divexact_by3
See: mpn_divexact_by3
mpn_divexact_by3c
See: mpn_divexact_by3c
mpn_divmod_1
See: mpn_divmod_1
mpn_divrem_1
See: mpn_divrem_1
mpn_gcd
See: mpn_gcd
mpn_gcd_1
See: mpn_gcd_1
mpn_gcdext
See: mpn_gcdext
mpn_get_str
See: mpn_get_str
mpn_hamdist
See: mpn_hamdist
mpn_ior_n
See: mpn_ior_n
mpn_iorn_n
See: mpn_iorn_n
mpn_lshift
See: mpn_lshift
mpn_mod_1
See: mpn_divmod_1
mpn_mul
See: mpn_mul
mpn_mul_1
See: mpn_mul_1
mpn_mul_n
See: mpn_mul_n
mpn_nand_n
See: mpn_nand_n
mpn_neg
See: mpn_neg
mpn_nior_n
See: mpn_nior_n
mpn_perfect_square_p
See: mpn_perfect_square_p
mpn_popcount
See: mpn_popcount
mpn_random
See: mpn_random
mpn_random2
See: mpn_random2
mpn_rshift
See: mpn_rshift
mpn_scan0
See: mpn_scan0
mpn_scan1
See: mpn_scan1
mpn_sec_add_1
See: mpn_sec_add_1
mpn_sec_add_1_itch
See: mpn_sec_add_1
mpn_sec_div_qr
See: mpn_sec_div_qr
mpn_sec_div_qr_itch
See: mpn_sec_div_qr_itch
mpn_sec_div_r
See: mpn_sec_div_r
mpn_sec_div_r_itch
See: mpn_sec_div_r_itch
mpn_sec_invert
See: mpn_sec_invert
mpn_sec_invert_itch
See: mpn_sec_invert_itch
mpn_sec_mul
See: mpn_sec_mul
mpn_sec_mul_itch
See: mpn_sec_mul_itch
mpn_sec_powm
See: mpn_sec_powm
mpn_sec_powm_itch
See: mpn_sec_powm_itch
mpn_sec_sqr
See: mpn_sec_sqr
mpn_sec_sqr_itch
See: mpn_sec_sqr_itch
mpn_sec_sub_1
See: mpn_sec_sub_1
mpn_sec_sub_1_itch
See: mpn_sec_sub_1
mpn_sec_tabselect
See: mpn_sec_tabselect
mpn_set_str
See: mpn_set_str
mpn_sizeinbase
See: mpn_sizeinbase
mpn_sqr
See: mpn_sqr
mpn_sqrtrem
See: mpn_sqrtrem
mpn_sub
See: mpn_sub
mpn_sub_1
See: mpn_sub_1
mpn_sub_n
See: mpn_cnd_sub_n
mpn_submul_1
See: mpn_submul_1
mpn_tdiv_qr
See: mpn_tdiv_qr
mpn_xnor_n
See: mpn_xnor_n
mpn_xor_n
See: mpn_xor_n
mpn_zero
See: mpn_zero
mpn_zero_p
See: mpn_zero_p
mpq_abs
See: mpq_abs
mpq_add
See: mpq_add
mpq_canonicalize
See: mpq_canonicalize
mpq_clear
See: mpq_clear
mpq_clears
See: mpq_clears
mpq_cmp
See: mpq_cmp
mpq_cmp_si
See: mpq_cmp_si
mpq_cmp_ui
See: mpq_cmp_ui
mpq_cmp_z
See: mpq_cmp_z
mpq_denref
See: mpq_denref
mpq_denref_const
Constant version of mpq_denref.
mpq_div
See: mpq_div
mpq_div_2exp
See: mpq_div_2exp
mpq_equal
See: mpq_equal
mpq_get_d
See: mpq_get_d
mpq_get_den
See: mpq_get_den
mpq_get_num
See: mpq_get_num
mpq_get_str
See: mpq_get_str
mpq_init
See: mpq_init
mpq_inits
See: mpq_inits
mpq_inp_str
See: mpq_inp_str
mpq_inv
See: mpq_inv
mpq_mul
See: mpq_mul
mpq_mul_2exp
See: mpq_mul_2exp
mpq_neg
See: mpq_neg
mpq_numref
See: mpq_numref
mpq_numref_const
Constant version of mpq_numref.
mpq_out_str
See: mpq_out_str
mpq_set
See: mpq_set
mpq_set_d
See: mpq_set_d
mpq_set_den
See: mpq_set_den
mpq_set_f
See: mpq_set_f
mpq_set_num
See: mpq_set_num
mpq_set_si
See: mpq_set_si
mpq_set_str
See: mpq_set_str
mpq_set_ui
See: mpq_set_ui
mpq_set_z
See: mpq_set_z
mpq_sgn
See: mpq_sgn
mpq_sub
See: mpq_sub
mpq_swap
See: mpq_swap
mpz_2fac_ui
See: mpz_2fac_ui
mpz_abs
See: mpz_abs
mpz_add
See: mpz_add
mpz_add_ui
See: mpz_add_ui
mpz_addmul
See: mpz_addmul
mpz_addmul_ui
See: mpz_addmul_ui
mpz_and
See: mpz_and
mpz_bin_ui
See: mpz_bin_ui
mpz_bin_uiui
See: mpz_bin_uiui
mpz_cdiv_q
See: mpz_cdiv_q
mpz_cdiv_q_2exp
See: mpz_cdiv_q_2exp
mpz_cdiv_q_ui
See: mpz_cdiv_q_ui
mpz_cdiv_qr
See: mpz_cdiv_qr
mpz_cdiv_qr_ui
See: mpz_cdiv_qr_ui
mpz_cdiv_r
See: mpz_cdiv_r
mpz_cdiv_r_2exp
See: mpz_cdiv_r_2exp
mpz_cdiv_r_ui
See: mpz_cdiv_r_ui
mpz_cdiv_ui
See: mpz_cdiv_ui
mpz_clear
See: mpz_clear
mpz_clears
See: mpz_clears
mpz_clrbit
See: mpz_clrbit
mpz_cmp
See: mpz_cmp
mpz_cmp_d
See: mpz_cmp_d
mpz_cmp_si
See: mpz_cmp_si
mpz_cmp_ui
See: mpz_cmp_ui
mpz_cmpabs
See: mpz_cmpabs
mpz_cmpabs_d
See: mpz_cmpabs_d
mpz_cmpabs_ui
See: mpz_cmpabs_ui
mpz_com
See: mpz_com
mpz_combit
See: mpz_combit
mpz_congruent_2exp_p
See: mpz_congruent_2exp_p
mpz_congruent_p
See: mpz_congruent_p
mpz_congruent_ui_p
See: mpz_congruent_ui_p
mpz_divexact
See: mpz_divexact
mpz_divexact_ui
See: mpz_divexact_ui
mpz_divisible_2exp_p
See: mpz_divisible_2exp_p
mpz_divisible_p
See: mpz_divisible_p
mpz_divisible_ui_p
See: mpz_divisible_ui_p
mpz_even_p
See: mpz_even_p
mpz_export
See: mpz_export
mpz_fac_ui
See: mpz_fac_ui
mpz_fdiv_q
See: mpz_fdiv_q
mpz_fdiv_q_2exp
See: mpz_fdiv_q_2exp
mpz_fdiv_q_ui
See: mpz_fdiv_q_ui
mpz_fdiv_qr
See: mpz_fdiv_qr
mpz_fdiv_qr_ui
See: mpz_fdiv_qr_ui
mpz_fdiv_r
See: mpz_fdiv_r
mpz_fdiv_r_2exp
See: mpz_fdiv_r_2exp
mpz_fdiv_r_ui
See: mpz_fdiv_r_ui
mpz_fdiv_ui
See: mpz_fdiv_ui
mpz_fib2_ui
See: mpz_fib2_ui
mpz_fib_ui
See: mpz_fib_ui
mpz_fits_sint_p
See: mpz_fits_sint_p
mpz_fits_slong_p
See: mpz_fits_slong_p
mpz_fits_sshort_p
See: mpz_fits_sshort_p
mpz_fits_uint_p
See: mpz_fits_uint_p
mpz_fits_ulong_p
See: mpz_fits_ulong_p
mpz_fits_ushort_p
See: mpz_fits_ushort_p
mpz_gcd
See: mpz_gcd
mpz_gcd_ui
See: mpz_gcd_ui
mpz_gcdext
See: mpz_gcdext
mpz_get_d
See: mpz_get_d
mpz_get_d_2exp
See: mpz_get_d_2exp
mpz_get_si
See: mpz_get_si
mpz_get_str
See: mpz_get_str
mpz_get_ui
See: mpz_get_ui
mpz_getlimbn
See: mpz_getlimbn
mpz_hamdist
See: mpz_hamdist
mpz_import
See: mpz_import
mpz_init
See: mpz_init
mpz_init2
See: mpz_init2
mpz_init_set
See: mpz_init_set
mpz_init_set_d
See: mpz_init_set_d
mpz_init_set_si
See: mpz_init_set_si
mpz_init_set_str
See: mpz_init_set_str
mpz_init_set_ui
See: mpz_init_set_ui
mpz_inits
See: mpz_inits
mpz_inp_raw
See: mpz_inp_raw
mpz_inp_str
See: mpz_inp_str
mpz_invert
See: mpz_invert
mpz_ior
See: mpz_ior
mpz_jacobi
See: mpz_jacobi
mpz_kronecker
See: mpz_kronecker
mpz_kronecker_si
See: mpz_kronecker_si
mpz_kronecker_ui
See: mpz_kronecker_ui
mpz_lcm
See: mpz_lcm
mpz_lcm_ui
See: mpz_lcm_ui
mpz_legendre
See: mpz_legendre
mpz_limbs_finish
See: mpz_limbs_finish
mpz_limbs_modify
See: mpz_limbs_modify
mpz_limbs_read
See: mpz_limbs_read
mpz_limbs_write
See: mpz_limbs_write
mpz_lucnum2_ui
See: mpz_lucnum2_ui
mpz_lucnum_ui
See: mpz_lucnum_ui
mpz_mfac_uiui
See: mpz_mfac_uiui
mpz_mod
See: mpz_mod
mpz_mod_ui
See: mpz_mod_ui
mpz_mul
See: mpz_mul
mpz_mul_2exp
See: mpz_mul_2exp
mpz_mul_si
See: mpz_mul_si
mpz_mul_ui
See: mpz_mul_ui
mpz_neg
See: mpz_neg
mpz_nextprime
See: mpz_nextprime
mpz_odd_p
See: mpz_odd_p
mpz_out_raw
See: mpz_out_raw
mpz_out_str
See: mpz_out_str
mpz_perfect_power_p
See: mpz_perfect_power_p
mpz_perfect_square_p
See: mpz_perfect_square_p
mpz_popcount
See: mpz_popcount
mpz_pow_ui
See: mpz_pow_ui
mpz_powm
See: mpz_powm
mpz_powm_sec
See: mpz_powm_sec
mpz_powm_ui
See: mpz_powm_ui
mpz_prevprime
See: mpz_prevprime
mpz_primorial_ui
See: mpz_primorial_ui
mpz_probab_prime_p
See: mpz_probab_prime_p
mpz_random2
See: mpz_random2
mpz_realloc2
See: mpz_realloc2
mpz_remove
See: mpz_remove
mpz_roinit_n
See: mpz_roinit_n
mpz_root
See: mpz_root
mpz_rootrem
See: mpz_rootrem
mpz_rrandomb
See: mpz_rrandomb
mpz_scan0
See: mpz_scan0
mpz_scan1
See: mpz_scan1
mpz_set
See: mpz_set
mpz_set_d
See: mpz_set_d
mpz_set_f
See: mpz_set_f
mpz_set_q
See: mpz_set_q
mpz_set_si
See: mpz_set_si
mpz_set_str
See: mpz_set_str
mpz_set_ui
See: mpz_set_ui
mpz_setbit
See: mpz_setbit
mpz_sgn
See: mpz_sgn
mpz_si_kronecker
See: mpz_si_kronecker
mpz_size
See: mpz_size
mpz_sizeinbase
See: mpz_sizeinbase
mpz_sqrt
See: mpz_sqrt
mpz_sqrtrem
See: mpz_sqrtrem
mpz_sub
See: mpz_sub
mpz_sub_ui
See: mpz_sub_ui
mpz_submul
See: mpz_submul
mpz_submul_ui
See: mpz_submul_ui
mpz_swap
See: mpz_swap
mpz_tdiv_q
See: mpz_tdiv_q
mpz_tdiv_q_2exp
See: mpz_tdiv_q_2exp
mpz_tdiv_q_ui
See: mpz_tdiv_q_ui
mpz_tdiv_qr
See: mpz_tdiv_qr
mpz_tdiv_qr_ui
See: mpz_tdiv_qr_ui
mpz_tdiv_r
See: mpz_tdiv_r
mpz_tdiv_r_2exp
See: mpz_tdiv_r_2exp
mpz_tdiv_r_ui
See: mpz_tdiv_r_ui
mpz_tdiv_ui
See: mpz_tdiv_ui
mpz_tstbit
See: mpz_tstbit
mpz_ui_kronecker
See: mpz_ui_kronecker
mpz_ui_pow_ui
See: mpz_ui_pow_ui
mpz_ui_sub
See: mpz_ui_sub
mpz_urandomb
See: mpz_urandomb
mpz_urandomm
See: mpz_urandomm
mpz_xor
See: mpz_xor
printf
See: gmp_printf
randclear
See: gmp_randclear
randinit_default
See: gmp_randinit_default
randinit_lc_2exp
See: gmp_randinit_lc_2exp
randinit_lc_2exp_size
See: gmp_randinit_lc_2exp_size
randinit_mt
See: gmp_randinit_mt
randinit_set
See: gmp_randinit_set
randseed
See: gmp_randseed
randseed_ui
See: gmp_randseed_ui
scanf
See: gmp_scanf
set_memory_functions
See: mp_set_memory_functions
snprintf
See: gmp_snprintf
sprintf
See: gmp_sprintf
sscanf
See: gmp_sscanf
urandomb_ui
See: gmp_urandomb_ui
urandomm_ui
See: gmp_urandomm_ui

Type Aliases§

allocate_function
See: allocate_function
bitcnt_t
See: mp_bitcnt_t
exp_t
See: mp_exp_t
free_function
See: free_function
limb_t
See: mp_limb_t
mpf_ptr
See: mpf_ptr
mpf_srcptr
See: mpf_srcptr
mpq_ptr
See: mpq_ptr
mpq_srcptr
See: mpq_srcptr
mpz_ptr
See: mpz_ptr
mpz_srcptr
See: mpz_srcptr
randstate_ptr
See: gmp_randstate_ptr
randstate_srcptr
See: gmp_randstate_srcptr
reallocate_function
See: reallocate_function
size_t
See: mp_size_t