#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 r11091 = x;
        float r11092 = 1;
        float r11093 = r11091 + r11092;
        float r11094 = sqrt(r11093);
        float r11095 = sqrt(r11091);
        float r11096 = r11094 - r11095;
        return r11096;
}

double f_id(double x) {
        double r11097 = x;
        double r11098 = 1;
        double r11099 = r11097 + r11098;
        double r11100 = sqrt(r11099);
        double r11101 = sqrt(r11097);
        double r11102 = r11100 - r11101;
        return r11102;
}


double f_of(float x) {
        float r11103 = 1;
        float r11104 = x;
        float r11105 = r11104 + r11103;
        float r11106 = sqrt(r11105);
        float r11107 = sqrt(r11104);
        float r11108 = r11106 + r11107;
        float r11109 = r11103 / r11108;
        return r11109;
}

double f_od(double x) {
        double r11110 = 1;
        double r11111 = x;
        double r11112 = r11111 + r11110;
        double r11113 = sqrt(r11112);
        double r11114 = sqrt(r11111);
        double r11115 = r11113 + r11114;
        double r11116 = r11110 / r11115;
        return r11116;
}

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 r11117, r11118, r11119, r11120, r11121, r11122;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11117);
        mpfr_init_set_str(r11118, "1", 10, MPFR_RNDN);
        mpfr_init(r11119);
        mpfr_init(r11120);
        mpfr_init(r11121);
        mpfr_init(r11122);
}

double f_im(double x) {
        mpfr_set_d(r11117, x, MPFR_RNDN);
        ;
        mpfr_add(r11119, r11117, r11118, MPFR_RNDN);
        mpfr_sqrt(r11120, r11119, MPFR_RNDN);
        mpfr_sqrt(r11121, r11117, MPFR_RNDN);
        mpfr_sub(r11122, r11120, r11121, MPFR_RNDN);
        return mpfr_get_d(r11122, MPFR_RNDN);
}

static mpfr_t r11123, r11124, r11125, r11126, r11127, r11128, r11129;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11123, "1", 10, MPFR_RNDN);
        mpfr_init(r11124);
        mpfr_init(r11125);
        mpfr_init(r11126);
        mpfr_init(r11127);
        mpfr_init(r11128);
        mpfr_init(r11129);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r11124, x, MPFR_RNDN);
        mpfr_add(r11125, r11124, r11123, MPFR_RNDN);
        mpfr_sqrt(r11126, r11125, MPFR_RNDN);
        mpfr_sqrt(r11127, r11124, MPFR_RNDN);
        mpfr_add(r11128, r11126, r11127, MPFR_RNDN);
        mpfr_div(r11129, r11123, r11128, MPFR_RNDN);
        return mpfr_get_d(r11129, MPFR_RNDN);
}

static mpfr_t r11130, r11131, r11132, r11133, r11134, r11135, r11136;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11130, "1", 10, MPFR_RNDN);
        mpfr_init(r11131);
        mpfr_init(r11132);
        mpfr_init(r11133);
        mpfr_init(r11134);
        mpfr_init(r11135);
        mpfr_init(r11136);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r11131, x, MPFR_RNDN);
        mpfr_add(r11132, r11131, r11130, MPFR_RNDN);
        mpfr_sqrt(r11133, r11132, MPFR_RNDN);
        mpfr_sqrt(r11134, r11131, MPFR_RNDN);
        mpfr_add(r11135, r11133, r11134, MPFR_RNDN);
        mpfr_div(r11136, r11130, r11135, MPFR_RNDN);
        return mpfr_get_d(r11136, MPFR_RNDN);
}

