/* Pfe bindings: libgmp-pfe.c Generated: 03-Feb-2021 09:40:16 Generator: 0.5.1 */ /* License: LGPL */ #define _P4_SOURCE 1 #include #include #include // either of these... // #include //...works with OS X #include #define slong long #define ulong unsigned long FCode (p4_mp_bits_per_limb) { *--SP = (p4cell) __gmp_bits_per_limb; } FCode (p4_gmp_version) { *--SP = (p4ucell) __gmp_version; } FCode (p4_mpz_init) { mpz_init ((mpz_ptr)SP[0]); SP += 1; } FCode (p4_mpz_init2) { mpz_init2 ((mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 2; } FCode (p4_mpz_clear) { mpz_clear ((mpz_ptr)SP[0]); SP += 1; } FCode (p4_mpz_realloc2) { mpz_realloc2 ((mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 2; } FCode (p4_mpz_set) { mpz_set ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; } FCode (p4_mpz_set_ui) { mpz_set_ui ((mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; } FCode (p4_mpz_set_si) { mpz_set_si ((mpz_ptr)SP[1], (slong)SP[0]); SP += 2; } FCode (p4_mpz_set_d) { mpz_set_d ((mpz_ptr)SP[0], (double)FP[0]); SP += 1; FP += 1; } FCode (p4_mpz_set_q) { mpz_set_q ((mpz_ptr)SP[1], (mpq_ptr)SP[0]); SP += 2; } FCode (p4_mpz_set_f) { mpz_set_f ((mpz_ptr)SP[1], (mpf_ptr)SP[0]); SP += 2; } FCode (p4_mpz_set_str) { p4cell p4ret = (p4cell) mpz_set_str ((mpz_ptr)SP[2], (char *)SP[1], (int)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_swap) { mpz_swap ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; } FCode (p4_mpz_init_set) { mpz_init_set ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; } FCode (p4_mpz_init_set_ui) { mpz_init_set_ui ((mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; } FCode (p4_mpz_init_set_si) { mpz_init_set_si ((mpz_ptr)SP[1], (slong)SP[0]); SP += 2; } FCode (p4_mpz_init_set_d) { mpz_init_set_d ((mpz_ptr)SP[0], (double)FP[0]); SP += 1; FP += 1; } FCode (p4_mpz_init_set_str) { p4cell p4ret = (p4cell) mpz_init_set_str ((mpz_ptr)SP[2], (char *)SP[1], (int)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_get_ui) { p4cell p4ret = (p4cell) mpz_get_ui ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_get_si) { p4cell p4ret = (p4cell) mpz_get_si ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_get_d) { double p4ret = (double) mpz_get_d ((mpz_ptr)SP[0]); SP += 1; *--FP = p4ret; } FCode (p4_mpz_get_d_2exp) { double p4ret = (double) mpz_get_d_2exp ((slong *)SP[1], (mpz_ptr)SP[0]); SP += 2; *--FP = p4ret; } FCode (p4_mpz_get_str) { p4cell p4ret = (p4cell) mpz_get_str ((char *)SP[2], (int)SP[1], (mpz_ptr)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_add) { mpz_add ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_add_ui) { mpz_add_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpz_sub) { mpz_sub ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_sub_ui) { mpz_sub_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpz_ui_sub) { mpz_ui_sub ((mpz_ptr)SP[2], (ulong)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_mul) { mpz_mul ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_mul_si) { mpz_mul_si ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (int)SP[0]); SP += 3; } FCode (p4_mpz_mul_ui) { mpz_mul_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpz_addmul) { mpz_addmul ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_addmul_ui) { mpz_addmul_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpz_submul) { mpz_submul ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_submul_ui) { mpz_submul_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpz_mul_2exp) { mpz_mul_2exp ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpz_neg) { mpz_neg ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; } FCode (p4_mpz_abs) { mpz_abs ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; } FCode (p4_mpz_cdiv_q) { mpz_cdiv_q ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_cdiv_r) { mpz_cdiv_r ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_cdiv_qr) { mpz_cdiv_qr ((mpz_ptr)SP[3], (mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 4; } FCode (p4_mpz_cdiv_q_ui) { p4ucell p4ret = (p4ucell) mpz_cdiv_q_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_cdiv_r_ui) { p4ucell p4ret = (p4ucell) mpz_cdiv_r_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_cdiv_qr_ui) { p4ucell p4ret = (p4ucell) mpz_cdiv_qr_ui ((mpz_ptr)SP[3], (mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 3; *SP = p4ret; } FCode (p4_mpz_cdiv_ui) { p4ucell p4ret = (p4ucell) mpz_cdiv_ui ((mpz_ptr)SP[1], (ulong)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_cdiv_q_2exp) { mpz_cdiv_q_2exp ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpz_cdiv_r_2exp) { mpz_cdiv_r_2exp ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpz_fdiv_q) { mpz_fdiv_q ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_fdiv_r) { mpz_fdiv_r ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_fdiv_qr) { mpz_fdiv_qr ((mpz_ptr)SP[3], (mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 4; } FCode (p4_mpz_fdiv_q_ui) { p4ucell p4ret = (p4ucell) mpz_fdiv_q_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_fdiv_r_ui) { p4ucell p4ret = (p4ucell) mpz_fdiv_r_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_fdiv_qr_ui) { p4ucell p4ret = (p4ucell) mpz_fdiv_qr_ui ((mpz_ptr)SP[3], (mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 3; *SP = p4ret; } FCode (p4_mpz_fdiv_ui) { p4ucell p4ret = (p4ucell) mpz_fdiv_ui ((mpz_ptr)SP[1], (ulong)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_fdiv_q_2exp) { mpz_fdiv_q_2exp ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpz_fdiv_r_2exp) { mpz_fdiv_r_2exp ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpz_tdiv_q) { mpz_tdiv_q ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_tdiv_r) { mpz_tdiv_r ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_tdiv_qr) { mpz_tdiv_qr ((mpz_ptr)SP[3], (mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 4; } FCode (p4_mpz_tdiv_q_ui) { p4ucell p4ret = (p4ucell) mpz_tdiv_q_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_tdiv_r_ui) { p4ucell p4ret = (p4ucell) mpz_tdiv_r_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_tdiv_qr_ui) { p4ucell p4ret = (p4ucell) mpz_tdiv_qr_ui ((mpz_ptr)SP[3], (mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 3; *SP = p4ret; } FCode (p4_mpz_tdiv_ui) { p4ucell p4ret = (p4ucell) mpz_tdiv_ui ((mpz_ptr)SP[1], (ulong)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_tdiv_q_2exp) { mpz_tdiv_q_2exp ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpz_tdiv_r_2exp) { mpz_tdiv_r_2exp ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpz_mod) { mpz_mod ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_mod_ui) { p4ucell p4ret = (p4ucell) mpz_fdiv_r_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_divexact) { mpz_divexact ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_divexact_ui) { mpz_divexact_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (int)SP[0]); SP += 3; } FCode (p4_mpz_divisible_p) { p4cell p4ret = (p4cell) mpz_divisible_p ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_divisible_ui_p) { p4cell p4ret = (p4cell) mpz_divisible_ui_p ((mpz_ptr)SP[1], (ulong)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_divisible_2exp_p) { p4cell p4ret = (p4cell) mpz_divisible_2exp_p ((mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_congruent_p) { p4cell p4ret = (p4cell) mpz_congruent_p ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_congruent_ui_p) { p4cell p4ret = (p4cell) mpz_congruent_ui_p ((mpz_ptr)SP[2], (ulong)SP[1], (ulong)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_congruent_2exp_p) { p4cell p4ret = (p4cell) mpz_congruent_2exp_p ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_powm) { mpz_powm ((mpz_ptr)SP[3], (mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 4; } FCode (p4_mpz_powm_ui) { mpz_powm_ui ((mpz_ptr)SP[3], (mpz_ptr)SP[2], (ulong)SP[1], (mpz_ptr)SP[0]); SP += 4; } FCode (p4_mpz_powm_sec) { mpz_powm_sec ((mpz_ptr)SP[3], (mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 4; } FCode (p4_mpz_pow_ui) { mpz_pow_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpz_ui_pow_ui) { mpz_ui_pow_ui ((mpz_ptr)SP[2], (ulong)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpz_root) { p4cell p4ret = (p4cell) mpz_root ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_rootrem) { mpz_rootrem ((mpz_ptr)SP[3], (mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 4; } FCode (p4_mpz_sqrt) { mpz_sqrt ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; } FCode (p4_mpz_sqrtrem) { mpz_sqrtrem ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_perfect_power_p) { p4cell p4ret = (p4cell) mpz_perfect_power_p ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_perfect_square_p) { p4cell p4ret = (p4cell) mpz_perfect_square_p ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_probab_prime_p) { p4cell p4ret = (p4cell) mpz_probab_prime_p ((mpz_ptr)SP[1], (int)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_nextprime) { mpz_nextprime ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; } FCode (p4_mpz_gcd) { mpz_gcd ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_gcd_ui) { p4ucell p4ret = (p4ucell) mpz_gcd_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_gcdext) { mpz_gcdext ((mpz_ptr)SP[4], (mpz_ptr)SP[3], (mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 5; } FCode (p4_mpz_lcm) { mpz_lcm ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_lcm_ui) { mpz_lcm_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpz_invert) { p4cell p4ret = (p4cell) mpz_invert ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_jacobi) { p4cell p4ret = (p4cell) mpz_jacobi ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_legendre) { p4cell p4ret = (p4cell) mpz_jacobi ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_kronecker) { p4cell p4ret = (p4cell) mpz_jacobi ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_kronecker_si) { p4cell p4ret = (p4cell) mpz_kronecker_si ((mpz_ptr)SP[1], (slong)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_kronecker_ui) { p4cell p4ret = (p4cell) mpz_kronecker_ui ((mpz_ptr)SP[1], (ulong)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_si_kronecker) { p4cell p4ret = (p4cell) mpz_si_kronecker ((slong)SP[1], (mpz_ptr)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_ui_kronecker) { p4cell p4ret = (p4cell) mpz_ui_kronecker ((ulong)SP[1], (mpz_ptr)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_remove) { p4ucell p4ret = (p4ucell) mpz_remove ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_fac_ui) { mpz_fac_ui ((mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; } FCode (p4_mpz_bin_ui) { mpz_bin_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpz_bin_uiui) { mpz_bin_uiui ((mpz_ptr)SP[2], (ulong)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpz_fib_ui) { mpz_fib_ui ((mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; } FCode (p4_mpz_fib2_ui) { mpz_fib2_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpz_lucnum_ui) { mpz_lucnum_ui ((mpz_ptr)SP[1], (ulong)SP[0]); SP += 2; } FCode (p4_mpz_lucnum2_ui) { mpz_lucnum2_ui ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpz_cmp) { p4cell p4ret = (p4cell) mpz_cmp ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_cmp_d) { p4cell p4ret = (p4cell) mpz_cmp_d ((mpz_ptr)SP[0], (double)FP[0]); *SP = p4ret; FP += 1; } FCode (p4_mpz_cmp_si) { p4cell p4ret = (p4cell) mpz_cmp_si ((mpz_ptr)SP[1], (slong)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_cmp_ui) { p4cell p4ret = (p4cell) mpz_cmp_ui ((mpz_ptr)SP[1], (ulong)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_cmpabs) { p4cell p4ret = (p4cell) mpz_cmpabs ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_cmpabs_d) { p4cell p4ret = (p4cell) mpz_cmpabs_d ((mpz_ptr)SP[0], (double)FP[0]); *SP = p4ret; FP += 1; } FCode (p4_mpz_cmpabs_ui) { p4cell p4ret = (p4cell) mpz_cmpabs_ui ((mpz_ptr)SP[1], (ulong)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_sgn) { p4cell p4ret = (p4cell) mpz_sgn ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_and) { mpz_and ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_ior) { mpz_ior ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_xor) { mpz_xor ((mpz_ptr)SP[2], (mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_com) { mpz_com ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; } FCode (p4_mpz_popcount) { p4ucell p4ret = (p4ucell) mpz_popcount ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_hamdist) { p4ucell p4ret = (p4ucell) mpz_hamdist ((mpz_ptr)SP[1], (mpz_ptr)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_scan0) { p4ucell p4ret = (p4ucell) mpz_scan0 ((mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_scan1) { p4ucell p4ret = (p4ucell) mpz_scan1 ((mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_setbit) { mpz_setbit ((mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 2; } FCode (p4_mpz_clrbit) { mpz_clrbit ((mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 2; } FCode (p4_mpz_combit) { mpz_combit ((mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 2; } FCode (p4_mpz_tstbit) { p4cell p4ret = (p4cell) mpz_tstbit ((mpz_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_out_str) { p4ucell p4ret = (p4ucell) mpz_out_str ((FILE *)SP[2], (int)SP[1], (mpz_ptr)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_inp_str) { p4ucell p4ret = (p4ucell) mpz_inp_str ((mpz_ptr)SP[2], (FILE *)SP[1], (int)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpz_out_raw) { p4ucell p4ret = (p4ucell) mpz_out_raw ((FILE *)SP[1], (mpz_ptr)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_inp_raw) { p4ucell p4ret = (p4ucell) mpz_inp_raw ((mpz_ptr)SP[1], (FILE *)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_urandomb) { mpz_urandomb ((mpz_ptr)SP[2], (void*)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpz_urandomm) { mpz_urandomm ((mpz_ptr)SP[2], (void*)SP[1], (mpz_ptr)SP[0]); SP += 3; } FCode (p4_mpz_rrandomb) { mpz_rrandomb ((mpz_ptr)SP[2], (void*)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpz_import) { mpz_import ((mpz_ptr)SP[6], (size_t)SP[5], (int)SP[4], (size_t)SP[3], (int)SP[2], (size_t)SP[1], (const void *)SP[0]); SP += 7; } FCode (p4_mpz_export) { p4cell p4ret = (p4cell) mpz_export ((void *)SP[6], (size_t *)SP[5], (int)SP[4], (size_t)SP[3], (int)SP[2], (size_t)SP[1], (mpz_ptr)SP[0]); SP += 6; *SP = p4ret; } FCode (p4_mpz_fits_ulong_p) { p4cell p4ret = (p4cell) mpz_fits_ulong_p ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_fits_slong_p) { p4cell p4ret = (p4cell) mpz_fits_slong_p ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_fits_uint_p) { p4cell p4ret = (p4cell) mpz_fits_uint_p ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_fits_sint_p) { p4cell p4ret = (p4cell) mpz_fits_sint_p ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_fits_ushort_p) { p4cell p4ret = (p4cell) mpz_fits_ushort_p ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_fits_sshort_p) { p4cell p4ret = (p4cell) mpz_fits_sshort_p ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_odd_p) { p4cell p4ret = (p4cell) mpz_odd_p ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_even_p) { p4cell p4ret = (p4cell) mpz_even_p ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpz_sizeinbase) { p4ucell p4ret = (p4ucell) mpz_sizeinbase ((mpz_ptr)SP[1], (int)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_array_init) { mpz_array_init ((mpz_ptr)SP[2], (mp_size_t)SP[1], (mp_size_t)SP[0]); SP += 3; } FCode (p4__mpz_realloc) { p4ucell p4ret = (p4ucell) mpz_realloc ((mpz_ptr)SP[1], (mp_size_t)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_getlimbn) { p4ucell p4ret = (p4ucell) mpz_getlimbn ((mpz_ptr)SP[1], (mp_size_t)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpz_size) { p4ucell p4ret = (p4ucell) mpz_size ((mpz_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpq_canonicalize) { mpq_canonicalize ((mpq_ptr)SP[0]); SP += 1; } FCode (p4_mpq_init) { mpq_init ((mpq_ptr)SP[0]); SP += 1; } FCode (p4_mpq_clear) { mpq_clear ((mpq_ptr)SP[0]); SP += 1; } FCode (p4_mpq_set) { mpq_set ((mpq_ptr)SP[1], (mpq_ptr)SP[0]); SP += 2; } FCode (p4_mpq_set_z) { mpq_set_z ((mpq_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; } FCode (p4_mpq_set_ui) { mpq_set_ui ((mpq_ptr)SP[2], (ulong)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpq_set_si) { mpq_set_si ((mpq_ptr)SP[2], (slong)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpq_set_str) { p4cell p4ret = (p4cell) mpq_set_str ((mpq_ptr)SP[2], (char *)SP[1], (int)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpq_swap) { mpq_swap ((mpq_ptr)SP[1], (mpq_ptr)SP[0]); SP += 2; } FCode (p4_mpq_get_d) { double p4ret = (double) mpq_get_d ((mpq_ptr)SP[0]); SP += 1; *--FP = p4ret; } FCode (p4_mpq_set_d) { mpq_set_d ((mpq_ptr)SP[0], (double)FP[0]); SP += 1; FP += 1; } FCode (p4_mpq_set_f) { mpq_set_f ((mpq_ptr)SP[1], (mpf_ptr)SP[0]); SP += 2; } FCode (p4_mpq_get_str) { p4ucell p4ret = (p4ucell) mpq_get_str ((char *)SP[2], (int)SP[1], (mpq_ptr)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpq_add) { mpq_add ((mpq_ptr)SP[2], (mpq_ptr)SP[1], (mpq_ptr)SP[0]); SP += 3; } FCode (p4_mpq_sub) { mpq_sub ((mpq_ptr)SP[2], (mpq_ptr)SP[1], (mpq_ptr)SP[0]); SP += 3; } FCode (p4_mpq_mul) { mpq_mul ((mpq_ptr)SP[2], (mpq_ptr)SP[1], (mpq_ptr)SP[0]); SP += 3; } FCode (p4_mpq_mul_2exp) { mpq_mul_2exp ((mpq_ptr)SP[2], (mpq_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpq_div) { mpq_div ((mpq_ptr)SP[2], (mpq_ptr)SP[1], (mpq_ptr)SP[0]); SP += 3; } FCode (p4_mpq_div_2exp) { mpq_div_2exp ((mpq_ptr)SP[2], (mpq_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpq_neg) { mpq_neg ((mpq_ptr)SP[1], (mpq_ptr)SP[0]); SP += 2; } FCode (p4_mpq_abs) { mpq_abs ((mpq_ptr)SP[1], (mpq_ptr)SP[0]); SP += 2; } FCode (p4_mpq_inv) { mpq_inv ((mpq_ptr)SP[1], (mpq_ptr)SP[0]); SP += 2; } FCode (p4_mpq_cmp) { p4cell p4ret = (p4cell) mpq_cmp ((mpq_ptr)SP[1], (mpq_ptr)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpq_cmp_ui) { p4cell p4ret = (p4cell) mpq_cmp_ui ((mpq_ptr)SP[2], (ulong)SP[1], (ulong)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpq_cmp_si) { p4cell p4ret = (p4cell) mpq_cmp_si ((mpq_ptr)SP[2], (slong)SP[1], (ulong)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpq_sgn) { p4cell p4ret = (p4cell) mpq_sgn ((mpq_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpq_equal) { p4cell p4ret = (p4cell) mpq_equal ((mpq_ptr)SP[1], (mpq_ptr)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpq_numref) { p4ucell p4ret = (p4ucell) mpq_numref ((mpq_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpq_denref) { p4ucell p4ret = (p4ucell) mpq_denref ((mpq_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpq_get_num) { mpq_get_num ((mpz_ptr)SP[1], (mpq_ptr)SP[0]); SP += 2; } FCode (p4_mpq_get_den) { mpq_get_den ((mpz_ptr)SP[1], (mpq_ptr)SP[0]); SP += 2; } FCode (p4_mpq_set_num) { mpq_set_num ((mpq_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; } FCode (p4_mpq_set_den) { mpq_set_den ((mpq_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; } FCode (p4_mpq_out_str) { p4ucell p4ret = (p4ucell) mpq_out_str ((FILE *)SP[2], (int)SP[1], (mpq_ptr)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpq_inp_str) { p4ucell p4ret = (p4ucell) mpq_inp_str ((mpq_ptr)SP[2], (FILE *)SP[1], (int)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpf_set_default_prec) { mpf_set_default_prec ((mp_bitcnt_t)SP[0]); SP += 1; } FCode (p4_mpf_get_default_prec) { p4ucell p4ret = (p4ucell) mpf_get_default_prec (); *--SP = p4ret; } FCode (p4_mpf_init) { mpf_init ((mpf_ptr)SP[0]); SP += 1; } FCode (p4_mpf_init2) { mpf_init2 ((mpf_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 2; } FCode (p4_mpf_clear) { mpf_clear ((mpf_ptr)SP[0]); SP += 1; } FCode (p4_mpf_get_prec) { p4ucell p4ret = (p4ucell) mpf_get_prec ((mpf_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpf_set_prec) { mpf_set_prec ((mpf_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 2; } FCode (p4_mpf_set_prec_raw) { mpf_set_prec_raw ((mpf_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 2; } FCode (p4_mpf_set) { mpf_set ((mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 2; } FCode (p4_mpf_set_ui) { mpf_set_ui ((mpf_ptr)SP[1], (ulong)SP[0]); SP += 2; } FCode (p4_mpf_set_si) { mpf_set_si ((mpf_ptr)SP[1], (slong)SP[0]); SP += 2; } FCode (p4_mpf_set_d) { mpf_set_d ((mpf_ptr)SP[0], (double)FP[0]); SP += 1; FP += 1; } FCode (p4_mpf_set_z) { mpf_set_z ((mpf_ptr)SP[1], (mpz_ptr)SP[0]); SP += 2; } FCode (p4_mpf_set_q) { mpf_set_q ((mpf_ptr)SP[1], (mpq_ptr)SP[0]); SP += 2; } FCode (p4_mpf_set_str) { p4cell p4ret = (p4cell) mpf_set_str ((mpf_ptr)SP[2], (char *)SP[1], (int)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpf_swap) { mpf_swap ((mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 2; } FCode (p4_mpf_init_set) { mpf_init_set ((mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 2; } FCode (p4_mpf_init_set_ui) { mpf_init_set_ui ((mpf_ptr)SP[1], (ulong)SP[0]); SP += 2; } FCode (p4_mpf_init_set_si) { mpf_init_set_si ((mpf_ptr)SP[1], (slong)SP[0]); SP += 2; } FCode (p4_mpf_init_set_d) { mpf_init_set_d ((mpf_ptr)SP[0], (double)FP[0]); SP += 1; FP += 1; } FCode (p4_mpf_init_set_str) { p4cell p4ret = (p4cell) mpf_init_set_str ((mpf_ptr)SP[2], (char *)SP[1], (int)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpf_get_d) { double p4ret = (double) mpf_get_d ((mpf_ptr)SP[0]); SP += 1; *--FP = p4ret; } FCode (p4_mpf_get_d_2exp) { double p4ret = (double) mpf_get_d_2exp ((slong *)SP[1], (mpf_ptr)SP[0]); SP += 2; *--FP = p4ret; } FCode (p4_mpf_get_si) { p4cell p4ret = (p4cell) mpf_get_si ((mpf_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpf_get_ui) { p4ucell p4ret = (p4ucell) mpf_get_ui ((mpf_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpf_get_str) { p4ucell p4ret = (p4ucell) mpf_get_str ((char *)SP[4], (mp_exp_t *)SP[3], (int)SP[2], (size_t)SP[1], (mpf_ptr)SP[0]); SP += 4; *SP = p4ret; } FCode (p4_mpf_add) { mpf_add ((mpf_ptr)SP[2], (mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 3; } FCode (p4_mpf_add_ui) { mpf_add_ui ((mpf_ptr)SP[2], (mpf_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpf_sub) { mpf_sub ((mpf_ptr)SP[2], (mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 3; } FCode (p4_mpf_ui_sub) { mpf_ui_sub ((mpf_ptr)SP[2], (ulong)SP[1], (mpf_ptr)SP[0]); SP += 3; } FCode (p4_mpf_sub_ui) { mpf_sub_ui ((mpf_ptr)SP[2], (mpf_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpf_mul) { mpf_mul ((mpf_ptr)SP[2], (mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 3; } FCode (p4_mpf_mul_ui) { mpf_mul_ui ((mpf_ptr)SP[2], (mpf_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpf_div) { mpf_div ((mpf_ptr)SP[2], (mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 3; } FCode (p4_mpf_ui_div) { mpf_ui_div ((mpf_ptr)SP[2], (ulong)SP[1], (mpf_ptr)SP[0]); SP += 3; } FCode (p4_mpf_div_ui) { mpf_div_ui ((mpf_ptr)SP[2], (mpf_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpf_sqrt) { mpf_sqrt ((mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 2; } FCode (p4_mpf_sqrt_ui) { mpf_sqrt_ui ((mpf_ptr)SP[1], (ulong)SP[0]); SP += 2; } FCode (p4_mpf_pow_ui) { mpf_pow_ui ((mpf_ptr)SP[2], (mpf_ptr)SP[1], (ulong)SP[0]); SP += 3; } FCode (p4_mpf_neg) { mpf_neg ((mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 2; } FCode (p4_mpf_abs) { mpf_abs ((mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 2; } FCode (p4_mpf_mul_2exp) { mpf_mul_2exp ((mpf_ptr)SP[2], (mpf_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpf_div_2exp) { mpf_div_2exp ((mpf_ptr)SP[2], (mpf_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpf_cmp) { p4cell p4ret = (p4cell) mpf_cmp ((mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpf_cmp_d) { p4cell p4ret = (p4cell) mpf_cmp_d ((mpf_ptr)SP[0], (double)FP[0]); *SP = p4ret; FP += 1; } FCode (p4_mpf_cmp_ui) { p4cell p4ret = (p4cell) mpf_cmp_ui ((mpf_ptr)SP[1], (ulong)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpf_cmp_si) { p4cell p4ret = (p4cell) mpf_cmp_si ((mpf_ptr)SP[1], (slong)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_mpf_eq) { p4cell p4ret = (p4cell) mpf_eq ((mpf_ptr)SP[2], (mpf_ptr)SP[1], (mp_bitcnt_t)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpf_reldiff) { mpf_reldiff ((mpf_ptr)SP[2], (mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 3; } FCode (p4_mpf_sgn) { p4cell p4ret = (p4cell) mpf_sgn ((mpf_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpf_out_str) { p4ucell p4ret = (p4ucell) mpf_out_str ((FILE *)SP[3], (int)SP[2], (size_t)SP[1], (mpf_ptr)SP[0]); SP += 3; *SP = p4ret; } FCode (p4_mpf_inp_str) { p4ucell p4ret = (p4ucell) mpf_inp_str ((mpf_ptr)SP[2], (FILE *)SP[1], (int)SP[0]); SP += 2; *SP = p4ret; } FCode (p4_mpf_ceil) { mpf_ceil ((mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 2; } FCode (p4_mpf_floor) { mpf_floor ((mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 2; } FCode (p4_mpf_trunc) { mpf_trunc ((mpf_ptr)SP[1], (mpf_ptr)SP[0]); SP += 2; } FCode (p4_mpf_integer_p) { p4cell p4ret = (p4cell) mpf_integer_p ((mpf_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpf_fits_ulong_p) { p4cell p4ret = (p4cell) mpf_fits_ulong_p ((mpf_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpf_fits_slong_p) { p4cell p4ret = (p4cell) mpf_fits_slong_p ((mpf_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpf_fits_uint_p) { p4cell p4ret = (p4cell) mpf_fits_uint_p ((mpf_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpf_fits_sint_p) { p4cell p4ret = (p4cell) mpf_fits_sint_p ((mpf_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpf_fits_ushort_p) { p4cell p4ret = (p4cell) mpf_fits_ushort_p ((mpf_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpf_fits_sshort_p) { p4cell p4ret = (p4cell) mpf_fits_sshort_p ((mpf_ptr)SP[0]); *SP = p4ret; } FCode (p4_mpf_urandomb) { mpf_urandomb ((mpf_ptr)SP[2], (void*)SP[1], (mp_bitcnt_t)SP[0]); SP += 3; } FCode (p4_mpf_random2) { mpf_random2 ((mpf_ptr)SP[2], (mp_size_t)SP[1], (mp_exp_t)SP[0]); SP += 3; } FCode (p4_gmp_randinit_default) { __gmp_randinit_default ((void*)SP[0]); SP += 1; } FCode (p4_gmp_randinit_mt) { __gmp_randinit_mt ((void*)SP[0]); SP += 1; } FCode (p4_gmp_randinit_lc_2exp) { __gmp_randinit_lc_2exp ((void*)SP[3], (mpz_ptr)SP[2], (ulong)SP[1], (mp_bitcnt_t)SP[0]); SP += 4; } FCode (p4_gmp_randinit_lc_2exp_size) { p4cell p4ret = (p4cell) __gmp_randinit_lc_2exp_size ((void*)SP[1], (mp_bitcnt_t)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_gmp_randinit_set) { __gmp_randinit_set ((void*)SP[1], (void*)SP[0]); SP += 2; } FCode (p4_gmp_randclear) { __gmp_randclear ((void*)SP[0]); SP += 1; } FCode (p4_gmp_randseed) { __gmp_randseed ((void*)SP[1], (mpz_ptr)SP[0]); SP += 2; } FCode (p4_gmp_randseed_ui) { __gmp_randseed_ui ((void*)SP[1], (ulong)SP[0]); SP += 2; } FCode (p4_gmp_urandomb_ui) { p4ucell p4ret = (p4ucell) __gmp_urandomb_ui ((void*)SP[1], (ulong)SP[0]); SP += 1; *SP = p4ret; } FCode (p4_gmp_urandomm_ui) { p4ucell p4ret = (p4ucell) __gmp_urandomm_ui ((void*)SP[1], (ulong)SP[0]); SP += 1; *SP = p4ret; } P4_LISTWORDS (gmp) = { P4_NEED ("floating-ext"), P4_FXco ("mp_bits_per_limb", p4_mp_bits_per_limb), P4_FXco ("gmp_version", p4_gmp_version), P4_OCoN ("GMP_VERSION_MAJOR", __GNU_MP_VERSION), P4_OCoN ("GMP_VERSION_MINOR", __GNU_MP_VERSION_MINOR), P4_OCoN ("GMP_VERSION_PATCHLEVEL", __GNU_MP_VERSION_PATCHLEVEL), P4_FXco ("mpz_init", p4_mpz_init), P4_FXco ("mpz_init2", p4_mpz_init2), P4_FXco ("mpz_clear", p4_mpz_clear), P4_FXco ("mpz_realloc2", p4_mpz_realloc2), P4_FXco ("mpz_set", p4_mpz_set), P4_FXco ("mpz_set_ui", p4_mpz_set_ui), P4_FXco ("mpz_set_si", p4_mpz_set_si), P4_FXco ("mpz_set_d", p4_mpz_set_d), P4_FXco ("mpz_set_q", p4_mpz_set_q), P4_FXco ("mpz_set_f", p4_mpz_set_f), P4_FXco ("mpz_set_str", p4_mpz_set_str), P4_FXco ("mpz_swap", p4_mpz_swap), P4_FXco ("mpz_init_set", p4_mpz_init_set), P4_FXco ("mpz_init_set_ui", p4_mpz_init_set_ui), P4_FXco ("mpz_init_set_si", p4_mpz_init_set_si), P4_FXco ("mpz_init_set_d", p4_mpz_init_set_d), P4_FXco ("mpz_init_set_str", p4_mpz_init_set_str), P4_FXco ("mpz_get_ui", p4_mpz_get_ui), P4_FXco ("mpz_get_si", p4_mpz_get_si), P4_FXco ("mpz_get_d", p4_mpz_get_d), P4_FXco ("mpz_get_d_2exp", p4_mpz_get_d_2exp), P4_FXco ("mpz_get_str", p4_mpz_get_str), P4_FXco ("mpz_add", p4_mpz_add), P4_FXco ("mpz_add_ui", p4_mpz_add_ui), P4_FXco ("mpz_sub", p4_mpz_sub), P4_FXco ("mpz_sub_ui", p4_mpz_sub_ui), P4_FXco ("mpz_ui_sub", p4_mpz_ui_sub), P4_FXco ("mpz_mul", p4_mpz_mul), P4_FXco ("mpz_mul_si", p4_mpz_mul_si), P4_FXco ("mpz_mul_ui", p4_mpz_mul_ui), P4_FXco ("mpz_addmul", p4_mpz_addmul), P4_FXco ("mpz_addmul_ui", p4_mpz_addmul_ui), P4_FXco ("mpz_submul", p4_mpz_submul), P4_FXco ("mpz_submul_ui", p4_mpz_submul_ui), P4_FXco ("mpz_mul_2exp", p4_mpz_mul_2exp), P4_FXco ("mpz_neg", p4_mpz_neg), P4_FXco ("mpz_abs", p4_mpz_abs), P4_FXco ("mpz_cdiv_q", p4_mpz_cdiv_q), P4_FXco ("mpz_cdiv_r", p4_mpz_cdiv_r), P4_FXco ("mpz_cdiv_qr", p4_mpz_cdiv_qr), P4_FXco ("mpz_cdiv_q_ui", p4_mpz_cdiv_q_ui), P4_FXco ("mpz_cdiv_r_ui", p4_mpz_cdiv_r_ui), P4_FXco ("mpz_cdiv_qr_ui", p4_mpz_cdiv_qr_ui), P4_FXco ("mpz_cdiv_ui", p4_mpz_cdiv_ui), P4_FXco ("mpz_cdiv_q_2exp", p4_mpz_cdiv_q_2exp), P4_FXco ("mpz_cdiv_r_2exp", p4_mpz_cdiv_r_2exp), P4_FXco ("mpz_fdiv_q", p4_mpz_fdiv_q), P4_FXco ("mpz_fdiv_r", p4_mpz_fdiv_r), P4_FXco ("mpz_fdiv_qr", p4_mpz_fdiv_qr), P4_FXco ("mpz_fdiv_q_ui", p4_mpz_fdiv_q_ui), P4_FXco ("mpz_fdiv_r_ui", p4_mpz_fdiv_r_ui), P4_FXco ("mpz_fdiv_qr_ui", p4_mpz_fdiv_qr_ui), P4_FXco ("mpz_fdiv_ui", p4_mpz_fdiv_ui), P4_FXco ("mpz_fdiv_q_2exp", p4_mpz_fdiv_q_2exp), P4_FXco ("mpz_fdiv_r_2exp", p4_mpz_fdiv_r_2exp), P4_FXco ("mpz_tdiv_q", p4_mpz_tdiv_q), P4_FXco ("mpz_tdiv_r", p4_mpz_tdiv_r), P4_FXco ("mpz_tdiv_qr", p4_mpz_tdiv_qr), P4_FXco ("mpz_tdiv_q_ui", p4_mpz_tdiv_q_ui), P4_FXco ("mpz_tdiv_r_ui", p4_mpz_tdiv_r_ui), P4_FXco ("mpz_tdiv_qr_ui", p4_mpz_tdiv_qr_ui), P4_FXco ("mpz_tdiv_ui", p4_mpz_tdiv_ui), P4_FXco ("mpz_tdiv_q_2exp", p4_mpz_tdiv_q_2exp), P4_FXco ("mpz_tdiv_r_2exp", p4_mpz_tdiv_r_2exp), P4_FXco ("mpz_mod", p4_mpz_mod), P4_FXco ("mpz_mod_ui", p4_mpz_mod_ui), P4_FXco ("mpz_divexact", p4_mpz_divexact), P4_FXco ("mpz_divexact_ui", p4_mpz_divexact_ui), P4_FXco ("mpz_divisible_p", p4_mpz_divisible_p), P4_FXco ("mpz_divisible_ui_p", p4_mpz_divisible_ui_p), P4_FXco ("mpz_divisible_2exp_p", p4_mpz_divisible_2exp_p), P4_FXco ("mpz_congruent_p", p4_mpz_congruent_p), P4_FXco ("mpz_congruent_ui_p", p4_mpz_congruent_ui_p), P4_FXco ("mpz_congruent_2exp_p", p4_mpz_congruent_2exp_p), P4_FXco ("mpz_powm", p4_mpz_powm), P4_FXco ("mpz_powm_ui", p4_mpz_powm_ui), P4_FXco ("mpz_powm_sec", p4_mpz_powm_sec), P4_FXco ("mpz_pow_ui", p4_mpz_pow_ui), P4_FXco ("mpz_ui_pow_ui", p4_mpz_ui_pow_ui), P4_FXco ("mpz_root", p4_mpz_root), P4_FXco ("mpz_rootrem", p4_mpz_rootrem), P4_FXco ("mpz_sqrt", p4_mpz_sqrt), P4_FXco ("mpz_sqrtrem", p4_mpz_sqrtrem), P4_FXco ("mpz_perfect_power_p", p4_mpz_perfect_power_p), P4_FXco ("mpz_perfect_square_p", p4_mpz_perfect_square_p), P4_FXco ("mpz_probab_prime_p", p4_mpz_probab_prime_p), P4_FXco ("mpz_nextprime", p4_mpz_nextprime), P4_FXco ("mpz_gcd", p4_mpz_gcd), P4_FXco ("mpz_gcd_ui", p4_mpz_gcd_ui), P4_FXco ("mpz_gcdext", p4_mpz_gcdext), P4_FXco ("mpz_lcm", p4_mpz_lcm), P4_FXco ("mpz_lcm_ui", p4_mpz_lcm_ui), P4_FXco ("mpz_invert", p4_mpz_invert), P4_FXco ("mpz_jacobi", p4_mpz_jacobi), P4_FXco ("mpz_legendre", p4_mpz_legendre), P4_FXco ("mpz_kronecker", p4_mpz_kronecker), P4_FXco ("mpz_kronecker_si", p4_mpz_kronecker_si), P4_FXco ("mpz_kronecker_ui", p4_mpz_kronecker_ui), P4_FXco ("mpz_si_kronecker", p4_mpz_si_kronecker), P4_FXco ("mpz_ui_kronecker", p4_mpz_ui_kronecker), P4_FXco ("mpz_remove", p4_mpz_remove), P4_FXco ("mpz_fac_ui", p4_mpz_fac_ui), P4_FXco ("mpz_bin_ui", p4_mpz_bin_ui), P4_FXco ("mpz_bin_uiui", p4_mpz_bin_uiui), P4_FXco ("mpz_fib_ui", p4_mpz_fib_ui), P4_FXco ("mpz_fib2_ui", p4_mpz_fib2_ui), P4_FXco ("mpz_lucnum_ui", p4_mpz_lucnum_ui), P4_FXco ("mpz_lucnum2_ui", p4_mpz_lucnum2_ui), P4_FXco ("mpz_cmp", p4_mpz_cmp), P4_FXco ("mpz_cmp_d", p4_mpz_cmp_d), P4_FXco ("mpz_cmp_si", p4_mpz_cmp_si), P4_FXco ("mpz_cmp_ui", p4_mpz_cmp_ui), P4_FXco ("mpz_cmpabs", p4_mpz_cmpabs), P4_FXco ("mpz_cmpabs_d", p4_mpz_cmpabs_d), P4_FXco ("mpz_cmpabs_ui", p4_mpz_cmpabs_ui), P4_FXco ("mpz_sgn", p4_mpz_sgn), P4_FXco ("mpz_and", p4_mpz_and), P4_FXco ("mpz_ior", p4_mpz_ior), P4_FXco ("mpz_xor", p4_mpz_xor), P4_FXco ("mpz_com", p4_mpz_com), P4_FXco ("mpz_popcount", p4_mpz_popcount), P4_FXco ("mpz_hamdist", p4_mpz_hamdist), P4_FXco ("mpz_scan0", p4_mpz_scan0), P4_FXco ("mpz_scan1", p4_mpz_scan1), P4_FXco ("mpz_setbit", p4_mpz_setbit), P4_FXco ("mpz_clrbit", p4_mpz_clrbit), P4_FXco ("mpz_combit", p4_mpz_combit), P4_FXco ("mpz_tstbit", p4_mpz_tstbit), P4_FXco ("mpz_out_str", p4_mpz_out_str), P4_FXco ("mpz_inp_str", p4_mpz_inp_str), P4_FXco ("mpz_out_raw", p4_mpz_out_raw), P4_FXco ("mpz_inp_raw", p4_mpz_inp_raw), P4_FXco ("mpz_urandomb", p4_mpz_urandomb), P4_FXco ("mpz_urandomm", p4_mpz_urandomm), P4_FXco ("mpz_rrandomb", p4_mpz_rrandomb), P4_FXco ("mpz_import", p4_mpz_import), P4_FXco ("mpz_export", p4_mpz_export), P4_FXco ("mpz_fits_ulong_p", p4_mpz_fits_ulong_p), P4_FXco ("mpz_fits_slong_p", p4_mpz_fits_slong_p), P4_FXco ("mpz_fits_uint_p", p4_mpz_fits_uint_p), P4_FXco ("mpz_fits_sint_p", p4_mpz_fits_sint_p), P4_FXco ("mpz_fits_ushort_p", p4_mpz_fits_ushort_p), P4_FXco ("mpz_fits_sshort_p", p4_mpz_fits_sshort_p), P4_FXco ("mpz_odd_p", p4_mpz_odd_p), P4_FXco ("mpz_even_p", p4_mpz_even_p), P4_FXco ("mpz_sizeinbase", p4_mpz_sizeinbase), P4_FXco ("mpz_array_init", p4_mpz_array_init), P4_FXco ("_mpz_realloc", p4__mpz_realloc), P4_FXco ("mpz_getlimbn", p4_mpz_getlimbn), P4_FXco ("mpz_size", p4_mpz_size), P4_FXco ("mpq_canonicalize", p4_mpq_canonicalize), P4_FXco ("mpq_init", p4_mpq_init), P4_FXco ("mpq_clear", p4_mpq_clear), P4_FXco ("mpq_set", p4_mpq_set), P4_FXco ("mpq_set_z", p4_mpq_set_z), P4_FXco ("mpq_set_ui", p4_mpq_set_ui), P4_FXco ("mpq_set_si", p4_mpq_set_si), P4_FXco ("mpq_set_str", p4_mpq_set_str), P4_FXco ("mpq_swap", p4_mpq_swap), P4_FXco ("mpq_get_d", p4_mpq_get_d), P4_FXco ("mpq_set_d", p4_mpq_set_d), P4_FXco ("mpq_set_f", p4_mpq_set_f), P4_FXco ("mpq_get_str", p4_mpq_get_str), P4_FXco ("mpq_add", p4_mpq_add), P4_FXco ("mpq_sub", p4_mpq_sub), P4_FXco ("mpq_mul", p4_mpq_mul), P4_FXco ("mpq_mul_2exp", p4_mpq_mul_2exp), P4_FXco ("mpq_div", p4_mpq_div), P4_FXco ("mpq_div_2exp", p4_mpq_div_2exp), P4_FXco ("mpq_neg", p4_mpq_neg), P4_FXco ("mpq_abs", p4_mpq_abs), P4_FXco ("mpq_inv", p4_mpq_inv), P4_FXco ("mpq_cmp", p4_mpq_cmp), P4_FXco ("mpq_cmp_ui", p4_mpq_cmp_ui), P4_FXco ("mpq_cmp_si", p4_mpq_cmp_si), P4_FXco ("mpq_sgn", p4_mpq_sgn), P4_FXco ("mpq_equal", p4_mpq_equal), P4_FXco ("mpq_numref", p4_mpq_numref), P4_FXco ("mpq_denref", p4_mpq_denref), P4_FXco ("mpq_get_num", p4_mpq_get_num), P4_FXco ("mpq_get_den", p4_mpq_get_den), P4_FXco ("mpq_set_num", p4_mpq_set_num), P4_FXco ("mpq_set_den", p4_mpq_set_den), P4_FXco ("mpq_out_str", p4_mpq_out_str), P4_FXco ("mpq_inp_str", p4_mpq_inp_str), P4_FXco ("mpf_set_default_prec", p4_mpf_set_default_prec), P4_FXco ("mpf_get_default_prec", p4_mpf_get_default_prec), P4_FXco ("mpf_init", p4_mpf_init), P4_FXco ("mpf_init2", p4_mpf_init2), P4_FXco ("mpf_clear", p4_mpf_clear), P4_FXco ("mpf_get_prec", p4_mpf_get_prec), P4_FXco ("mpf_set_prec", p4_mpf_set_prec), P4_FXco ("mpf_set_prec_raw", p4_mpf_set_prec_raw), P4_FXco ("mpf_set", p4_mpf_set), P4_FXco ("mpf_set_ui", p4_mpf_set_ui), P4_FXco ("mpf_set_si", p4_mpf_set_si), P4_FXco ("mpf_set_d", p4_mpf_set_d), P4_FXco ("mpf_set_z", p4_mpf_set_z), P4_FXco ("mpf_set_q", p4_mpf_set_q), P4_FXco ("mpf_set_str", p4_mpf_set_str), P4_FXco ("mpf_swap", p4_mpf_swap), P4_FXco ("mpf_init_set", p4_mpf_init_set), P4_FXco ("mpf_init_set_ui", p4_mpf_init_set_ui), P4_FXco ("mpf_init_set_si", p4_mpf_init_set_si), P4_FXco ("mpf_init_set_d", p4_mpf_init_set_d), P4_FXco ("mpf_init_set_str", p4_mpf_init_set_str), P4_FXco ("mpf_get_d", p4_mpf_get_d), P4_FXco ("mpf_get_d_2exp", p4_mpf_get_d_2exp), P4_FXco ("mpf_get_si", p4_mpf_get_si), P4_FXco ("mpf_get_ui", p4_mpf_get_ui), P4_FXco ("mpf_get_str", p4_mpf_get_str), P4_FXco ("mpf_add", p4_mpf_add), P4_FXco ("mpf_add_ui", p4_mpf_add_ui), P4_FXco ("mpf_sub", p4_mpf_sub), P4_FXco ("mpf_ui_sub", p4_mpf_ui_sub), P4_FXco ("mpf_sub_ui", p4_mpf_sub_ui), P4_FXco ("mpf_mul", p4_mpf_mul), P4_FXco ("mpf_mul_ui", p4_mpf_mul_ui), P4_FXco ("mpf_div", p4_mpf_div), P4_FXco ("mpf_ui_div", p4_mpf_ui_div), P4_FXco ("mpf_div_ui", p4_mpf_div_ui), P4_FXco ("mpf_sqrt", p4_mpf_sqrt), P4_FXco ("mpf_sqrt_ui", p4_mpf_sqrt_ui), P4_FXco ("mpf_pow_ui", p4_mpf_pow_ui), P4_FXco ("mpf_neg", p4_mpf_neg), P4_FXco ("mpf_abs", p4_mpf_abs), P4_FXco ("mpf_mul_2exp", p4_mpf_mul_2exp), P4_FXco ("mpf_div_2exp", p4_mpf_div_2exp), P4_FXco ("mpf_cmp", p4_mpf_cmp), P4_FXco ("mpf_cmp_d", p4_mpf_cmp_d), P4_FXco ("mpf_cmp_ui", p4_mpf_cmp_ui), P4_FXco ("mpf_cmp_si", p4_mpf_cmp_si), P4_FXco ("mpf_eq", p4_mpf_eq), P4_FXco ("mpf_reldiff", p4_mpf_reldiff), P4_FXco ("mpf_sgn", p4_mpf_sgn), P4_FXco ("mpf_out_str", p4_mpf_out_str), P4_FXco ("mpf_inp_str", p4_mpf_inp_str), P4_FXco ("mpf_ceil", p4_mpf_ceil), P4_FXco ("mpf_floor", p4_mpf_floor), P4_FXco ("mpf_trunc", p4_mpf_trunc), P4_FXco ("mpf_integer_p", p4_mpf_integer_p), P4_FXco ("mpf_fits_ulong_p", p4_mpf_fits_ulong_p), P4_FXco ("mpf_fits_slong_p", p4_mpf_fits_slong_p), P4_FXco ("mpf_fits_uint_p", p4_mpf_fits_uint_p), P4_FXco ("mpf_fits_sint_p", p4_mpf_fits_sint_p), P4_FXco ("mpf_fits_ushort_p", p4_mpf_fits_ushort_p), P4_FXco ("mpf_fits_sshort_p", p4_mpf_fits_sshort_p), P4_FXco ("mpf_urandomb", p4_mpf_urandomb), P4_FXco ("mpf_random2", p4_mpf_random2), P4_FXco ("gmp_randinit_default", p4_gmp_randinit_default), P4_FXco ("gmp_randinit_mt", p4_gmp_randinit_mt), P4_FXco ("gmp_randinit_lc_2exp", p4_gmp_randinit_lc_2exp), P4_FXco ("gmp_randinit_lc_2exp_size", p4_gmp_randinit_lc_2exp_size), P4_FXco ("gmp_randinit_set", p4_gmp_randinit_set), P4_FXco ("gmp_randclear", p4_gmp_randclear), P4_FXco ("gmp_randseed", p4_gmp_randseed), P4_FXco ("gmp_randseed_ui", p4_gmp_randseed_ui), P4_FXco ("gmp_urandomb_ui", p4_gmp_urandomb_ui), P4_FXco ("gmp_urandomm_ui", p4_gmp_urandomm_ui), P4_OCoN ("/MPZ", sizeof (mpz_t)), P4_OCoN ("/MPQ", sizeof (mpq_t)), P4_OCoN ("/MPF", sizeof (mpf_t)), P4_OCoN ("/GMP-RANDSTATE", sizeof (gmp_randstate_t)), }; P4_COUNTWORDS (gmp, "gmp bindings");