#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 r11872462 = x;
        float r11872463 = 1;
        float r11872464 = r11872462 + r11872463;
        float r11872465 = sqrt(r11872464);
        float r11872466 = sqrt(r11872462);
        float r11872467 = r11872465 - r11872466;
        return r11872467;
}

double f_id(double x) {
        double r11872468 = x;
        double r11872469 = 1;
        double r11872470 = r11872468 + r11872469;
        double r11872471 = sqrt(r11872470);
        double r11872472 = sqrt(r11872468);
        double r11872473 = r11872471 - r11872472;
        return r11872473;
}


double f_of(float x) {
        float r11872474 = 1;
        float r11872475 = x;
        float r11872476 = r11872475 + r11872474;
        float r11872477 = sqrt(r11872476);
        float r11872478 = sqrt(r11872475);
        float r11872479 = r11872477 + r11872478;
        float r11872480 = r11872474 / r11872479;
        return r11872480;
}

double f_od(double x) {
        double r11872481 = 1;
        double r11872482 = x;
        double r11872483 = r11872482 + r11872481;
        double r11872484 = sqrt(r11872483);
        double r11872485 = sqrt(r11872482);
        double r11872486 = r11872484 + r11872485;
        double r11872487 = r11872481 / r11872486;
        return r11872487;
}

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 r11872488, r11872489, r11872490, r11872491, r11872492, r11872493;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r11872488);
        mpfr_init_set_str(r11872489, "1", 10, MPFR_RNDN);
        mpfr_init(r11872490);
        mpfr_init(r11872491);
        mpfr_init(r11872492);
        mpfr_init(r11872493);
}

double f_im(double x) {
        mpfr_set_d(r11872488, x, MPFR_RNDN);
        ;
        mpfr_add(r11872490, r11872488, r11872489, MPFR_RNDN);
        mpfr_sqrt(r11872491, r11872490, MPFR_RNDN);
        mpfr_sqrt(r11872492, r11872488, MPFR_RNDN);
        mpfr_sub(r11872493, r11872491, r11872492, MPFR_RNDN);
        return mpfr_get_d(r11872493, MPFR_RNDN);
}

static mpfr_t r11872494, r11872495, r11872496, r11872497, r11872498, r11872499, r11872500;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r11872494, "1", 10, MPFR_RNDN);
        mpfr_init(r11872495);
        mpfr_init(r11872496);
        mpfr_init(r11872497);
        mpfr_init(r11872498);
        mpfr_init(r11872499);
        mpfr_init(r11872500);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r11872495, x, MPFR_RNDN);
        mpfr_add(r11872496, r11872495, r11872494, MPFR_RNDN);
        mpfr_sqrt(r11872497, r11872496, MPFR_RNDN);
        mpfr_sqrt(r11872498, r11872495, MPFR_RNDN);
        mpfr_add(r11872499, r11872497, r11872498, MPFR_RNDN);
        mpfr_div(r11872500, r11872494, r11872499, MPFR_RNDN);
        return mpfr_get_d(r11872500, MPFR_RNDN);
}

static mpfr_t r11872501, r11872502, r11872503, r11872504, r11872505, r11872506, r11872507;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r11872501, "1", 10, MPFR_RNDN);
        mpfr_init(r11872502);
        mpfr_init(r11872503);
        mpfr_init(r11872504);
        mpfr_init(r11872505);
        mpfr_init(r11872506);
        mpfr_init(r11872507);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r11872502, x, MPFR_RNDN);
        mpfr_add(r11872503, r11872502, r11872501, MPFR_RNDN);
        mpfr_sqrt(r11872504, r11872503, MPFR_RNDN);
        mpfr_sqrt(r11872505, r11872502, MPFR_RNDN);
        mpfr_add(r11872506, r11872504, r11872505, MPFR_RNDN);
        mpfr_div(r11872507, r11872501, r11872506, MPFR_RNDN);
        return mpfr_get_d(r11872507, MPFR_RNDN);
}

