diff options
author | tege <tege@gmplib.org> | 1999-01-14 18:16:55 +0100 |
---|---|---|
committer | tege <tege@gmplib.org> | 1999-01-14 18:16:55 +0100 |
commit | 6ba95ebc0d150e3e52c39ec26d8c6d152066f57e (patch) | |
tree | bce5457dddb693585621bfef6dfb4205a3576adf /gmp.h | |
parent | 5fd5e943b6ca72e8b42697d61dd0986b52f62b5f (diff) | |
download | gmp-6ba95ebc0d150e3e52c39ec26d8c6d152066f57e.tar.gz |
* (mpz_root): Declare.
* (mpz_perfect_power_p): Declare.
* (mpz_remove): Declare.
* (mpz_bin_ui): Declare.
* (mpz_bin_uiui): Declare.
* (mpz_fib_ui): Declare.
* Get rid of GMP_SMALL stuff.
* (mpf_ceil, mpf_floor, mpf_trunc): Add declarations.
* (mpz_cmp_si): Cast argument before calling mpz_cmp_ui.
* (__GNU_MP_VERSION_SNAP): New #define.
(__GNU_MP_VERSION_MINOR): Now 1.
* Change return type of mpz_tdiv_qr_ui, mpz_tdiv_r_ui, mpz_tdiv_q_ui.
* (mpz_tdiv_ui): Declare.
* (mpz_cmp_abs): Declare.
* (mpz_cmp_abs_ui): Declare.
* (mpz_swap): Declare.
Diffstat (limited to 'gmp.h')
-rw-r--r-- | gmp.h | 573 |
1 files changed, 203 insertions, 370 deletions
@@ -80,19 +80,11 @@ typedef long int mp_exp_t; typedef struct { -#if ! GMP_SMALL int _mp_alloc; /* Number of *limbs* allocated and pointed to by the _mp_d field. */ int _mp_size; /* abs(_mp_size) is the number of limbs the last field points to. If _mp_size is negative this is a negative number. */ -#else - int _mp_alloc:16; /* Number of *limbs* allocated and pointed - to by the _mp_d field. */ - __gmp_signed int _mp_size:16; /* abs(_mp_size) is the number of limbs the - last field points to. If _mp_size is - negative this is a negative number. */ -#endif mp_limb_t *_mp_d; /* Pointer to the limbs. */ } __mpz_struct; #endif /* __GNU_MP__ */ @@ -111,7 +103,6 @@ typedef __mpq_struct mpq_t[1]; typedef struct { -#if ! GMP_SMALL int _mp_prec; /* Max precision, in number of `mp_limb_t's. Set by mpf_init and modified by mpf_set_prec. The area pointed to by the @@ -120,16 +111,6 @@ typedef struct last field points to. If _mp_size is negative this is a negative number. */ mp_exp_t _mp_exp; /* Exponent, in the base of `mp_limb_t'. */ -#else - int _mp_prec:16; /* Max precision, in number of `mp_limb_t's. - Set by mpf_init and modified by - mpf_set_prec. The area pointed to by the - _mp_d field contains `prec' + 1 limbs. */ - __gmp_signed int _mp_size:16; /* abs(_mp_size) is the number of limbs the - last field points to. If _mp_size is - negative this is a negative number. */ - __gmp_signed int _mp_exp:32; /* Exponent, in the base of `mp_limb_t'. */ -#endif mp_limb_t *_mp_d; /* Pointer to the limbs. */ } __mpf_struct; @@ -175,207 +156,115 @@ extern __gmp_const int mp_bits_per_limb; /**************** Integer (i.e. Z) routines. ****************/ -#if GMP_SMALL -#define _mpz_realloc __gmpzs_realloc -#define mpz_realloc __gmpzs_realloc -#define mpz_abs __gmpzs_abs -#define mpz_add __gmpzs_add -#define mpz_add_ui __gmpzs_add_ui -#define mpz_addmul_ui __gmpzs_addmul_ui -#define mpz_and __gmpzs_and -#define mpz_array_init __gmpzs_array_init -#define mpz_cdiv_q __gmpzs_cdiv_q -#define mpz_cdiv_q_ui __gmpzs_cdiv_q_ui -#define mpz_cdiv_qr __gmpzs_cdiv_qr -#define mpz_cdiv_qr_ui __gmpzs_cdiv_qr_ui -#define mpz_cdiv_r __gmpzs_cdiv_r -#define mpz_cdiv_r_ui __gmpzs_cdiv_r_ui -#define mpz_cdiv_ui __gmpzs_cdiv_ui -#define mpz_clear __gmpzs_clear -#define mpz_clrbit __gmpzs_clrbit -#define mpz_cmp __gmpzs_cmp -#define _mpz_cmp_si __gmpzs_cmp_si -#define _mpz_cmp_ui __gmpzs_cmp_ui -#define mpz_com __gmpzs_com -#define mpz_divexact __gmpzs_divexact -#define mpz_fac_ui __gmpzs_fac_ui -#define mpz_fdiv_q __gmpzs_fdiv_q -#define mpz_fdiv_q_2exp __gmpzs_fdiv_q_2exp -#define mpz_fdiv_q_ui __gmpzs_fdiv_q_ui -#define mpz_fdiv_qr __gmpzs_fdiv_qr -#define mpz_fdiv_qr_ui __gmpzs_fdiv_qr_ui -#define mpz_fdiv_r __gmpzs_fdiv_r -#define mpz_fdiv_r_2exp __gmpzs_fdiv_r_2exp -#define mpz_fdiv_r_ui __gmpzs_fdiv_r_ui -#define mpz_fdiv_ui __gmpzs_fdiv_ui -#define mpz_gcd __gmpzs_gcd -#define mpz_gcd_ui __gmpzs_gcd_ui -#define mpz_gcdext __gmpzs_gcdext -#define mpz_get_d __gmpzs_get_d -#define mpz_get_si __gmpzs_get_si -#define mpz_get_str __gmpzs_get_str -#define mpz_get_ui __gmpzs_get_ui -#define mpz_getlimbn __gmpzs_getlimbn -#define mpz_hamdist __gmpzs_hamdist -#define mpz_init __gmpzs_init -#define mpz_inp_binary __gmpzs_inp_binary -#define mpz_inp_raw __gmpzs_inp_raw -#define mpz_inp_str __gmpzs_inp_str -#define mpz_init_set __gmpzs_init_set -#define mpz_init_set_d __gmpzs_init_set_d -#define mpz_init_set_si __gmpzs_init_set_si -#define mpz_init_set_str __gmpzs_init_set_str -#define mpz_init_set_ui __gmpzs_init_set_ui -#define mpz_invert __gmpzs_invert -#define mpz_ior __gmpzs_ior -#define mpz_jacobi __gmpzs_jacobi -#define mpz_lcm __gmpzs_lcm -#define mpz_legendre __gmpzs_legendre -#define mpz_mod __gmpzs_mod -#define mpz_mul __gmpzs_mul -#define mpz_mul_2exp __gmpzs_mul_2exp -#define mpz_mul_ui __gmpzs_mul_ui -#define mpz_neg __gmpzs_neg -#define mpz_out_binary __gmpzs_out_binary -#define mpz_out_raw __gmpzs_out_raw -#define mpz_out_str __gmpzs_out_str -#define mpz_perfect_square_p __gmpzs_perfect_square_p -#define mpz_popcount __gmpzs_popcount -#define mpz_pow_ui __gmpzs_pow_ui -#define mpz_powm __gmpzs_powm -#define mpz_powm_ui __gmpzs_powm_ui -#define mpz_probab_prime_p __gmpzs_probab_prime_p -#define mpz_random __gmpzs_random -#define mpz_random2 __gmpzs_random2 -#define mpz_scan0 __gmpzs_scan0 -#define mpz_scan1 __gmpzs_scan1 -#define mpz_set __gmpzs_set -#define mpz_set_d __gmpzs_set_d -#define mpz_set_f __gmpzs_set_f -#define mpz_set_q __gmpzs_set_q -#define mpz_set_si __gmpzs_set_si -#define mpz_set_str __gmpzs_set_str -#define mpz_set_ui __gmpzs_set_ui -#define mpz_setbit __gmpzs_setbit -#define mpz_size __gmpzs_size -#define mpz_sizeinbase __gmpzs_sizeinbase -#define mpz_sqrt __gmpzs_sqrt -#define mpz_sqrtrem __gmpzs_sqrtrem -#define mpz_sub __gmpzs_sub -#define mpz_sub_ui __gmpzs_sub_ui -#define mpz_tdiv_q __gmpzs_tdiv_q -#define mpz_tdiv_q_2exp __gmpzs_tdiv_q_2exp -#define mpz_tdiv_q_ui __gmpzs_tdiv_q_ui -#define mpz_tdiv_qr __gmpzs_tdiv_qr -#define mpz_tdiv_qr_ui __gmpzs_tdiv_qr_ui -#define mpz_tdiv_r __gmpzs_tdiv_r -#define mpz_tdiv_r_2exp __gmpzs_tdiv_r_2exp -#define mpz_tdiv_r_ui __gmpzs_tdiv_r_ui -#define mpz_tstbit __gmpzs_tstbit -#define mpz_ui_pow_ui __gmpzs_ui_pow_ui -#define mpz_xor __gmpzs_xor -#define mpz_eor __gmpzs_xor -#else /* ! GMP_SMALL */ -#define _mpz_realloc __gmpzl_realloc -#define mpz_realloc __gmpzl_realloc -#define mpz_abs __gmpzl_abs -#define mpz_add __gmpzl_add -#define mpz_add_ui __gmpzl_add_ui -#define mpz_addmul_ui __gmpzl_addmul_ui -#define mpz_and __gmpzl_and -#define mpz_array_init __gmpzl_array_init -#define mpz_cdiv_q __gmpzl_cdiv_q -#define mpz_cdiv_q_ui __gmpzl_cdiv_q_ui -#define mpz_cdiv_qr __gmpzl_cdiv_qr -#define mpz_cdiv_qr_ui __gmpzl_cdiv_qr_ui -#define mpz_cdiv_r __gmpzl_cdiv_r -#define mpz_cdiv_r_ui __gmpzl_cdiv_r_ui -#define mpz_cdiv_ui __gmpzl_cdiv_ui -#define mpz_clear __gmpzl_clear -#define mpz_clrbit __gmpzl_clrbit -#define mpz_cmp __gmpzl_cmp -#define _mpz_cmp_si __gmpzl_cmp_si -#define _mpz_cmp_ui __gmpzl_cmp_ui -#define mpz_com __gmpzl_com -#define mpz_divexact __gmpzl_divexact -#define mpz_fac_ui __gmpzl_fac_ui -#define mpz_fdiv_q __gmpzl_fdiv_q -#define mpz_fdiv_q_2exp __gmpzl_fdiv_q_2exp -#define mpz_fdiv_q_ui __gmpzl_fdiv_q_ui -#define mpz_fdiv_qr __gmpzl_fdiv_qr -#define mpz_fdiv_qr_ui __gmpzl_fdiv_qr_ui -#define mpz_fdiv_r __gmpzl_fdiv_r -#define mpz_fdiv_r_2exp __gmpzl_fdiv_r_2exp -#define mpz_fdiv_r_ui __gmpzl_fdiv_r_ui -#define mpz_fdiv_ui __gmpzl_fdiv_ui -#define mpz_gcd __gmpzl_gcd -#define mpz_gcd_ui __gmpzl_gcd_ui -#define mpz_gcdext __gmpzl_gcdext -#define mpz_get_d __gmpzl_get_d -#define mpz_get_si __gmpzl_get_si -#define mpz_get_str __gmpzl_get_str -#define mpz_get_ui __gmpzl_get_ui -#define mpz_getlimbn __gmpzl_getlimbn -#define mpz_hamdist __gmpzl_hamdist -#define mpz_init __gmpzl_init -#define mpz_inp_binary __gmpzl_inp_binary -#define mpz_inp_raw __gmpzl_inp_raw -#define mpz_inp_str __gmpzl_inp_str -#define mpz_init_set __gmpzl_init_set -#define mpz_init_set_d __gmpzl_init_set_d -#define mpz_init_set_si __gmpzl_init_set_si -#define mpz_init_set_str __gmpzl_init_set_str -#define mpz_init_set_ui __gmpzl_init_set_ui -#define mpz_invert __gmpzl_invert -#define mpz_ior __gmpzl_ior -#define mpz_jacobi __gmpzl_jacobi -#define mpz_lcm __gmpzl_lcm -#define mpz_legendre __gmpzl_legendre -#define mpz_mod __gmpzl_mod -#define mpz_mul __gmpzl_mul -#define mpz_mul_2exp __gmpzl_mul_2exp -#define mpz_mul_ui __gmpzl_mul_ui -#define mpz_neg __gmpzl_neg -#define mpz_out_binary __gmpzl_out_binary -#define mpz_out_raw __gmpzl_out_raw -#define mpz_out_str __gmpzl_out_str -#define mpz_perfect_square_p __gmpzl_perfect_square_p -#define mpz_popcount __gmpzl_popcount -#define mpz_pow_ui __gmpzl_pow_ui -#define mpz_powm __gmpzl_powm -#define mpz_powm_ui __gmpzl_powm_ui -#define mpz_probab_prime_p __gmpzl_probab_prime_p -#define mpz_random __gmpzl_random -#define mpz_random2 __gmpzl_random2 -#define mpz_scan0 __gmpzl_scan0 -#define mpz_scan1 __gmpzl_scan1 -#define mpz_set __gmpzl_set -#define mpz_set_d __gmpzl_set_d -#define mpz_set_f __gmpzl_set_f -#define mpz_set_q __gmpzl_set_q -#define mpz_set_si __gmpzl_set_si -#define mpz_set_str __gmpzl_set_str -#define mpz_set_ui __gmpzl_set_ui -#define mpz_setbit __gmpzl_setbit -#define mpz_size __gmpzl_size -#define mpz_sizeinbase __gmpzl_sizeinbase -#define mpz_sqrt __gmpzl_sqrt -#define mpz_sqrtrem __gmpzl_sqrtrem -#define mpz_sub __gmpzl_sub -#define mpz_sub_ui __gmpzl_sub_ui -#define mpz_tdiv_q __gmpzl_tdiv_q -#define mpz_tdiv_q_2exp __gmpzl_tdiv_q_2exp -#define mpz_tdiv_q_ui __gmpzl_tdiv_q_ui -#define mpz_tdiv_qr __gmpzl_tdiv_qr -#define mpz_tdiv_qr_ui __gmpzl_tdiv_qr_ui -#define mpz_tdiv_r __gmpzl_tdiv_r -#define mpz_tdiv_r_2exp __gmpzl_tdiv_r_2exp -#define mpz_tdiv_r_ui __gmpzl_tdiv_r_ui -#define mpz_tstbit __gmpzl_tstbit -#define mpz_ui_pow_ui __gmpzl_ui_pow_ui -#define mpz_xor __gmpzl_xor -#define mpz_eor __gmpzl_xor -#endif /* GMP_SMALL */ +#define _mpz_realloc __gmpz_realloc +#define mpz_realloc __gmpz_realloc +#define mpz_abs __gmpz_abs +#define mpz_add __gmpz_add +#define mpz_add_ui __gmpz_add_ui +#define mpz_addmul_ui __gmpz_addmul_ui +#define mpz_and __gmpz_and +#define mpz_array_init __gmpz_array_init +#define mpz_bin_ui __gmpz_bin_ui +#define mpz_bin_uiui __gmpz_bin_uiui +#define mpz_cdiv_q __gmpz_cdiv_q +#define mpz_cdiv_q_ui __gmpz_cdiv_q_ui +#define mpz_cdiv_qr __gmpz_cdiv_qr +#define mpz_cdiv_qr_ui __gmpz_cdiv_qr_ui +#define mpz_cdiv_r __gmpz_cdiv_r +#define mpz_cdiv_r_ui __gmpz_cdiv_r_ui +#define mpz_cdiv_ui __gmpz_cdiv_ui +#define mpz_clear __gmpz_clear +#define mpz_clrbit __gmpz_clrbit +#define mpz_cmp __gmpz_cmp +#define _mpz_cmp_si __gmpz_cmp_si +#define _mpz_cmp_ui __gmpz_cmp_ui +#define mpz_cmp_abs __gmpz_cmp_abs +#define mpz_cmp_abs_ui __gmpz_cmp_abs_ui +#define mpz_com __gmpz_com +#define mpz_divexact __gmpz_divexact +#define mpz_fac_ui __gmpz_fac_ui +#define mpz_fdiv_q __gmpz_fdiv_q +#define mpz_fdiv_q_2exp __gmpz_fdiv_q_2exp +#define mpz_fdiv_q_ui __gmpz_fdiv_q_ui +#define mpz_fdiv_qr __gmpz_fdiv_qr +#define mpz_fdiv_qr_ui __gmpz_fdiv_qr_ui +#define mpz_fdiv_r __gmpz_fdiv_r +#define mpz_fdiv_r_2exp __gmpz_fdiv_r_2exp +#define mpz_fdiv_r_ui __gmpz_fdiv_r_ui +#define mpz_fdiv_ui __gmpz_fdiv_ui +#define mpz_fib_ui __gmpz_fib_ui +#define mpz_gcd __gmpz_gcd +#define mpz_gcd_ui __gmpz_gcd_ui +#define mpz_gcdext __gmpz_gcdext +#define mpz_get_d __gmpz_get_d +#define mpz_get_si __gmpz_get_si +#define mpz_get_str __gmpz_get_str +#define mpz_get_ui __gmpz_get_ui +#define mpz_getlimbn __gmpz_getlimbn +#define mpz_hamdist __gmpz_hamdist +#define mpz_init __gmpz_init +#define mpz_inp_binary __gmpz_inp_binary +#define mpz_inp_raw __gmpz_inp_raw +#define mpz_inp_str __gmpz_inp_str +#define mpz_init_set __gmpz_init_set +#define mpz_init_set_d __gmpz_init_set_d +#define mpz_init_set_si __gmpz_init_set_si +#define mpz_init_set_str __gmpz_init_set_str +#define mpz_init_set_ui __gmpz_init_set_ui +#define mpz_invert __gmpz_invert +#define mpz_ior __gmpz_ior +#define mpz_jacobi __gmpz_jacobi +#define mpz_lcm __gmpz_lcm +#define mpz_legendre __gmpz_legendre +#define mpz_mod __gmpz_mod +#define mpz_mul __gmpz_mul +#define mpz_mul_2exp __gmpz_mul_2exp +#define mpz_mul_ui __gmpz_mul_ui +#define mpz_neg __gmpz_neg +#define mpz_out_binary __gmpz_out_binary +#define mpz_out_raw __gmpz_out_raw +#define mpz_out_str __gmpz_out_str +#define mpz_perfect_power_p __gmpz_perfect_power_p +#define mpz_perfect_square_p __gmpz_perfect_square_p +#define mpz_popcount __gmpz_popcount +#define mpz_pow_ui __gmpz_pow_ui +#define mpz_powm __gmpz_powm +#define mpz_powm_ui __gmpz_powm_ui +#define mpz_probab_prime_p __gmpz_probab_prime_p +#define mpz_random __gmpz_random +#define mpz_random2 __gmpz_random2 +#define mpz_remove __gmpz_remove +#define mpz_root __gmpz_root +#define mpz_scan0 __gmpz_scan0 +#define mpz_scan1 __gmpz_scan1 +#define mpz_set __gmpz_set +#define mpz_set_d __gmpz_set_d +#define mpz_set_f __gmpz_set_f +#define mpz_set_q __gmpz_set_q +#define mpz_set_si __gmpz_set_si +#define mpz_set_str __gmpz_set_str +#define mpz_set_ui __gmpz_set_ui +#define mpz_setbit __gmpz_setbit +#define mpz_size __gmpz_size +#define mpz_sizeinbase __gmpz_sizeinbase +#define mpz_sqrt __gmpz_sqrt +#define mpz_sqrtrem __gmpz_sqrtrem +#define mpz_sub __gmpz_sub +#define mpz_sub_ui __gmpz_sub_ui +#define mpz_swap __gmpz_swap +#define mpz_tdiv_ui __gmpz_tdiv_ui +#define mpz_tdiv_q __gmpz_tdiv_q +#define mpz_tdiv_q_2exp __gmpz_tdiv_q_2exp +#define mpz_tdiv_q_ui __gmpz_tdiv_q_ui +#define mpz_tdiv_qr __gmpz_tdiv_qr +#define mpz_tdiv_qr_ui __gmpz_tdiv_qr_ui +#define mpz_tdiv_r __gmpz_tdiv_r +#define mpz_tdiv_r_2exp __gmpz_tdiv_r_2exp +#define mpz_tdiv_r_ui __gmpz_tdiv_r_ui +#define mpz_tstbit __gmpz_tstbit +#define mpz_ui_pow_ui __gmpz_ui_pow_ui +#define mpz_xor __gmpz_xor +#define mpz_eor __gmpz_xor #if defined (__cplusplus) extern "C" { @@ -388,6 +277,8 @@ void mpz_add_ui _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); void mpz_addmul_ui _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); void mpz_and _PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); void mpz_array_init _PROTO ((mpz_ptr, mp_size_t, mp_size_t)); +void mpz_bin_ui _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); +void mpz_bin_uiui _PROTO ((mpz_ptr, unsigned long int, unsigned long int)); void mpz_cdiv_q _PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); unsigned long int mpz_cdiv_q_ui _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); void mpz_cdiv_qr _PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr)); @@ -400,6 +291,8 @@ void mpz_clrbit _PROTO ((mpz_ptr, unsigned long int)); int mpz_cmp _PROTO ((mpz_srcptr, mpz_srcptr)); int _mpz_cmp_si _PROTO ((mpz_srcptr, signed long int)); int _mpz_cmp_ui _PROTO ((mpz_srcptr, unsigned long int)); +int mpz_cmp_abs _PROTO ((mpz_srcptr, mpz_srcptr)); +int mpz_cmp_abs_ui _PROTO ((mpz_srcptr, unsigned long int)); void mpz_com _PROTO ((mpz_ptr, mpz_srcptr)); void mpz_divexact _PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); void mpz_fac_ui _PROTO ((mpz_ptr, unsigned long int)); @@ -412,6 +305,7 @@ void mpz_fdiv_r _PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); void mpz_fdiv_r_2exp _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); unsigned long int mpz_fdiv_r_ui _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); unsigned long int mpz_fdiv_ui _PROTO ((mpz_srcptr, unsigned long int)); +void mpz_fib_ui _PROTO ((mpz_ptr, unsigned long int)); void mpz_gcd _PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); unsigned long int mpz_gcd_ui _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); void mpz_gcdext _PROTO ((mpz_ptr, mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr)); @@ -447,6 +341,7 @@ size_t mpz_out_binary _PROTO ((FILE *, mpz_srcptr)); size_t mpz_out_raw _PROTO ((FILE *, mpz_srcptr)); size_t mpz_out_str _PROTO ((FILE *, int, mpz_srcptr)); #endif +int mpz_perfect_power_p _PROTO ((mpz_srcptr)); int mpz_perfect_square_p _PROTO ((mpz_srcptr)); unsigned long int mpz_popcount _PROTO ((mpz_srcptr)); void mpz_pow_ui _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); @@ -455,6 +350,8 @@ void mpz_powm_ui _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int, mpz_srcptr)); int mpz_probab_prime_p _PROTO ((mpz_srcptr, int)); void mpz_random _PROTO ((mpz_ptr, mp_size_t)); void mpz_random2 _PROTO ((mpz_ptr, mp_size_t)); +unsigned long int mpz_remove (mpz_ptr, mpz_srcptr, mpz_srcptr); +int mpz_root (mpz_ptr, mpz_srcptr, unsigned long int); unsigned long int mpz_scan0 _PROTO ((mpz_srcptr, unsigned long int)); unsigned long int mpz_scan1 _PROTO ((mpz_srcptr, unsigned long int)); void mpz_set _PROTO ((mpz_ptr, mpz_srcptr)); @@ -471,14 +368,16 @@ void mpz_sqrt _PROTO ((mpz_ptr, mpz_srcptr)); void mpz_sqrtrem _PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr)); void mpz_sub _PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); void mpz_sub_ui _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); +void mpz_swap _PROTO ((mpz_ptr, mpz_ptr)); void mpz_tdiv_q _PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); void mpz_tdiv_q_2exp _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); -void mpz_tdiv_q_ui _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); +unsigned long int mpz_tdiv_ui _PROTO ((mpz_srcptr, unsigned long int)); +unsigned long int mpz_tdiv_q_ui _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); void mpz_tdiv_qr _PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr)); -void mpz_tdiv_qr_ui _PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int)); +unsigned long int mpz_tdiv_qr_ui _PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int)); void mpz_tdiv_r _PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); void mpz_tdiv_r_2exp _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); -void mpz_tdiv_r_ui _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); +unsigned long int mpz_tdiv_r_ui _PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); int mpz_tstbit _PROTO ((mpz_srcptr, unsigned long int)); void mpz_ui_pow_ui _PROTO ((mpz_ptr, unsigned long int, unsigned long int)); void mpz_xor _PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); @@ -488,51 +387,27 @@ void mpz_xor _PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); /**************** Rational (i.e. Q) routines. ****************/ -#if GMP_SMALL -#define mpq_init __gmpqs_init -#define mpq_clear __gmpqs_clear -#define mpq_set __gmpqs_set -#define mpq_set_ui __gmpqs_set_ui -#define mpq_set_si __gmpqs_set_si -#define mpq_set_z __gmpqs_set_z -#define mpq_add __gmpqs_add -#define mpq_sub __gmpqs_sub -#define mpq_mul __gmpqs_mul -#define mpq_div __gmpqs_div -#define mpq_neg __gmpqs_neg -#define mpq_cmp __gmpqs_cmp -#define _mpq_cmp_ui __gmpqs_cmp_ui -#define mpq_equal __gmpqs_equal -#define mpq_inv __gmpqs_inv -#define mpq_set_num __gmpqs_set_num -#define mpq_set_den __gmpqs_set_den -#define mpq_get_num __gmpqs_get_num -#define mpq_get_den __gmpqs_get_den -#define mpq_get_d __gmpqs_get_d -#define mpq_canonicalize __gmpqs_canonicalize -#else /* ! GMP_SMALL */ -#define mpq_init __gmpql_init -#define mpq_clear __gmpql_clear -#define mpq_set __gmpql_set -#define mpq_set_ui __gmpql_set_ui -#define mpq_set_si __gmpql_set_si -#define mpq_set_z __gmpql_set_z -#define mpq_add __gmpql_add -#define mpq_sub __gmpql_sub -#define mpq_mul __gmpql_mul -#define mpq_div __gmpql_div -#define mpq_neg __gmpql_neg -#define mpq_cmp __gmpql_cmp -#define _mpq_cmp_ui __gmpql_cmp_ui -#define mpq_equal __gmpql_equal -#define mpq_inv __gmpql_inv -#define mpq_set_num __gmpql_set_num -#define mpq_set_den __gmpql_set_den -#define mpq_get_num __gmpql_get_num -#define mpq_get_den __gmpql_get_den -#define mpq_get_d __gmpql_get_d -#define mpq_canonicalize __gmpql_canonicalize -#endif /* GMP_SMALL */ +#define mpq_init __gmpq_init +#define mpq_clear __gmpq_clear +#define mpq_set __gmpq_set +#define mpq_set_ui __gmpq_set_ui +#define mpq_set_si __gmpq_set_si +#define mpq_set_z __gmpq_set_z +#define mpq_add __gmpq_add +#define mpq_sub __gmpq_sub +#define mpq_mul __gmpq_mul +#define mpq_div __gmpq_div +#define mpq_neg __gmpq_neg +#define mpq_cmp __gmpq_cmp +#define _mpq_cmp_ui __gmpq_cmp_ui +#define mpq_equal __gmpq_equal +#define mpq_inv __gmpq_inv +#define mpq_set_num __gmpq_set_num +#define mpq_set_den __gmpq_set_den +#define mpq_get_num __gmpq_get_num +#define mpq_get_den __gmpq_get_den +#define mpq_get_d __gmpq_get_d +#define mpq_canonicalize __gmpq_canonicalize #if defined (__cplusplus) extern "C" { @@ -564,103 +439,56 @@ void mpq_canonicalize _PROTO ((mpq_ptr)); /**************** Float (i.e. F) routines. ****************/ -#if GMP_SMALL -#define mpf_abs __gmpfs_abs -#define mpf_add __gmpfs_add -#define mpf_add_ui __gmpfs_add_ui -#define mpf_clear __gmpfs_clear -#define mpf_cmp __gmpfs_cmp -#define mpf_cmp_si __gmpfs_cmp_si -#define mpf_cmp_ui __gmpfs_cmp_ui -#define mpf_div __gmpfs_div -#define mpf_div_2exp __gmpfs_div_2exp -#define mpf_div_ui __gmpfs_div_ui -#define mpf_dump __gmpfs_dump -#define mpf_eq __gmpfs_eq -#define mpf_get_d __gmpfs_get_d -#define mpf_get_prec __gmpfs_get_prec -#define mpf_get_str __gmpfs_get_str -#define mpf_init __gmpfs_init -#define mpf_init2 __gmpfs_init2 -#define mpf_inp_str __gmpfs_inp_str -#define mpf_init_set __gmpfs_init_set -#define mpf_init_set_d __gmpfs_init_set_d -#define mpf_init_set_si __gmpfs_init_set_si -#define mpf_init_set_str __gmpfs_init_set_str -#define mpf_init_set_ui __gmpfs_init_set_ui -#define mpf_mul __gmpfs_mul -#define mpf_mul_2exp __gmpfs_mul_2exp -#define mpf_mul_ui __gmpfs_mul_ui -#define mpf_neg __gmpfs_neg -#define mpf_out_str __gmpfs_out_str -#define mpf_random2 __gmpfs_random2 -#define mpf_reldiff __gmpfs_reldiff -#define mpf_set __gmpfs_set -#define mpf_set_d __gmpfs_set_d -#define mpf_set_default_prec __gmpfs_set_default_prec -#define mpf_set_prec __gmpfs_set_prec -#define mpf_set_prec_raw __gmpfs_set_prec_raw -#define mpf_set_q __gmpfs_set_q -#define mpf_set_si __gmpfs_set_si -#define mpf_set_str __gmpfs_set_str -#define mpf_set_ui __gmpfs_set_ui -#define mpf_set_z __gmpfs_set_z -#define mpf_size __gmpfs_size -#define mpf_sqrt __gmpfs_sqrt -#define mpf_sqrt_ui __gmpfs_sqrt_ui -#define mpf_sub __gmpfs_sub -#define mpf_sub_ui __gmpfs_sub_ui -#define mpf_ui_div __gmpfs_ui_div -#define mpf_ui_sub __gmpfs_ui_sub -#else /* ! GMP_SMALL */ -#define mpf_abs __gmpfl_abs -#define mpf_add __gmpfl_add -#define mpf_add_ui __gmpfl_add_ui -#define mpf_clear __gmpfl_clear -#define mpf_cmp __gmpfl_cmp -#define mpf_cmp_si __gmpfl_cmp_si -#define mpf_cmp_ui __gmpfl_cmp_ui -#define mpf_div __gmpfl_div -#define mpf_div_2exp __gmpfl_div_2exp -#define mpf_div_ui __gmpfl_div_ui -#define mpf_dump __gmpfl_dump -#define mpf_eq __gmpfl_eq -#define mpf_get_d __gmpfl_get_d -#define mpf_get_prec __gmpfl_get_prec -#define mpf_get_str __gmpfl_get_str -#define mpf_init __gmpfl_init -#define mpf_init2 __gmpfl_init2 -#define mpf_inp_str __gmpfl_inp_str -#define mpf_init_set __gmpfl_init_set -#define mpf_init_set_d __gmpfl_init_set_d -#define mpf_init_set_si __gmpfl_init_set_si -#define mpf_init_set_str __gmpfl_init_set_str -#define mpf_init_set_ui __gmpfl_init_set_ui -#define mpf_mul __gmpfl_mul -#define mpf_mul_2exp __gmpfl_mul_2exp -#define mpf_mul_ui __gmpfl_mul_ui -#define mpf_neg __gmpfl_neg -#define mpf_out_str __gmpfl_out_str -#define mpf_random2 __gmpfl_random2 -#define mpf_reldiff __gmpfl_reldiff -#define mpf_set __gmpfl_set -#define mpf_set_d __gmpfl_set_d -#define mpf_set_default_prec __gmpfl_set_default_prec -#define mpf_set_prec __gmpfl_set_prec -#define mpf_set_prec_raw __gmpfl_set_prec_raw -#define mpf_set_q __gmpfl_set_q -#define mpf_set_si __gmpfl_set_si -#define mpf_set_str __gmpfl_set_str -#define mpf_set_ui __gmpfl_set_ui -#define mpf_set_z __gmpfl_set_z -#define mpf_size __gmpfl_size -#define mpf_sqrt __gmpfl_sqrt -#define mpf_sqrt_ui __gmpfl_sqrt_ui -#define mpf_sub __gmpfl_sub -#define mpf_sub_ui __gmpfl_sub_ui -#define mpf_ui_div __gmpfl_ui_div -#define mpf_ui_sub __gmpfl_ui_sub -#endif /* GMP_SMALL */ +#define mpf_abs __gmpf_abs +#define mpf_add __gmpf_add +#define mpf_add_ui __gmpf_add_ui +#define mpf_ceil __gmpf_ceil +#define mpf_clear __gmpf_clear +#define mpf_cmp __gmpf_cmp +#define mpf_cmp_si __gmpf_cmp_si +#define mpf_cmp_ui __gmpf_cmp_ui +#define mpf_div __gmpf_div +#define mpf_div_2exp __gmpf_div_2exp +#define mpf_div_ui __gmpf_div_ui +#define mpf_dump __gmpf_dump +#define mpf_floor __gmpf_floor +#define mpf_eq __gmpf_eq +#define mpf_get_d __gmpf_get_d +#define mpf_get_prec __gmpf_get_prec +#define mpf_get_str __gmpf_get_str +#define mpf_init __gmpf_init +#define mpf_init2 __gmpf_init2 +#define mpf_inp_str __gmpf_inp_str +#define mpf_init_set __gmpf_init_set +#define mpf_init_set_d __gmpf_init_set_d +#define mpf_init_set_si __gmpf_init_set_si +#define mpf_init_set_str __gmpf_init_set_str +#define mpf_init_set_ui __gmpf_init_set_ui +#define mpf_mul __gmpf_mul +#define mpf_mul_2exp __gmpf_mul_2exp +#define mpf_mul_ui __gmpf_mul_ui +#define mpf_neg __gmpf_neg +#define mpf_out_str __gmpf_out_str +#define mpf_random2 __gmpf_random2 +#define mpf_reldiff __gmpf_reldiff +#define mpf_set __gmpf_set +#define mpf_set_d __gmpf_set_d +#define mpf_set_default_prec __gmpf_set_default_prec +#define mpf_set_prec __gmpf_set_prec +#define mpf_set_prec_raw __gmpf_set_prec_raw +#define mpf_set_q __gmpf_set_q +#define mpf_set_si __gmpf_set_si +#define mpf_set_str __gmpf_set_str +#define mpf_set_ui __gmpf_set_ui +#define mpf_set_z __gmpf_set_z +#define mpf_size __gmpf_size +#define mpf_sqrt __gmpf_sqrt +#define mpf_sqrt_ui __gmpf_sqrt_ui +#define mpf_sub __gmpf_sub +#define mpf_sub_ui __gmpf_sub_ui +#define mpf_trunc __gmpf_trunc +#define mpf_ui_div __gmpf_ui_div +#define mpf_ui_sub __gmpf_ui_sub #if defined (__cplusplus) extern "C" { @@ -668,6 +496,7 @@ extern "C" { void mpf_abs _PROTO ((mpf_ptr, mpf_srcptr)); void mpf_add _PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr)); void mpf_add_ui _PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); +void mpf_ceil _PROTO ((mpf_ptr, mpf_srcptr)); void mpf_clear _PROTO ((mpf_ptr)); int mpf_cmp _PROTO ((mpf_srcptr, mpf_srcptr)); int mpf_cmp_si _PROTO ((mpf_srcptr, signed long int)); @@ -677,6 +506,7 @@ void mpf_div_2exp _PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); void mpf_div_ui _PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); void mpf_dump _PROTO ((mpf_srcptr)); int mpf_eq _PROTO ((mpf_srcptr, mpf_srcptr, unsigned long int)); +void mpf_floor _PROTO ((mpf_ptr, mpf_srcptr)); double mpf_get_d _PROTO ((mpf_srcptr)); unsigned long int mpf_get_prec _PROTO ((mpf_srcptr)); char *mpf_get_str _PROTO ((char *, mp_exp_t *, int, size_t, mpf_srcptr)); @@ -714,6 +544,7 @@ void mpf_sqrt _PROTO ((mpf_ptr, mpf_srcptr)); void mpf_sqrt_ui _PROTO ((mpf_ptr, unsigned long int)); void mpf_sub _PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr)); void mpf_sub_ui _PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); +void mpf_trunc _PROTO ((mpf_ptr, mpf_srcptr)); void mpf_ui_div _PROTO ((mpf_ptr, unsigned long int, mpf_srcptr)); void mpf_ui_sub _PROTO ((mpf_ptr, unsigned long int, mpf_srcptr)); #if defined (__cplusplus) @@ -986,10 +817,11 @@ mpn_divrem (_gmp_qp, _gmp_qn, _gmp_np, _gmp_nn, _gmp_dp, _gmp_dn) #define mpz_cmp_ui(Z,UI) \ (__builtin_constant_p (UI) && (UI) == 0 \ ? mpz_sgn (Z) : _mpz_cmp_ui (Z,UI)) -#define mpz_cmp_si(Z,UI) \ - (__builtin_constant_p (UI) && (UI) == 0 ? mpz_sgn (Z) \ - : __builtin_constant_p (UI) && (UI) > 0 ? _mpz_cmp_ui (Z,UI) \ - : _mpz_cmp_si (Z,UI)) +#define mpz_cmp_si(Z,SI) \ + (__builtin_constant_p (SI) && (SI) == 0 ? mpz_sgn (Z) \ + : __builtin_constant_p (SI) && (SI) > 0 \ + ? _mpz_cmp_ui (Z, (unsigned long int) SI) \ + : _mpz_cmp_si (Z,SI)) #define mpq_cmp_ui(Q,NUI,DUI) \ (__builtin_constant_p (NUI) && (NUI) == 0 \ ? mpq_sgn (Q) : _mpq_cmp_ui (Q,NUI,DUI)) @@ -1028,6 +860,7 @@ mpn_divrem (_gmp_qp, _gmp_qn, _gmp_np, _gmp_nn, _gmp_dp, _gmp_dn) #define mpz_mod_2exp mpz_fdiv_r_2exp #define __GNU_MP_VERSION 2 -#define __GNU_MP_VERSION_MINOR 0 +#define __GNU_MP_VERSION_MINOR 1 +#define __GNU_MP_VERSION_PATCHLEVEL (-91) #define __GMP_H__ #endif /* __GMP_H__ */ |