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

char *name = "2sqrt (example 3.1)";

double f_if(float x) {
        float r4876399 = x;
        float r4876400 = 1.0f;
        float r4876401 = r4876399 + r4876400;
        float r4876402 = sqrt(r4876401);
        float r4876403 = sqrt(r4876399);
        float r4876404 = r4876402 - r4876403;
        return r4876404;
}

double f_id(double x) {
        double r4876405 = x;
        double r4876406 = 1.0;
        double r4876407 = r4876405 + r4876406;
        double r4876408 = sqrt(r4876407);
        double r4876409 = sqrt(r4876405);
        double r4876410 = r4876408 - r4876409;
        return r4876410;
}


double f_of(float x) {
        float r4876411 = 1.0f;
        float r4876412 = x;
        float r4876413 = r4876412 + r4876411;
        float r4876414 = sqrt(r4876413);
        float r4876415 = sqrt(r4876412);
        float r4876416 = r4876414 + r4876415;
        float r4876417 = r4876411 / r4876416;
        return r4876417;
}

double f_od(double x) {
        double r4876418 = 1.0;
        double r4876419 = x;
        double r4876420 = r4876419 + r4876418;
        double r4876421 = sqrt(r4876420);
        double r4876422 = sqrt(r4876419);
        double r4876423 = r4876421 + r4876422;
        double r4876424 = r4876418 / r4876423;
        return r4876424;
}

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 r4876425, r4876426, r4876427, r4876428, r4876429, r4876430;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r4876425);
        mpfr_init_set_str(r4876426, "1", 10, MPFR_RNDN);
        mpfr_init(r4876427);
        mpfr_init(r4876428);
        mpfr_init(r4876429);
        mpfr_init(r4876430);
}

double f_im(double x) {
        mpfr_set_d(r4876425, x, MPFR_RNDN);
        ;
        mpfr_add(r4876427, r4876425, r4876426, MPFR_RNDN);
        mpfr_sqrt(r4876428, r4876427, MPFR_RNDN);
        mpfr_sqrt(r4876429, r4876425, MPFR_RNDN);
        mpfr_sub(r4876430, r4876428, r4876429, MPFR_RNDN);
        return mpfr_get_d(r4876430, MPFR_RNDN);
}

static mpfr_t r4876431, r4876432, r4876433, r4876434, r4876435, r4876436, r4876437;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r4876431, "1", 10, MPFR_RNDN);
        mpfr_init(r4876432);
        mpfr_init(r4876433);
        mpfr_init(r4876434);
        mpfr_init(r4876435);
        mpfr_init(r4876436);
        mpfr_init(r4876437);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r4876432, x, MPFR_RNDN);
        mpfr_add(r4876433, r4876432, r4876431, MPFR_RNDN);
        mpfr_sqrt(r4876434, r4876433, MPFR_RNDN);
        mpfr_sqrt(r4876435, r4876432, MPFR_RNDN);
        mpfr_add(r4876436, r4876434, r4876435, MPFR_RNDN);
        mpfr_div(r4876437, r4876431, r4876436, MPFR_RNDN);
        return mpfr_get_d(r4876437, MPFR_RNDN);
}

static mpfr_t r4876438, r4876439, r4876440, r4876441, r4876442, r4876443, r4876444;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r4876438, "1", 10, MPFR_RNDN);
        mpfr_init(r4876439);
        mpfr_init(r4876440);
        mpfr_init(r4876441);
        mpfr_init(r4876442);
        mpfr_init(r4876443);
        mpfr_init(r4876444);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r4876439, x, MPFR_RNDN);
        mpfr_add(r4876440, r4876439, r4876438, MPFR_RNDN);
        mpfr_sqrt(r4876441, r4876440, MPFR_RNDN);
        mpfr_sqrt(r4876442, r4876439, MPFR_RNDN);
        mpfr_add(r4876443, r4876441, r4876442, MPFR_RNDN);
        mpfr_div(r4876444, r4876438, r4876443, MPFR_RNDN);
        return mpfr_get_d(r4876444, MPFR_RNDN);
}

