#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Main:bigenough2 from A";

double f_if(float x, float y, float z) {
        float r29127 = x;
        float r29128 = y;
        float r29129 = z;
        float r29130 = r29129 + r29127;
        float r29131 = r29128 * r29130;
        float r29132 = r29127 + r29131;
        return r29132;
}

double f_id(double x, double y, double z) {
        double r29133 = x;
        double r29134 = y;
        double r29135 = z;
        double r29136 = r29135 + r29133;
        double r29137 = r29134 * r29136;
        double r29138 = r29133 + r29137;
        return r29138;
}


double f_of(float x, float y, float z) {
        float r29139 = x;
        float r29140 = y;
        float r29141 = z;
        float r29142 = r29141 + r29139;
        float r29143 = r29140 * r29142;
        float r29144 = r29139 + r29143;
        return r29144;
}

double f_od(double x, double y, double z) {
        double r29145 = x;
        double r29146 = y;
        double r29147 = z;
        double r29148 = r29147 + r29145;
        double r29149 = r29146 * r29148;
        double r29150 = r29145 + r29149;
        return r29150;
}

void mpfr_fmod2(mpfr_t r, mpfr_t n, mpfr_t d, mpfr_rnd_t rmd) {
        mpfr_fmod(r, n, d, rmd);
        if (mpfr_cmp_ui(r, 0) < 0) mpfr_add(r, r, d, rmd);
}


static mpfr_t r29151, r29152, r29153, r29154, r29155, r29156;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29151);
        mpfr_init(r29152);
        mpfr_init(r29153);
        mpfr_init(r29154);
        mpfr_init(r29155);
        mpfr_init(r29156);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r29151, x, MPFR_RNDN);
        mpfr_set_d(r29152, y, MPFR_RNDN);
        mpfr_set_d(r29153, z, MPFR_RNDN);
        mpfr_add(r29154, r29153, r29151, MPFR_RNDN);
        mpfr_mul(r29155, r29152, r29154, MPFR_RNDN);
        mpfr_add(r29156, r29151, r29155, MPFR_RNDN);
        return mpfr_get_d(r29156, MPFR_RNDN);
}

static mpfr_t r29157, r29158, r29159, r29160, r29161, r29162;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29157);
        mpfr_init(r29158);
        mpfr_init(r29159);
        mpfr_init(r29160);
        mpfr_init(r29161);
        mpfr_init(r29162);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r29157, x, MPFR_RNDN);
        mpfr_set_d(r29158, y, MPFR_RNDN);
        mpfr_set_d(r29159, z, MPFR_RNDN);
        mpfr_add(r29160, r29159, r29157, MPFR_RNDN);
        mpfr_mul(r29161, r29158, r29160, MPFR_RNDN);
        mpfr_add(r29162, r29157, r29161, MPFR_RNDN);
        return mpfr_get_d(r29162, MPFR_RNDN);
}

static mpfr_t r29163, r29164, r29165, r29166, r29167, r29168;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29163);
        mpfr_init(r29164);
        mpfr_init(r29165);
        mpfr_init(r29166);
        mpfr_init(r29167);
        mpfr_init(r29168);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r29163, x, MPFR_RNDN);
        mpfr_set_d(r29164, y, MPFR_RNDN);
        mpfr_set_d(r29165, z, MPFR_RNDN);
        mpfr_add(r29166, r29165, r29163, MPFR_RNDN);
        mpfr_mul(r29167, r29164, r29166, MPFR_RNDN);
        mpfr_add(r29168, r29163, r29167, MPFR_RNDN);
        return mpfr_get_d(r29168, MPFR_RNDN);
}

