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

char *name = "sqrt sqr";

double f_if(float x) {
        float r11149 = x;
        float r11150 = r11149 / r11149;
        float r11151 = 1;
        float r11152 = r11151 / r11149;
        float r11153 = r11149 * r11149;
        float r11154 = sqrt(r11153);
        float r11155 = r11152 * r11154;
        float r11156 = r11150 - r11155;
        return r11156;
}

double f_id(double x) {
        double r11157 = x;
        double r11158 = r11157 / r11157;
        double r11159 = 1;
        double r11160 = r11159 / r11157;
        double r11161 = r11157 * r11157;
        double r11162 = sqrt(r11161);
        double r11163 = r11160 * r11162;
        double r11164 = r11158 - r11163;
        return r11164;
}


double f_of(float x) {
        float r11165 = 1;
        float r11166 = x;
        float r11167 = fabs(r11166);
        float r11168 = r11167 / r11166;
        float r11169 = r11165 - r11168;
        return r11169;
}

double f_od(double x) {
        double r11170 = 1;
        double r11171 = x;
        double r11172 = fabs(r11171);
        double r11173 = r11172 / r11171;
        double r11174 = r11170 - r11173;
        return r11174;
}

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 r11175, r11176, r11177, r11178, r11179, r11180, r11181, r11182;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11175);
        mpfr_init(r11176);
        mpfr_init_set_str(r11177, "1", 10, MPFR_RNDN);
        mpfr_init(r11178);
        mpfr_init(r11179);
        mpfr_init(r11180);
        mpfr_init(r11181);
        mpfr_init(r11182);
}

double f_im(double x) {
        mpfr_set_d(r11175, x, MPFR_RNDN);
        mpfr_div(r11176, r11175, r11175, MPFR_RNDN);
        ;
        mpfr_div(r11178, r11177, r11175, MPFR_RNDN);
        mpfr_mul(r11179, r11175, r11175, MPFR_RNDN);
        mpfr_sqrt(r11180, r11179, MPFR_RNDN);
        mpfr_mul(r11181, r11178, r11180, MPFR_RNDN);
        mpfr_sub(r11182, r11176, r11181, MPFR_RNDN);
        return mpfr_get_d(r11182, MPFR_RNDN);
}

static mpfr_t r11183, r11184, r11185, r11186, r11187;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11183, "1", 10, MPFR_RNDN);
        mpfr_init(r11184);
        mpfr_init(r11185);
        mpfr_init(r11186);
        mpfr_init(r11187);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r11184, x, MPFR_RNDN);
        mpfr_abs(r11185, r11184, MPFR_RNDN);
        mpfr_div(r11186, r11185, r11184, MPFR_RNDN);
        mpfr_sub(r11187, r11183, r11186, MPFR_RNDN);
        return mpfr_get_d(r11187, MPFR_RNDN);
}

static mpfr_t r11188, r11189, r11190, r11191, r11192;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11188, "1", 10, MPFR_RNDN);
        mpfr_init(r11189);
        mpfr_init(r11190);
        mpfr_init(r11191);
        mpfr_init(r11192);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r11189, x, MPFR_RNDN);
        mpfr_abs(r11190, r11189, MPFR_RNDN);
        mpfr_div(r11191, r11190, r11189, MPFR_RNDN);
        mpfr_sub(r11192, r11188, r11191, MPFR_RNDN);
        return mpfr_get_d(r11192, MPFR_RNDN);
}

