#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 r58795 = x;
        float r58796 = 1;
        float r58797 = r58795 + r58796;
        float r58798 = sqrt(r58797);
        float r58799 = sqrt(r58795);
        float r58800 = r58798 - r58799;
        return r58800;
}

double f_id(double x) {
        double r58801 = x;
        double r58802 = 1;
        double r58803 = r58801 + r58802;
        double r58804 = sqrt(r58803);
        double r58805 = sqrt(r58801);
        double r58806 = r58804 - r58805;
        return r58806;
}


double f_of(float x) {
        float r58807 = 1;
        float r58808 = x;
        float r58809 = r58808 + r58807;
        float r58810 = sqrt(r58809);
        float r58811 = sqrt(r58808);
        float r58812 = r58810 + r58811;
        float r58813 = r58807 / r58812;
        return r58813;
}

double f_od(double x) {
        double r58814 = 1;
        double r58815 = x;
        double r58816 = r58815 + r58814;
        double r58817 = sqrt(r58816);
        double r58818 = sqrt(r58815);
        double r58819 = r58817 + r58818;
        double r58820 = r58814 / r58819;
        return r58820;
}

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 r58821, r58822, r58823, r58824, r58825, r58826;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r58821);
        mpfr_init_set_str(r58822, "1", 10, MPFR_RNDN);
        mpfr_init(r58823);
        mpfr_init(r58824);
        mpfr_init(r58825);
        mpfr_init(r58826);
}

double f_im(double x) {
        mpfr_set_d(r58821, x, MPFR_RNDN);
        ;
        mpfr_add(r58823, r58821, r58822, MPFR_RNDN);
        mpfr_sqrt(r58824, r58823, MPFR_RNDN);
        mpfr_sqrt(r58825, r58821, MPFR_RNDN);
        mpfr_sub(r58826, r58824, r58825, MPFR_RNDN);
        return mpfr_get_d(r58826, MPFR_RNDN);
}

static mpfr_t r58827, r58828, r58829, r58830, r58831, r58832, r58833;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r58827, "1", 10, MPFR_RNDN);
        mpfr_init(r58828);
        mpfr_init(r58829);
        mpfr_init(r58830);
        mpfr_init(r58831);
        mpfr_init(r58832);
        mpfr_init(r58833);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r58828, x, MPFR_RNDN);
        mpfr_add(r58829, r58828, r58827, MPFR_RNDN);
        mpfr_sqrt(r58830, r58829, MPFR_RNDN);
        mpfr_sqrt(r58831, r58828, MPFR_RNDN);
        mpfr_add(r58832, r58830, r58831, MPFR_RNDN);
        mpfr_div(r58833, r58827, r58832, MPFR_RNDN);
        return mpfr_get_d(r58833, MPFR_RNDN);
}

static mpfr_t r58834, r58835, r58836, r58837, r58838, r58839, r58840;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r58834, "1", 10, MPFR_RNDN);
        mpfr_init(r58835);
        mpfr_init(r58836);
        mpfr_init(r58837);
        mpfr_init(r58838);
        mpfr_init(r58839);
        mpfr_init(r58840);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r58835, x, MPFR_RNDN);
        mpfr_add(r58836, r58835, r58834, MPFR_RNDN);
        mpfr_sqrt(r58837, r58836, MPFR_RNDN);
        mpfr_sqrt(r58838, r58835, MPFR_RNDN);
        mpfr_add(r58839, r58837, r58838, MPFR_RNDN);
        mpfr_div(r58840, r58834, r58839, MPFR_RNDN);
        return mpfr_get_d(r58840, MPFR_RNDN);
}

