#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 r20805 = x;
        float r20806 = 1.0f;
        float r20807 = r20805 + r20806;
        float r20808 = sqrt(r20807);
        float r20809 = sqrt(r20805);
        float r20810 = r20808 - r20809;
        return r20810;
}

double f_id(double x) {
        double r20811 = x;
        double r20812 = 1.0;
        double r20813 = r20811 + r20812;
        double r20814 = sqrt(r20813);
        double r20815 = sqrt(r20811);
        double r20816 = r20814 - r20815;
        return r20816;
}


double f_of(float x) {
        float r20817 = 1.0f;
        float r20818 = x;
        float r20819 = r20818 + r20817;
        float r20820 = sqrt(r20819);
        float r20821 = sqrt(r20818);
        float r20822 = r20820 + r20821;
        float r20823 = r20817 / r20822;
        return r20823;
}

double f_od(double x) {
        double r20824 = 1.0;
        double r20825 = x;
        double r20826 = r20825 + r20824;
        double r20827 = sqrt(r20826);
        double r20828 = sqrt(r20825);
        double r20829 = r20827 + r20828;
        double r20830 = r20824 / r20829;
        return r20830;
}

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 r20831, r20832, r20833, r20834, r20835, r20836;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r20831);
        mpfr_init_set_str(r20832, "1", 10, MPFR_RNDN);
        mpfr_init(r20833);
        mpfr_init(r20834);
        mpfr_init(r20835);
        mpfr_init(r20836);
}

double f_im(double x) {
        mpfr_set_d(r20831, x, MPFR_RNDN);
        ;
        mpfr_add(r20833, r20831, r20832, MPFR_RNDN);
        mpfr_sqrt(r20834, r20833, MPFR_RNDN);
        mpfr_sqrt(r20835, r20831, MPFR_RNDN);
        mpfr_sub(r20836, r20834, r20835, MPFR_RNDN);
        return mpfr_get_d(r20836, MPFR_RNDN);
}

static mpfr_t r20837, r20838, r20839, r20840, r20841, r20842, r20843;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r20837, "1", 10, MPFR_RNDN);
        mpfr_init(r20838);
        mpfr_init(r20839);
        mpfr_init(r20840);
        mpfr_init(r20841);
        mpfr_init(r20842);
        mpfr_init(r20843);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r20838, x, MPFR_RNDN);
        mpfr_add(r20839, r20838, r20837, MPFR_RNDN);
        mpfr_sqrt(r20840, r20839, MPFR_RNDN);
        mpfr_sqrt(r20841, r20838, MPFR_RNDN);
        mpfr_add(r20842, r20840, r20841, MPFR_RNDN);
        mpfr_div(r20843, r20837, r20842, MPFR_RNDN);
        return mpfr_get_d(r20843, MPFR_RNDN);
}

static mpfr_t r20844, r20845, r20846, r20847, r20848, r20849, r20850;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r20844, "1", 10, MPFR_RNDN);
        mpfr_init(r20845);
        mpfr_init(r20846);
        mpfr_init(r20847);
        mpfr_init(r20848);
        mpfr_init(r20849);
        mpfr_init(r20850);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r20845, x, MPFR_RNDN);
        mpfr_add(r20846, r20845, r20844, MPFR_RNDN);
        mpfr_sqrt(r20847, r20846, MPFR_RNDN);
        mpfr_sqrt(r20848, r20845, MPFR_RNDN);
        mpfr_add(r20849, r20847, r20848, MPFR_RNDN);
        mpfr_div(r20850, r20844, r20849, MPFR_RNDN);
        return mpfr_get_d(r20850, MPFR_RNDN);
}

