#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 r43488 = x;
        float r43489 = y;
        float r43490 = z;
        float r43491 = r43490 + r43488;
        float r43492 = r43489 * r43491;
        float r43493 = r43488 + r43492;
        return r43493;
}

double f_id(double x, double y, double z) {
        double r43494 = x;
        double r43495 = y;
        double r43496 = z;
        double r43497 = r43496 + r43494;
        double r43498 = r43495 * r43497;
        double r43499 = r43494 + r43498;
        return r43499;
}


double f_of(float x, float y, float z) {
        float r43500 = x;
        float r43501 = y;
        float r43502 = z;
        float r43503 = r43502 + r43500;
        float r43504 = r43501 * r43503;
        float r43505 = r43500 + r43504;
        return r43505;
}

double f_od(double x, double y, double z) {
        double r43506 = x;
        double r43507 = y;
        double r43508 = z;
        double r43509 = r43508 + r43506;
        double r43510 = r43507 * r43509;
        double r43511 = r43506 + r43510;
        return r43511;
}

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 r43512, r43513, r43514, r43515, r43516, r43517;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r43512);
        mpfr_init(r43513);
        mpfr_init(r43514);
        mpfr_init(r43515);
        mpfr_init(r43516);
        mpfr_init(r43517);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r43512, x, MPFR_RNDN);
        mpfr_set_d(r43513, y, MPFR_RNDN);
        mpfr_set_d(r43514, z, MPFR_RNDN);
        mpfr_add(r43515, r43514, r43512, MPFR_RNDN);
        mpfr_mul(r43516, r43513, r43515, MPFR_RNDN);
        mpfr_add(r43517, r43512, r43516, MPFR_RNDN);
        return mpfr_get_d(r43517, MPFR_RNDN);
}

static mpfr_t r43518, r43519, r43520, r43521, r43522, r43523;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r43518);
        mpfr_init(r43519);
        mpfr_init(r43520);
        mpfr_init(r43521);
        mpfr_init(r43522);
        mpfr_init(r43523);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r43518, x, MPFR_RNDN);
        mpfr_set_d(r43519, y, MPFR_RNDN);
        mpfr_set_d(r43520, z, MPFR_RNDN);
        mpfr_add(r43521, r43520, r43518, MPFR_RNDN);
        mpfr_mul(r43522, r43519, r43521, MPFR_RNDN);
        mpfr_add(r43523, r43518, r43522, MPFR_RNDN);
        return mpfr_get_d(r43523, MPFR_RNDN);
}

static mpfr_t r43524, r43525, r43526, r43527, r43528, r43529;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r43524);
        mpfr_init(r43525);
        mpfr_init(r43526);
        mpfr_init(r43527);
        mpfr_init(r43528);
        mpfr_init(r43529);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r43524, x, MPFR_RNDN);
        mpfr_set_d(r43525, y, MPFR_RNDN);
        mpfr_set_d(r43526, z, MPFR_RNDN);
        mpfr_add(r43527, r43526, r43524, MPFR_RNDN);
        mpfr_mul(r43528, r43525, r43527, MPFR_RNDN);
        mpfr_add(r43529, r43524, r43528, MPFR_RNDN);
        return mpfr_get_d(r43529, MPFR_RNDN);
}

