/*   Pfe bindings:  libmpfr-pfe.c
        Generated:  05-Feb-2021 22:42:54
        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>
#include <mpfr.h>

FCode (p4_mpfr_init)
{
  mpfr_init ((mpfr_ptr)SP[0]);
  SP += 1;
}
FCode (p4_mpfr_init2)
{
  mpfr_init2 ((mpfr_ptr)SP[1], (mpfr_prec_t)SP[0]);
  SP += 2;
}
FCode (p4_mpfr_clear)
{
  mpfr_clear ((mpfr_ptr)SP[0]);
  SP += 1;
}
FCode (p4_mpfr_set_default_prec)
{
  mpfr_set_default_prec ((mpfr_prec_t)SP[0]);
  SP += 1;
}
FCode (p4_mpfr_get_default_prec)
{
  p4cell p4ret = (p4cell)
  mpfr_get_default_prec ();
  *--SP = p4ret;
}
FCode (p4_mpfr_set_prec)
{
  mpfr_set_prec ((mpfr_ptr)SP[1], (mpfr_prec_t)SP[0]);
  SP += 2;
}
FCode (p4_mpfr_get_prec)
{
  p4cell p4ret = (p4cell)
  mpfr_get_prec ((mpfr_srcptr)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_set)
{
  p4cell p4ret = (p4cell)
  mpfr_set ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_set_ui)
{
  p4cell p4ret = (p4cell)
  mpfr_set_ui ((mpfr_ptr)SP[2], (unsigned long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_set_si)
{
  p4cell p4ret = (p4cell)
  mpfr_set_si ((mpfr_ptr)SP[2], (long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_set_uj)
{
  p4cell p4ret = (p4cell)
  mpfr_set_uj ((mpfr_ptr)SP[2], (uintmax_t)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_set_sj)
{
  p4cell p4ret = (p4cell)
  mpfr_set_sj ((mpfr_ptr)SP[2], (intmax_t)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_set_flt)
{
  p4cell p4ret = (p4cell)
  mpfr_set_flt ((mpfr_ptr)SP[2], (float)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_set_d)
{
  p4cell p4ret = (p4cell)
  mpfr_set_d ((mpfr_ptr)SP[1], (double)FP[0], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
  FP += 1;
}
FCode (p4_mpfr_set_z)
{
  p4cell p4ret = (p4cell)
  mpfr_set_z ((mpfr_ptr)SP[2], (mpz_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_set_q)
{
  p4cell p4ret = (p4cell)
  mpfr_set_q ((mpfr_ptr)SP[2], (mpq_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_set_f)
{
  p4cell p4ret = (p4cell)
  mpfr_set_f ((mpfr_ptr)SP[2], (mpf_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_set_ui_2exp)
{
  p4cell p4ret = (p4cell)
  mpfr_set_ui_2exp ((mpfr_ptr)SP[3], (unsigned long)SP[2], (mpfr_exp_t)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_set_si_2exp)
{
  p4cell p4ret = (p4cell)
  mpfr_set_si_2exp ((mpfr_ptr)SP[3], (long)SP[2], (mpfr_exp_t)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_set_uj_2exp)
{
  p4cell p4ret = (p4cell)
  mpfr_set_uj_2exp ((mpfr_ptr)SP[3], (uintmax_t)SP[2], (intmax_t)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_set_sj_2exp)
{
  p4cell p4ret = (p4cell)
  mpfr_set_sj_2exp ((mpfr_ptr)SP[3], (intmax_t)SP[2], (intmax_t)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_set_z_2exp)
{
  p4cell p4ret = (p4cell)
  mpfr_set_z_2exp ((mpfr_ptr)SP[3], (mpz_srcptr)SP[2], (mpfr_exp_t)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_set_str)
{
  p4cell p4ret = (p4cell)
  mpfr_set_str ((mpfr_ptr)SP[3], (const char *)SP[2], (int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_strtofr)
{
  p4cell p4ret = (p4cell)
  mpfr_strtofr ((mpfr_ptr)SP[4], (const char *)SP[3], (char **)SP[2], (int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 4;
  *SP = p4ret;
}
FCode (p4_mpfr_set_nan)
{
  mpfr_set_nan ((mpfr_ptr)SP[0]);
  SP += 1;
}
FCode (p4_mpfr_set_inf)
{
  mpfr_set_inf ((mpfr_ptr)SP[1], (int)SP[0]);
  SP += 2;
}
FCode (p4_mpfr_set_zero)
{
  mpfr_set_zero ((mpfr_ptr)SP[1], (int)SP[0]);
  SP += 2;
}
FCode (p4_mpfr_swap)
{
  mpfr_swap ((mpfr_ptr)SP[1], (mpfr_ptr)SP[0]);
  SP += 2;
}
FCode (p4_mpfr_init_set)
{
  p4cell p4ret = (p4cell)
  mpfr_init_set ((mpfr_ptr)SP[2], (mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_init_set_ui)
{
  p4cell p4ret = (p4cell)
  mpfr_init_set_ui ((mpfr_ptr)SP[2], (unsigned long int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_init_set_si)
{
  p4cell p4ret = (p4cell)
  mpfr_init_set_si ((mpfr_ptr)SP[2], (long int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_init_set_d)
{
  p4cell p4ret = (p4cell)
  mpfr_init_set_d ((mpfr_ptr)SP[1], (double)FP[0], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
  FP += 1;
}
FCode (p4_mpfr_init_set_z)
{
  p4cell p4ret = (p4cell)
  mpfr_init_set_z ((mpfr_ptr)SP[2], (mpz_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_init_set_q)
{
  p4cell p4ret = (p4cell)
  mpfr_init_set_q ((mpfr_ptr)SP[2], (mpq_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_init_set_f)
{
  p4cell p4ret = (p4cell)
  mpfr_init_set_f ((mpfr_ptr)SP[2], (mpf_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_init_set_str)
{
  p4cell p4ret = (p4cell)
  mpfr_init_set_str ((mpfr_ptr)SP[3], (const char *)SP[2], (int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_get_flt)
{
  double p4ret = (double)
  mpfr_get_flt ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *--FP = p4ret;
}
FCode (p4_mpfr_get_d)
{
  double p4ret = (double)
  mpfr_get_d ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *--FP = p4ret;
}
FCode (p4_mpfr_get_si)
{
  p4cell p4ret = (p4cell)
  mpfr_get_si ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_get_ui)
{
  p4ucell p4ret = (p4ucell)
  mpfr_get_ui ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_get_sj)
{
  p4cell p4ret = (p4cell)
  mpfr_get_sj ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_get_uj)
{
  p4ucell p4ret = (p4ucell)
  mpfr_get_uj ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_get_d_2exp)
{
  double p4ret = (double)
  mpfr_get_d_2exp ((long *)SP[2], (mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *--FP = p4ret;
}
FCode (p4_mpfr_get_z_2exp)
{
  p4cell p4ret = (p4cell)
  mpfr_get_z_2exp ((mpz_ptr)SP[1], (mpfr_ptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_get_z)
{
  p4cell p4ret = (p4cell)
  mpfr_get_z ((mpz_ptr)SP[2], (mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_get_f)
{
  p4cell p4ret = (p4cell)
  mpfr_get_f ((mpf_ptr)SP[2], (mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_get_str)
{
  p4ucell p4ret = (p4ucell)
  mpfr_get_str ((char *)SP[5], (mpfr_exp_t *)SP[4], (int)SP[3], (size_t)SP[2], (mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 5;
  *SP = p4ret;
}
FCode (p4_mpfr_free_str)
{
  mpfr_free_str ((char *)SP[0]);
  SP += 1;
}
FCode (p4_mpfr_fits_ulong_p)
{
  p4cell p4ret = (p4cell)
  mpfr_fits_ulong_p ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_fits_slong_p)
{
  p4cell p4ret = (p4cell)
  mpfr_fits_slong_p ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_fits_uint_p)
{
  p4cell p4ret = (p4cell)
  mpfr_fits_uint_p ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_fits_sint_p)
{
  p4cell p4ret = (p4cell)
  mpfr_fits_sint_p ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_fits_ushort_p)
{
  p4cell p4ret = (p4cell)
  mpfr_fits_ushort_p ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_fits_sshort_p)
{
  p4cell p4ret = (p4cell)
  mpfr_fits_sshort_p ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_fits_uintmax_p)
{
  p4cell p4ret = (p4cell)
  mpfr_fits_uintmax_p ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_fits_intmax_p)
{
  p4cell p4ret = (p4cell)
  mpfr_fits_intmax_p ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_add)
{
  p4cell p4ret = (p4cell)
  mpfr_add ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_add_ui)
{
  p4cell p4ret = (p4cell)
  mpfr_add_ui ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (unsigned long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_add_si)
{
  p4cell p4ret = (p4cell)
  mpfr_add_si ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (long int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_add_d)
{
  p4cell p4ret = (p4cell)
  mpfr_add_d ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (double)FP[0], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
  FP += 1;
}
FCode (p4_mpfr_add_z)
{
  p4cell p4ret = (p4cell)
  mpfr_add_z ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpz_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_add_q)
{
  p4cell p4ret = (p4cell)
  mpfr_add_q ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpq_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_sub)
{
  p4cell p4ret = (p4cell)
  mpfr_sub ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_ui_sub)
{
  p4cell p4ret = (p4cell)
  mpfr_ui_sub ((mpfr_ptr)SP[3], (unsigned long)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_sub_ui)
{
  p4cell p4ret = (p4cell)
  mpfr_sub_ui ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (unsigned long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_si_sub)
{
  p4cell p4ret = (p4cell)
  mpfr_si_sub ((mpfr_ptr)SP[3], (long int)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_sub_si)
{
  p4cell p4ret = (p4cell)
  mpfr_sub_si ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (long int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_d_sub)
{
  p4cell p4ret = (p4cell)
  mpfr_d_sub ((mpfr_ptr)SP[2], (double)FP[0], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
  FP += 1;
}
FCode (p4_mpfr_sub_d)
{
  p4cell p4ret = (p4cell)
  mpfr_sub_d ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (double)FP[0], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
  FP += 1;
}
FCode (p4_mpfr_sub_z)
{
  p4cell p4ret = (p4cell)
  mpfr_sub_z ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpz_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_sub_q)
{
  p4cell p4ret = (p4cell)
  mpfr_sub_q ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpq_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_mul)
{
  p4cell p4ret = (p4cell)
  mpfr_mul ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_mul_ui)
{
  p4cell p4ret = (p4cell)
  mpfr_mul_ui ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (unsigned long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_mul_si)
{
  p4cell p4ret = (p4cell)
  mpfr_mul_si ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (long int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_mul_d)
{
  p4cell p4ret = (p4cell)
  mpfr_mul_d ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (double)FP[0], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
  FP += 1;
}
FCode (p4_mpfr_mul_z)
{
  p4cell p4ret = (p4cell)
  mpfr_mul_z ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpz_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_mul_q)
{
  p4cell p4ret = (p4cell)
  mpfr_mul_q ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpq_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_sqr)
{
  p4cell p4ret = (p4cell)
  mpfr_sqr ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_div)
{
  p4cell p4ret = (p4cell)
  mpfr_div ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_ui_div)
{
  p4cell p4ret = (p4cell)
  mpfr_ui_div ((mpfr_ptr)SP[3], (unsigned long)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_div_ui)
{
  p4cell p4ret = (p4cell)
  mpfr_div_ui ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (unsigned long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_si_div)
{
  p4cell p4ret = (p4cell)
  mpfr_si_div ((mpfr_ptr)SP[3], (long int)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_div_si)
{
  p4cell p4ret = (p4cell)
  mpfr_div_si ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (long int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_d_div)
{
  p4cell p4ret = (p4cell)
  mpfr_d_div ((mpfr_ptr)SP[2], (double)FP[0], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
  FP += 1;
}
FCode (p4_mpfr_div_d)
{
  p4cell p4ret = (p4cell)
  mpfr_div_d ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (double)FP[0], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
  FP += 1;
}
FCode (p4_mpfr_div_z)
{
  p4cell p4ret = (p4cell)
  mpfr_div_z ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpz_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_div_q)
{
  p4cell p4ret = (p4cell)
  mpfr_div_q ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpq_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_sqrt)
{
  p4cell p4ret = (p4cell)
  mpfr_sqrt ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_sqrt_ui)
{
  p4cell p4ret = (p4cell)
  mpfr_sqrt_ui ((mpfr_ptr)SP[2], (unsigned long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_rec_sqrt)
{
  p4cell p4ret = (p4cell)
  mpfr_rec_sqrt ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_cbrt)
{
  p4cell p4ret = (p4cell)
  mpfr_cbrt ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_rootn_ui)
{
  p4cell p4ret = (p4cell)
  mpfr_rootn_ui ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (unsigned long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_pow)
{
  p4cell p4ret = (p4cell)
  mpfr_pow ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_pow_ui)
{
  p4cell p4ret = (p4cell)
  mpfr_pow_ui ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (unsigned long int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_pow_si)
{
  p4cell p4ret = (p4cell)
  mpfr_pow_si ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (long int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_pow_z)
{
  p4cell p4ret = (p4cell)
  mpfr_pow_z ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpz_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_ui_pow_ui)
{
  p4cell p4ret = (p4cell)
  mpfr_ui_pow_ui ((mpfr_ptr)SP[3], (unsigned long int)SP[2], (unsigned long int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_ui_pow)
{
  p4cell p4ret = (p4cell)
  mpfr_ui_pow ((mpfr_ptr)SP[3], (unsigned long int)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_neg)
{
  p4cell p4ret = (p4cell)
  mpfr_neg ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_abs)
{
  p4cell p4ret = (p4cell)
  mpfr_abs ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_dim)
{
  p4cell p4ret = (p4cell)
  mpfr_dim ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_mul_2ui)
{
  p4cell p4ret = (p4cell)
  mpfr_mul_2ui ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (unsigned long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_mul_2si)
{
  p4cell p4ret = (p4cell)
  mpfr_mul_2si ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_div_2ui)
{
  p4cell p4ret = (p4cell)
  mpfr_div_2ui ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (unsigned long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_div_2si)
{
  p4cell p4ret = (p4cell)
  mpfr_div_2si ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_cmp)
{
  p4cell p4ret = (p4cell)
  mpfr_cmp ((mpfr_srcptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_cmp_ui)
{
  p4cell p4ret = (p4cell)
  mpfr_cmp_ui ((mpfr_srcptr)SP[1], (unsigned long)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_cmp_si)
{
  p4cell p4ret = (p4cell)
  mpfr_cmp_si ((mpfr_srcptr)SP[1], (long)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_cmp_d)
{
  p4cell p4ret = (p4cell)
  mpfr_cmp_d ((mpfr_srcptr)SP[0], (double)FP[0]);
  *SP = p4ret;
  FP += 1;
}
FCode (p4_mpfr_eq)
{
  p4cell p4ret = (p4cell)
  mpfr_eq ((mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (unsigned long)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_cmp_z)
{
  p4cell p4ret = (p4cell)
  mpfr_cmp_z ((mpfr_srcptr)SP[1], (mpz_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_cmp_q)
{
  p4cell p4ret = (p4cell)
  mpfr_cmp_q ((mpfr_srcptr)SP[1], (mpq_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_cmp_f)
{
  p4cell p4ret = (p4cell)
  mpfr_cmp_f ((mpfr_srcptr)SP[1], (mpf_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_cmp_ui_2exp)
{
  p4cell p4ret = (p4cell)
  mpfr_cmp_ui_2exp ((mpfr_srcptr)SP[2], (unsigned long)SP[1], (mpfr_exp_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_cmp_si_2exp)
{
  p4cell p4ret = (p4cell)
  mpfr_cmp_si_2exp ((mpfr_srcptr)SP[2], (long)SP[1], (mpfr_exp_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_cmpabs)
{
  p4cell p4ret = (p4cell)
  mpfr_cmpabs ((mpfr_srcptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_nan_p)
{
  p4cell p4ret = (p4cell)
  mpfr_nan_p ((mpfr_srcptr)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_inf_p)
{
  p4cell p4ret = (p4cell)
  mpfr_inf_p ((mpfr_srcptr)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_number_p)
{
  p4cell p4ret = (p4cell)
  mpfr_number_p ((mpfr_srcptr)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_zero_p)
{
  p4cell p4ret = (p4cell)
  mpfr_zero_p ((mpfr_srcptr)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_regular_p)
{
  p4cell p4ret = (p4cell)
  mpfr_regular_p ((mpfr_srcptr)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_sgn)
{
  p4cell p4ret = (p4cell)
  mpfr_sgn ((mpfr_srcptr)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_greater_p)
{
  p4cell p4ret = (p4cell)
  mpfr_greater_p ((mpfr_srcptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_greaterequal_p)
{
  p4cell p4ret = (p4cell)
  mpfr_greaterequal_p ((mpfr_srcptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_less_p)
{
  p4cell p4ret = (p4cell)
  mpfr_less_p ((mpfr_srcptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_lessequal_p)
{
  p4cell p4ret = (p4cell)
  mpfr_lessequal_p ((mpfr_srcptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_equal_p)
{
  p4cell p4ret = (p4cell)
  mpfr_equal_p ((mpfr_srcptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_lessgreater_p)
{
  p4cell p4ret = (p4cell)
  mpfr_lessgreater_p ((mpfr_srcptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_unordered_p)
{
  p4cell p4ret = (p4cell)
  mpfr_unordered_p ((mpfr_srcptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_log)
{
  p4cell p4ret = (p4cell)
  mpfr_log ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_log2)
{
  p4cell p4ret = (p4cell)
  mpfr_log2 ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_log10)
{
  p4cell p4ret = (p4cell)
  mpfr_log10 ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_exp)
{
  p4cell p4ret = (p4cell)
  mpfr_exp ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_exp2)
{
  p4cell p4ret = (p4cell)
  mpfr_exp2 ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_exp10)
{
  p4cell p4ret = (p4cell)
  mpfr_exp10 ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_cos)
{
  p4cell p4ret = (p4cell)
  mpfr_cos ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_sin)
{
  p4cell p4ret = (p4cell)
  mpfr_sin ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_tan)
{
  p4cell p4ret = (p4cell)
  mpfr_tan ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_sin_cos)
{
  p4cell p4ret = (p4cell)
  mpfr_sin_cos ((mpfr_ptr)SP[3], (mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_sec)
{
  p4cell p4ret = (p4cell)
  mpfr_sec ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_csc)
{
  p4cell p4ret = (p4cell)
  mpfr_csc ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_cot)
{
  p4cell p4ret = (p4cell)
  mpfr_cot ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_acos)
{
  p4cell p4ret = (p4cell)
  mpfr_acos ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_asin)
{
  p4cell p4ret = (p4cell)
  mpfr_asin ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_atan)
{
  p4cell p4ret = (p4cell)
  mpfr_atan ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_atan2)
{
  p4cell p4ret = (p4cell)
  mpfr_atan2 ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_cosh)
{
  p4cell p4ret = (p4cell)
  mpfr_cosh ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_sinh)
{
  p4cell p4ret = (p4cell)
  mpfr_sinh ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_tanh)
{
  p4cell p4ret = (p4cell)
  mpfr_tanh ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_sinh_cosh)
{
  p4cell p4ret = (p4cell)
  mpfr_sinh_cosh ((mpfr_ptr)SP[3], (mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_sech)
{
  p4cell p4ret = (p4cell)
  mpfr_sech ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_csch)
{
  p4cell p4ret = (p4cell)
  mpfr_csch ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_coth)
{
  p4cell p4ret = (p4cell)
  mpfr_coth ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_acosh)
{
  p4cell p4ret = (p4cell)
  mpfr_acosh ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_asinh)
{
  p4cell p4ret = (p4cell)
  mpfr_asinh ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_atanh)
{
  p4cell p4ret = (p4cell)
  mpfr_atanh ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_fac_ui)
{
  p4cell p4ret = (p4cell)
  mpfr_fac_ui ((mpfr_ptr)SP[2], (unsigned long int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_log1p)
{
  p4cell p4ret = (p4cell)
  mpfr_log1p ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_expm1)
{
  p4cell p4ret = (p4cell)
  mpfr_expm1 ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_eint)
{
  p4cell p4ret = (p4cell)
  mpfr_eint ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_li2)
{
  p4cell p4ret = (p4cell)
  mpfr_li2 ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_gamma)
{
  p4cell p4ret = (p4cell)
  mpfr_gamma ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_lngamma)
{
  p4cell p4ret = (p4cell)
  mpfr_lngamma ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_lgamma)
{
  p4cell p4ret = (p4cell)
  mpfr_lgamma ((mpfr_ptr)SP[3], (int*)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_digamma)
{
  p4cell p4ret = (p4cell)
  mpfr_digamma ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_zeta)
{
  p4cell p4ret = (p4cell)
  mpfr_zeta ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_zeta_ui)
{
  p4cell p4ret = (p4cell)
  mpfr_zeta_ui ((mpfr_ptr)SP[2], (unsigned long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_erf)
{
  p4cell p4ret = (p4cell)
  mpfr_erf ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_erfc)
{
  p4cell p4ret = (p4cell)
  mpfr_erfc ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_j0)
{
  p4cell p4ret = (p4cell)
  mpfr_j0 ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_j1)
{
  p4cell p4ret = (p4cell)
  mpfr_j1 ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_jn)
{
  p4cell p4ret = (p4cell)
  mpfr_jn ((mpfr_ptr)SP[3], (long)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_y0)
{
  p4cell p4ret = (p4cell)
  mpfr_y0 ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_y1)
{
  p4cell p4ret = (p4cell)
  mpfr_y1 ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_yn)
{
  p4cell p4ret = (p4cell)
  mpfr_yn ((mpfr_ptr)SP[3], (long)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_fma)
{
  p4cell p4ret = (p4cell)
  mpfr_fma ((mpfr_ptr)SP[4], (mpfr_srcptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 4;
  *SP = p4ret;
}
FCode (p4_mpfr_fms)
{
  p4cell p4ret = (p4cell)
  mpfr_fms ((mpfr_ptr)SP[4], (mpfr_srcptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 4;
  *SP = p4ret;
}
FCode (p4_mpfr_agm)
{
  p4cell p4ret = (p4cell)
  mpfr_agm ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_hypot)
{
  p4cell p4ret = (p4cell)
  mpfr_hypot ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_ai)
{
  p4cell p4ret = (p4cell)
  mpfr_ai ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_const_log2)
{
  p4cell p4ret = (p4cell)
  mpfr_const_log2 ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_const_pi)
{
  p4cell p4ret = (p4cell)
  mpfr_const_pi ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_const_euler)
{
  p4cell p4ret = (p4cell)
  mpfr_const_euler ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_const_catalan)
{
  p4cell p4ret = (p4cell)
  mpfr_const_catalan ((mpfr_ptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_free_cache)
{
  mpfr_free_cache ();
}
FCode (p4_mpfr_sum)
{
  p4cell p4ret = (p4cell)
  mpfr_sum ((mpfr_ptr)SP[3], (mpfr_ptr *const)SP[2], (unsigned long)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_out_str)
{
  p4ucell p4ret = (p4ucell)
  mpfr_out_str ((FILE*)SP[4], (int)SP[3], (size_t)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 4;
  *SP = p4ret;
}
FCode (p4_mpfr_inp_str)
{
  p4ucell p4ret = (p4ucell)
  mpfr_inp_str ((mpfr_ptr)SP[3], (FILE*)SP[2], (int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}

size_t mpfr_stdout ( int base , size_t n, mpfr_srcptr op, mpfr_rnd_t rnd )
{ size_t numchars = mpfr_out_str (stdout, base, n, op, rnd);
  return numchars; }

FCode (p4_mpfr_stdout)
{
  p4ucell p4ret = (p4ucell)
  mpfr_stdout ((int)SP[3], (size_t)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_dump)
{
  mpfr_dump ((mpfr_srcptr)SP[0]);
  SP += 1;
}
FCode (p4_mpfr_rint)
{
  p4cell p4ret = (p4cell)
  mpfr_rint ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_ceil)
{
  p4cell p4ret = (p4cell)
  mpfr_ceil ((mpfr_ptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_floor)
{
  p4cell p4ret = (p4cell)
  mpfr_floor ((mpfr_ptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_round)
{
  p4cell p4ret = (p4cell)
  mpfr_round ((mpfr_ptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_trunc)
{
  p4cell p4ret = (p4cell)
  mpfr_trunc ((mpfr_ptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_rint_ceil)
{
  p4cell p4ret = (p4cell)
  mpfr_rint_ceil ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_rint_floor)
{
  p4cell p4ret = (p4cell)
  mpfr_rint_floor ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_rint_round)
{
  p4cell p4ret = (p4cell)
  mpfr_rint_round ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_rint_trunc)
{
  p4cell p4ret = (p4cell)
  mpfr_rint_trunc ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_frac)
{
  p4cell p4ret = (p4cell)
  mpfr_frac ((mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_modf)
{
  p4cell p4ret = (p4cell)
  mpfr_modf ((mpfr_ptr)SP[3], (mpfr_ptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_fmod)
{
  p4cell p4ret = (p4cell)
  mpfr_fmod ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_remainder)
{
  p4cell p4ret = (p4cell)
  mpfr_remainder ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_remquo)
{
  p4cell p4ret = (p4cell)
  mpfr_remquo ((mpfr_ptr)SP[4], (long*)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 4;
  *SP = p4ret;
}
FCode (p4_mpfr_integer_p)
{
  p4cell p4ret = (p4cell)
  mpfr_integer_p ((mpfr_srcptr)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_set_default_rounding_mode)
{
  mpfr_set_default_rounding_mode ((mpfr_rnd_t)SP[0]);
  SP += 1;
}
FCode (p4_mpfr_get_default_rounding_mode)
{
  p4cell p4ret = (p4cell)
  mpfr_get_default_rounding_mode ();
  *--SP = p4ret;
}
FCode (p4_mpfr_prec_round)
{
  p4cell p4ret = (p4cell)
  mpfr_prec_round ((mpfr_ptr)SP[2], (mpfr_prec_t)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_can_round)
{
  p4cell p4ret = (p4cell)
  mpfr_can_round ((mpfr_srcptr)SP[4], (mpfr_exp_t)SP[3], (mpfr_rnd_t)SP[2], (mpfr_rnd_t)SP[1], (mpfr_prec_t)SP[0]);
  SP += 4;
  *SP = p4ret;
}
FCode (p4_mpfr_min_prec)
{
  p4cell p4ret = (p4cell)
  mpfr_min_prec ((mpfr_srcptr)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_print_rnd_mode)
{
  p4ucell p4ret = (p4ucell)
  mpfr_print_rnd_mode ((mpfr_rnd_t)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_nexttoward)
{
  mpfr_nexttoward ((mpfr_ptr)SP[1], (mpfr_srcptr)SP[0]);
  SP += 2;
}
FCode (p4_mpfr_nextabove)
{
  mpfr_nextabove ((mpfr_ptr)SP[0]);
  SP += 1;
}
FCode (p4_mpfr_nextbelow)
{
  mpfr_nextbelow ((mpfr_ptr)SP[0]);
  SP += 1;
}
FCode (p4_mpfr_min)
{
  p4cell p4ret = (p4cell)
  mpfr_min ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_max)
{
  p4cell p4ret = (p4cell)
  mpfr_max ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_urandomb)
{
  p4cell p4ret = (p4cell)
  mpfr_urandomb ((mpfr_ptr)SP[1], (void*)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_urandom)
{
  p4cell p4ret = (p4cell)
  mpfr_urandom ((mpfr_ptr)SP[2], (void*)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_get_exp)
{
  p4cell p4ret = (p4cell)
  mpfr_get_exp ((mpfr_srcptr)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_set_exp)
{
  p4cell p4ret = (p4cell)
  mpfr_set_exp ((mpfr_ptr)SP[1], (mpfr_exp_t)SP[0]);
  SP += 1;
  *SP = p4ret;
}
FCode (p4_mpfr_signbit)
{
  p4cell p4ret = (p4cell)
  mpfr_signbit ((mpfr_srcptr)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_setsign)
{
  p4cell p4ret = (p4cell)
  mpfr_setsign ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_copysign)
{
  p4cell p4ret = (p4cell)
  mpfr_copysign ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 3;
  *SP = p4ret;
}
FCode (p4_mpfr_get_version)
{
  p4ucell p4ret = (p4ucell)
  mpfr_get_version ();
  *--SP = p4ret;
}
FCode (p4_mpfr_get_emin)
{
  p4cell p4ret = (p4cell)
  mpfr_get_emin ();
  *--SP = p4ret;
}
FCode (p4_mpfr_get_emax)
{
  p4cell p4ret = (p4cell)
  mpfr_get_emax ();
  *--SP = p4ret;
}
FCode (p4_mpfr_set_emin)
{
  p4cell p4ret = (p4cell)
  mpfr_set_emin ((mpfr_exp_t)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_set_emax)
{
  p4cell p4ret = (p4cell)
  mpfr_set_emax ((mpfr_exp_t)SP[0]);
  *SP = p4ret;
}
FCode (p4_mpfr_get_emin_min)
{
  p4cell p4ret = (p4cell)
  mpfr_get_emin_min ();
  *--SP = p4ret;
}
FCode (p4_mpfr_get_emin_max)
{
  p4cell p4ret = (p4cell)
  mpfr_get_emin_max ();
  *--SP = p4ret;
}
FCode (p4_mpfr_get_emax_min)
{
  p4cell p4ret = (p4cell)
  mpfr_get_emax_min ();
  *--SP = p4ret;
}
FCode (p4_mpfr_get_emax_max)
{
  p4cell p4ret = (p4cell)
  mpfr_get_emax_max ();
  *--SP = p4ret;
}
FCode (p4_mpfr_check_range)
{
  p4cell p4ret = (p4cell)
  mpfr_check_range ((mpfr_ptr)SP[2], (int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_subnormalize)
{
  p4cell p4ret = (p4cell)
  mpfr_subnormalize ((mpfr_ptr)SP[2], (int)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 2;
  *SP = p4ret;
}
FCode (p4_mpfr_clear_underflow)
{
  mpfr_clear_underflow ();
}
FCode (p4_mpfr_clear_overflow)
{
  mpfr_clear_overflow ();
}
FCode (p4_mpfr_clear_nanflag)
{
  mpfr_clear_nanflag ();
}
FCode (p4_mpfr_clear_inexflag)
{
  mpfr_clear_inexflag ();
}
FCode (p4_mpfr_clear_erangeflag)
{
  mpfr_clear_erangeflag ();
}
FCode (p4_mpfr_set_underflow)
{
  mpfr_set_underflow ();
}
FCode (p4_mpfr_set_overflow)
{
  mpfr_set_overflow ();
}
FCode (p4_mpfr_set_nanflag)
{
  mpfr_set_nanflag ();
}
FCode (p4_mpfr_set_inexflag)
{
  mpfr_set_inexflag ();
}
FCode (p4_mpfr_set_erangeflag)
{
  mpfr_set_erangeflag ();
}
FCode (p4_mpfr_clear_flags)
{
  mpfr_clear_flags ();
}
FCode (p4_mpfr_underflow_p)
{
  p4cell p4ret = (p4cell)
  mpfr_underflow_p ();
  *--SP = p4ret;
}
FCode (p4_mpfr_overflow_p)
{
  p4cell p4ret = (p4cell)
  mpfr_overflow_p ();
  *--SP = p4ret;
}
FCode (p4_mpfr_nanflag_p)
{
  p4cell p4ret = (p4cell)
  mpfr_nanflag_p ();
  *--SP = p4ret;
}
FCode (p4_mpfr_inexflag_p)
{
  p4cell p4ret = (p4cell)
  mpfr_inexflag_p ();
  *--SP = p4ret;
}
FCode (p4_mpfr_erangeflag_p)
{
  p4cell p4ret = (p4cell)
  mpfr_erangeflag_p ();
  *--SP = p4ret;
}
FCode (p4_mpfr_reldiff)
{
  mpfr_reldiff ((mpfr_ptr)SP[3], (mpfr_srcptr)SP[2], (mpfr_srcptr)SP[1], (mpfr_rnd_t)SP[0]);
  SP += 4;
}

P4_LISTWORDS (mpfr) = 
{
P4_NEED ("floating-ext"),
P4_FXco ("mpfr_init",    p4_mpfr_init),
P4_FXco ("mpfr_init2",    p4_mpfr_init2),
P4_FXco ("mpfr_clear",    p4_mpfr_clear),
P4_FXco ("mpfr_set_default_prec",    p4_mpfr_set_default_prec),
P4_FXco ("mpfr_get_default_prec",    p4_mpfr_get_default_prec),
P4_FXco ("mpfr_set_prec",    p4_mpfr_set_prec),
P4_FXco ("mpfr_get_prec",    p4_mpfr_get_prec),
P4_FXco ("mpfr_set",    p4_mpfr_set),
P4_FXco ("mpfr_set_ui",    p4_mpfr_set_ui),
P4_FXco ("mpfr_set_si",    p4_mpfr_set_si),
P4_FXco ("mpfr_set_uj",    p4_mpfr_set_uj),
P4_FXco ("mpfr_set_sj",    p4_mpfr_set_sj),
P4_FXco ("mpfr_set_flt",    p4_mpfr_set_flt),
P4_FXco ("mpfr_set_d",    p4_mpfr_set_d),
P4_FXco ("mpfr_set_z",    p4_mpfr_set_z),
P4_FXco ("mpfr_set_q",    p4_mpfr_set_q),
P4_FXco ("mpfr_set_f",    p4_mpfr_set_f),
P4_FXco ("mpfr_set_ui_2exp",    p4_mpfr_set_ui_2exp),
P4_FXco ("mpfr_set_si_2exp",    p4_mpfr_set_si_2exp),
P4_FXco ("mpfr_set_uj_2exp",    p4_mpfr_set_uj_2exp),
P4_FXco ("mpfr_set_sj_2exp",    p4_mpfr_set_sj_2exp),
P4_FXco ("mpfr_set_z_2exp",    p4_mpfr_set_z_2exp),
P4_FXco ("mpfr_set_str",    p4_mpfr_set_str),
P4_FXco ("mpfr_strtofr",    p4_mpfr_strtofr),
P4_FXco ("mpfr_set_nan",    p4_mpfr_set_nan),
P4_FXco ("mpfr_set_inf",    p4_mpfr_set_inf),
P4_FXco ("mpfr_set_zero",    p4_mpfr_set_zero),
P4_FXco ("mpfr_swap",    p4_mpfr_swap),
P4_FXco ("mpfr_init_set",    p4_mpfr_init_set),
P4_FXco ("mpfr_init_set_ui",    p4_mpfr_init_set_ui),
P4_FXco ("mpfr_init_set_si",    p4_mpfr_init_set_si),
P4_FXco ("mpfr_init_set_d",    p4_mpfr_init_set_d),
P4_FXco ("mpfr_init_set_z",    p4_mpfr_init_set_z),
P4_FXco ("mpfr_init_set_q",    p4_mpfr_init_set_q),
P4_FXco ("mpfr_init_set_f",    p4_mpfr_init_set_f),
P4_FXco ("mpfr_init_set_str",    p4_mpfr_init_set_str),
P4_FXco ("mpfr_get_flt",    p4_mpfr_get_flt),
P4_FXco ("mpfr_get_d",    p4_mpfr_get_d),
P4_FXco ("mpfr_get_si",    p4_mpfr_get_si),
P4_FXco ("mpfr_get_ui",    p4_mpfr_get_ui),
P4_FXco ("mpfr_get_sj",    p4_mpfr_get_sj),
P4_FXco ("mpfr_get_uj",    p4_mpfr_get_uj),
P4_FXco ("mpfr_get_d_2exp",    p4_mpfr_get_d_2exp),
P4_FXco ("mpfr_get_z_2exp",    p4_mpfr_get_z_2exp),
P4_FXco ("mpfr_get_z",    p4_mpfr_get_z),
P4_FXco ("mpfr_get_f",    p4_mpfr_get_f),
P4_FXco ("mpfr_get_str",    p4_mpfr_get_str),
P4_FXco ("mpfr_free_str",    p4_mpfr_free_str),
P4_FXco ("mpfr_fits_ulong_p",    p4_mpfr_fits_ulong_p),
P4_FXco ("mpfr_fits_slong_p",    p4_mpfr_fits_slong_p),
P4_FXco ("mpfr_fits_uint_p",    p4_mpfr_fits_uint_p),
P4_FXco ("mpfr_fits_sint_p",    p4_mpfr_fits_sint_p),
P4_FXco ("mpfr_fits_ushort_p",    p4_mpfr_fits_ushort_p),
P4_FXco ("mpfr_fits_sshort_p",    p4_mpfr_fits_sshort_p),
P4_FXco ("mpfr_fits_uintmax_p",    p4_mpfr_fits_uintmax_p),
P4_FXco ("mpfr_fits_intmax_p",    p4_mpfr_fits_intmax_p),
P4_FXco ("mpfr_add",    p4_mpfr_add),
P4_FXco ("mpfr_add_ui",    p4_mpfr_add_ui),
P4_FXco ("mpfr_add_si",    p4_mpfr_add_si),
P4_FXco ("mpfr_add_d",    p4_mpfr_add_d),
P4_FXco ("mpfr_add_z",    p4_mpfr_add_z),
P4_FXco ("mpfr_add_q",    p4_mpfr_add_q),
P4_FXco ("mpfr_sub",    p4_mpfr_sub),
P4_FXco ("mpfr_ui_sub",    p4_mpfr_ui_sub),
P4_FXco ("mpfr_sub_ui",    p4_mpfr_sub_ui),
P4_FXco ("mpfr_si_sub",    p4_mpfr_si_sub),
P4_FXco ("mpfr_sub_si",    p4_mpfr_sub_si),
P4_FXco ("mpfr_d_sub",    p4_mpfr_d_sub),
P4_FXco ("mpfr_sub_d",    p4_mpfr_sub_d),
P4_FXco ("mpfr_sub_z",    p4_mpfr_sub_z),
P4_FXco ("mpfr_sub_q",    p4_mpfr_sub_q),
P4_FXco ("mpfr_mul",    p4_mpfr_mul),
P4_FXco ("mpfr_mul_ui",    p4_mpfr_mul_ui),
P4_FXco ("mpfr_mul_si",    p4_mpfr_mul_si),
P4_FXco ("mpfr_mul_d",    p4_mpfr_mul_d),
P4_FXco ("mpfr_mul_z",    p4_mpfr_mul_z),
P4_FXco ("mpfr_mul_q",    p4_mpfr_mul_q),
P4_FXco ("mpfr_sqr",    p4_mpfr_sqr),
P4_FXco ("mpfr_div",    p4_mpfr_div),
P4_FXco ("mpfr_ui_div",    p4_mpfr_ui_div),
P4_FXco ("mpfr_div_ui",    p4_mpfr_div_ui),
P4_FXco ("mpfr_si_div",    p4_mpfr_si_div),
P4_FXco ("mpfr_div_si",    p4_mpfr_div_si),
P4_FXco ("mpfr_d_div",    p4_mpfr_d_div),
P4_FXco ("mpfr_div_d",    p4_mpfr_div_d),
P4_FXco ("mpfr_div_z",    p4_mpfr_div_z),
P4_FXco ("mpfr_div_q",    p4_mpfr_div_q),
P4_FXco ("mpfr_sqrt",    p4_mpfr_sqrt),
P4_FXco ("mpfr_sqrt_ui",    p4_mpfr_sqrt_ui),
P4_FXco ("mpfr_rec_sqrt",    p4_mpfr_rec_sqrt),
P4_FXco ("mpfr_cbrt",    p4_mpfr_cbrt),
P4_FXco ("mpfr_rootn_ui",    p4_mpfr_rootn_ui),
P4_FXco ("mpfr_pow",    p4_mpfr_pow),
P4_FXco ("mpfr_pow_ui",    p4_mpfr_pow_ui),
P4_FXco ("mpfr_pow_si",    p4_mpfr_pow_si),
P4_FXco ("mpfr_pow_z",    p4_mpfr_pow_z),
P4_FXco ("mpfr_ui_pow_ui",    p4_mpfr_ui_pow_ui),
P4_FXco ("mpfr_ui_pow",    p4_mpfr_ui_pow),
P4_FXco ("mpfr_neg",    p4_mpfr_neg),
P4_FXco ("mpfr_abs",    p4_mpfr_abs),
P4_FXco ("mpfr_dim",    p4_mpfr_dim),
P4_FXco ("mpfr_mul_2ui",    p4_mpfr_mul_2ui),
P4_FXco ("mpfr_mul_2si",    p4_mpfr_mul_2si),
P4_FXco ("mpfr_div_2ui",    p4_mpfr_div_2ui),
P4_FXco ("mpfr_div_2si",    p4_mpfr_div_2si),
P4_FXco ("mpfr_cmp",    p4_mpfr_cmp),
P4_FXco ("mpfr_cmp_ui",    p4_mpfr_cmp_ui),
P4_FXco ("mpfr_cmp_si",    p4_mpfr_cmp_si),
P4_FXco ("mpfr_cmp_d",    p4_mpfr_cmp_d),
P4_FXco ("mpfr_eq",    p4_mpfr_eq),
P4_FXco ("mpfr_cmp_z",    p4_mpfr_cmp_z),
P4_FXco ("mpfr_cmp_q",    p4_mpfr_cmp_q),
P4_FXco ("mpfr_cmp_f",    p4_mpfr_cmp_f),
P4_FXco ("mpfr_cmp_ui_2exp",    p4_mpfr_cmp_ui_2exp),
P4_FXco ("mpfr_cmp_si_2exp",    p4_mpfr_cmp_si_2exp),
P4_FXco ("mpfr_cmpabs",    p4_mpfr_cmpabs),
P4_FXco ("mpfr_nan_p",    p4_mpfr_nan_p),
P4_FXco ("mpfr_inf_p",    p4_mpfr_inf_p),
P4_FXco ("mpfr_number_p",    p4_mpfr_number_p),
P4_FXco ("mpfr_zero_p",    p4_mpfr_zero_p),
P4_FXco ("mpfr_regular_p",    p4_mpfr_regular_p),
P4_FXco ("mpfr_sgn",    p4_mpfr_sgn),
P4_FXco ("mpfr_greater_p",    p4_mpfr_greater_p),
P4_FXco ("mpfr_greaterequal_p",    p4_mpfr_greaterequal_p),
P4_FXco ("mpfr_less_p",    p4_mpfr_less_p),
P4_FXco ("mpfr_lessequal_p",    p4_mpfr_lessequal_p),
P4_FXco ("mpfr_equal_p",    p4_mpfr_equal_p),
P4_FXco ("mpfr_lessgreater_p",    p4_mpfr_lessgreater_p),
P4_FXco ("mpfr_unordered_p",    p4_mpfr_unordered_p),
P4_FXco ("mpfr_log",    p4_mpfr_log),
P4_FXco ("mpfr_log2",    p4_mpfr_log2),
P4_FXco ("mpfr_log10",    p4_mpfr_log10),
P4_FXco ("mpfr_exp",    p4_mpfr_exp),
P4_FXco ("mpfr_exp2",    p4_mpfr_exp2),
P4_FXco ("mpfr_exp10",    p4_mpfr_exp10),
P4_FXco ("mpfr_cos",    p4_mpfr_cos),
P4_FXco ("mpfr_sin",    p4_mpfr_sin),
P4_FXco ("mpfr_tan",    p4_mpfr_tan),
P4_FXco ("mpfr_sin_cos",    p4_mpfr_sin_cos),
P4_FXco ("mpfr_sec",    p4_mpfr_sec),
P4_FXco ("mpfr_csc",    p4_mpfr_csc),
P4_FXco ("mpfr_cot",    p4_mpfr_cot),
P4_FXco ("mpfr_acos",    p4_mpfr_acos),
P4_FXco ("mpfr_asin",    p4_mpfr_asin),
P4_FXco ("mpfr_atan",    p4_mpfr_atan),
P4_FXco ("mpfr_atan2",    p4_mpfr_atan2),
P4_FXco ("mpfr_cosh",    p4_mpfr_cosh),
P4_FXco ("mpfr_sinh",    p4_mpfr_sinh),
P4_FXco ("mpfr_tanh",    p4_mpfr_tanh),
P4_FXco ("mpfr_sinh_cosh",    p4_mpfr_sinh_cosh),
P4_FXco ("mpfr_sech",    p4_mpfr_sech),
P4_FXco ("mpfr_csch",    p4_mpfr_csch),
P4_FXco ("mpfr_coth",    p4_mpfr_coth),
P4_FXco ("mpfr_acosh",    p4_mpfr_acosh),
P4_FXco ("mpfr_asinh",    p4_mpfr_asinh),
P4_FXco ("mpfr_atanh",    p4_mpfr_atanh),
P4_FXco ("mpfr_fac_ui",    p4_mpfr_fac_ui),
P4_FXco ("mpfr_log1p",    p4_mpfr_log1p),
P4_FXco ("mpfr_expm1",    p4_mpfr_expm1),
P4_FXco ("mpfr_eint",    p4_mpfr_eint),
P4_FXco ("mpfr_li2",    p4_mpfr_li2),
P4_FXco ("mpfr_gamma",    p4_mpfr_gamma),
P4_FXco ("mpfr_lngamma",    p4_mpfr_lngamma),
P4_FXco ("mpfr_lgamma",    p4_mpfr_lgamma),
P4_FXco ("mpfr_digamma",    p4_mpfr_digamma),
P4_FXco ("mpfr_zeta",    p4_mpfr_zeta),
P4_FXco ("mpfr_zeta_ui",    p4_mpfr_zeta_ui),
P4_FXco ("mpfr_erf",    p4_mpfr_erf),
P4_FXco ("mpfr_erfc",    p4_mpfr_erfc),
P4_FXco ("mpfr_j0",    p4_mpfr_j0),
P4_FXco ("mpfr_j1",    p4_mpfr_j1),
P4_FXco ("mpfr_jn",    p4_mpfr_jn),
P4_FXco ("mpfr_y0",    p4_mpfr_y0),
P4_FXco ("mpfr_y1",    p4_mpfr_y1),
P4_FXco ("mpfr_yn",    p4_mpfr_yn),
P4_FXco ("mpfr_fma",    p4_mpfr_fma),
P4_FXco ("mpfr_fms",    p4_mpfr_fms),
P4_FXco ("mpfr_agm",    p4_mpfr_agm),
P4_FXco ("mpfr_hypot",    p4_mpfr_hypot),
P4_FXco ("mpfr_ai",    p4_mpfr_ai),
P4_FXco ("mpfr_const_log2",    p4_mpfr_const_log2),
P4_FXco ("mpfr_const_pi",    p4_mpfr_const_pi),
P4_FXco ("mpfr_const_euler",    p4_mpfr_const_euler),
P4_FXco ("mpfr_const_catalan",    p4_mpfr_const_catalan),
P4_FXco ("mpfr_free_cache",    p4_mpfr_free_cache),
P4_FXco ("mpfr_sum",    p4_mpfr_sum),
P4_FXco ("mpfr_out_str",    p4_mpfr_out_str),
P4_FXco ("mpfr_inp_str",    p4_mpfr_inp_str),
P4_FXco ("mpfr_stdout",    p4_mpfr_stdout),
P4_FXco ("mpfr_dump",    p4_mpfr_dump),
P4_FXco ("mpfr_rint",    p4_mpfr_rint),
P4_FXco ("mpfr_ceil",    p4_mpfr_ceil),
P4_FXco ("mpfr_floor",    p4_mpfr_floor),
P4_FXco ("mpfr_round",    p4_mpfr_round),
P4_FXco ("mpfr_trunc",    p4_mpfr_trunc),
P4_FXco ("mpfr_rint_ceil",    p4_mpfr_rint_ceil),
P4_FXco ("mpfr_rint_floor",    p4_mpfr_rint_floor),
P4_FXco ("mpfr_rint_round",    p4_mpfr_rint_round),
P4_FXco ("mpfr_rint_trunc",    p4_mpfr_rint_trunc),
P4_FXco ("mpfr_frac",    p4_mpfr_frac),
P4_FXco ("mpfr_modf",    p4_mpfr_modf),
P4_FXco ("mpfr_fmod",    p4_mpfr_fmod),
P4_FXco ("mpfr_remainder",    p4_mpfr_remainder),
P4_FXco ("mpfr_remquo",    p4_mpfr_remquo),
P4_FXco ("mpfr_integer_p",    p4_mpfr_integer_p),
P4_FXco ("mpfr_set_default_rounding_mode",    p4_mpfr_set_default_rounding_mode),
P4_FXco ("mpfr_get_default_rounding_mode",    p4_mpfr_get_default_rounding_mode),
P4_FXco ("mpfr_prec_round",    p4_mpfr_prec_round),
P4_FXco ("mpfr_can_round",    p4_mpfr_can_round),
P4_FXco ("mpfr_min_prec",    p4_mpfr_min_prec),
P4_FXco ("mpfr_print_rnd_mode",    p4_mpfr_print_rnd_mode),
P4_FXco ("mpfr_nexttoward",    p4_mpfr_nexttoward),
P4_FXco ("mpfr_nextabove",    p4_mpfr_nextabove),
P4_FXco ("mpfr_nextbelow",    p4_mpfr_nextbelow),
P4_FXco ("mpfr_min",    p4_mpfr_min),
P4_FXco ("mpfr_max",    p4_mpfr_max),
P4_FXco ("mpfr_urandomb",    p4_mpfr_urandomb),
P4_FXco ("mpfr_urandom",    p4_mpfr_urandom),
P4_FXco ("mpfr_get_exp",    p4_mpfr_get_exp),
P4_FXco ("mpfr_set_exp",    p4_mpfr_set_exp),
P4_FXco ("mpfr_signbit",    p4_mpfr_signbit),
P4_FXco ("mpfr_setsign",    p4_mpfr_setsign),
P4_FXco ("mpfr_copysign",    p4_mpfr_copysign),
P4_FXco ("mpfr_get_version",    p4_mpfr_get_version),
P4_OCoN ("MPFR_VERSION_MAJOR",    MPFR_VERSION_MAJOR),
P4_OCoN ("MPFR_VERSION_MINOR",    MPFR_VERSION_MINOR),
P4_OCoN ("MPFR_VERSION_PATCHLEVEL",    MPFR_VERSION_PATCHLEVEL),
P4_FXco ("mpfr_get_emin",    p4_mpfr_get_emin),
P4_FXco ("mpfr_get_emax",    p4_mpfr_get_emax),
P4_FXco ("mpfr_set_emin",    p4_mpfr_set_emin),
P4_FXco ("mpfr_set_emax",    p4_mpfr_set_emax),
P4_FXco ("mpfr_get_emin_min",    p4_mpfr_get_emin_min),
P4_FXco ("mpfr_get_emin_max",    p4_mpfr_get_emin_max),
P4_FXco ("mpfr_get_emax_min",    p4_mpfr_get_emax_min),
P4_FXco ("mpfr_get_emax_max",    p4_mpfr_get_emax_max),
P4_FXco ("mpfr_check_range",    p4_mpfr_check_range),
P4_FXco ("mpfr_subnormalize",    p4_mpfr_subnormalize),
P4_FXco ("mpfr_clear_underflow",    p4_mpfr_clear_underflow),
P4_FXco ("mpfr_clear_overflow",    p4_mpfr_clear_overflow),
P4_FXco ("mpfr_clear_nanflag",    p4_mpfr_clear_nanflag),
P4_FXco ("mpfr_clear_inexflag",    p4_mpfr_clear_inexflag),
P4_FXco ("mpfr_clear_erangeflag",    p4_mpfr_clear_erangeflag),
P4_FXco ("mpfr_set_underflow",    p4_mpfr_set_underflow),
P4_FXco ("mpfr_set_overflow",    p4_mpfr_set_overflow),
P4_FXco ("mpfr_set_nanflag",    p4_mpfr_set_nanflag),
P4_FXco ("mpfr_set_inexflag",    p4_mpfr_set_inexflag),
P4_FXco ("mpfr_set_erangeflag",    p4_mpfr_set_erangeflag),
P4_FXco ("mpfr_clear_flags",    p4_mpfr_clear_flags),
P4_FXco ("mpfr_underflow_p",    p4_mpfr_underflow_p),
P4_FXco ("mpfr_overflow_p",    p4_mpfr_overflow_p),
P4_FXco ("mpfr_nanflag_p",    p4_mpfr_nanflag_p),
P4_FXco ("mpfr_inexflag_p",    p4_mpfr_inexflag_p),
P4_FXco ("mpfr_erangeflag_p",    p4_mpfr_erangeflag_p),
P4_FXco ("mpfr_reldiff",    p4_mpfr_reldiff),
P4_OCoN ("/MPFR",    sizeof (mpfr_t)),
P4_OCoN ("MPFR_PREC_MIN",    MPFR_PREC_MIN),
P4_OCoN ("MPFR_PREC_MAX",    MPFR_PREC_MAX),
P4_OCoN ("MPFR_EMAX_DEFAULT",    MPFR_EMAX_DEFAULT),
P4_OCoN ("MPFR_EMIN_DEFAULT",    MPFR_EMIN_DEFAULT),
P4_OCoN ("MPFR_RNDN",    MPFR_RNDN),
P4_OCoN ("MPFR_RNDZ",    MPFR_RNDZ),
P4_OCoN ("MPFR_RNDU",    MPFR_RNDU),
P4_OCoN ("MPFR_RNDD",    MPFR_RNDD),
P4_OCoN ("MPFR_RNDA",    MPFR_RNDA),
P4_OCoN ("MPFR_RNDF",    MPFR_RNDF),
P4_OCoN ("MPFR_RNDNA",    MPFR_RNDNA),
};
P4_COUNTWORDS (mpfr, "mpfr bindings");