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

char *name = "Main:bigenough3 from C";

double f_if(float x) {
        float r43442 = x;
        float r43443 = 1.0f;
        float r43444 = r43442 + r43443;
        float r43445 = sqrt(r43444);
        float r43446 = sqrt(r43442);
        float r43447 = r43445 - r43446;
        return r43447;
}

double f_id(double x) {
        double r43448 = x;
        double r43449 = 1.0;
        double r43450 = r43448 + r43449;
        double r43451 = sqrt(r43450);
        double r43452 = sqrt(r43448);
        double r43453 = r43451 - r43452;
        return r43453;
}


double f_of(float x) {
        float r43454 = 1.0f;
        float r43455 = x;
        float r43456 = r43455 + r43454;
        float r43457 = sqrt(r43456);
        float r43458 = sqrt(r43455);
        float r43459 = r43457 + r43458;
        float r43460 = r43454 / r43459;
        return r43460;
}

double f_od(double x) {
        double r43461 = 1.0;
        double r43462 = x;
        double r43463 = r43462 + r43461;
        double r43464 = sqrt(r43463);
        double r43465 = sqrt(r43462);
        double r43466 = r43464 + r43465;
        double r43467 = r43461 / r43466;
        return r43467;
}

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 r43468, r43469, r43470, r43471, r43472, r43473;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r43468);
        mpfr_init_set_str(r43469, "1.0", 10, MPFR_RNDN);
        mpfr_init(r43470);
        mpfr_init(r43471);
        mpfr_init(r43472);
        mpfr_init(r43473);
}

double f_im(double x) {
        mpfr_set_d(r43468, x, MPFR_RNDN);
        ;
        mpfr_add(r43470, r43468, r43469, MPFR_RNDN);
        mpfr_sqrt(r43471, r43470, MPFR_RNDN);
        mpfr_sqrt(r43472, r43468, MPFR_RNDN);
        mpfr_sub(r43473, r43471, r43472, MPFR_RNDN);
        return mpfr_get_d(r43473, MPFR_RNDN);
}

static mpfr_t r43474, r43475, r43476, r43477, r43478, r43479, r43480;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r43474, "1.0", 10, MPFR_RNDN);
        mpfr_init(r43475);
        mpfr_init(r43476);
        mpfr_init(r43477);
        mpfr_init(r43478);
        mpfr_init(r43479);
        mpfr_init(r43480);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r43475, x, MPFR_RNDN);
        mpfr_add(r43476, r43475, r43474, MPFR_RNDN);
        mpfr_sqrt(r43477, r43476, MPFR_RNDN);
        mpfr_sqrt(r43478, r43475, MPFR_RNDN);
        mpfr_add(r43479, r43477, r43478, MPFR_RNDN);
        mpfr_div(r43480, r43474, r43479, MPFR_RNDN);
        return mpfr_get_d(r43480, MPFR_RNDN);
}

static mpfr_t r43481, r43482, r43483, r43484, r43485, r43486, r43487;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r43481, "1.0", 10, MPFR_RNDN);
        mpfr_init(r43482);
        mpfr_init(r43483);
        mpfr_init(r43484);
        mpfr_init(r43485);
        mpfr_init(r43486);
        mpfr_init(r43487);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r43482, x, MPFR_RNDN);
        mpfr_add(r43483, r43482, r43481, MPFR_RNDN);
        mpfr_sqrt(r43484, r43483, MPFR_RNDN);
        mpfr_sqrt(r43485, r43482, MPFR_RNDN);
        mpfr_add(r43486, r43484, r43485, MPFR_RNDN);
        mpfr_div(r43487, r43481, r43486, MPFR_RNDN);
        return mpfr_get_d(r43487, MPFR_RNDN);
}

