/*   Pfe bindings:  libgmp-pfe.c
        Generated:  03-Feb-2021 09:40:16
        Generator:  0.5.1 
*/
/* License:  LGPL */
#define _P4_SOURCE 1
#include <stdio.h>
#include <pfe/pfe-base.h>

#include <stdint.h> 	 // either of these...
// #include <inttypes.h> //...works with OS X

#include <gmp.h>

#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");