#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 r11236 = x;
        float r11237 = r11236 / r11236;
        float r11238 = 1;
        float r11239 = r11238 / r11236;
        float r11240 = r11236 * r11236;
        float r11241 = sqrt(r11240);
        float r11242 = r11239 * r11241;
        float r11243 = r11237 - r11242;
        return r11243;
}

double f_id(double x) {
        double r11244 = x;
        double r11245 = r11244 / r11244;
        double r11246 = 1;
        double r11247 = r11246 / r11244;
        double r11248 = r11244 * r11244;
        double r11249 = sqrt(r11248);
        double r11250 = r11247 * r11249;
        double r11251 = r11245 - r11250;
        return r11251;
}


double f_of(float x) {
        float r11252 = 1;
        float r11253 = x;
        float r11254 = fabs(r11253);
        float r11255 = r11254 / r11253;
        float r11256 = r11252 - r11255;
        return r11256;
}

double f_od(double x) {
        double r11257 = 1;
        double r11258 = x;
        double r11259 = fabs(r11258);
        double r11260 = r11259 / r11258;
        double r11261 = r11257 - r11260;
        return r11261;
}

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 r11262, r11263, r11264, r11265, r11266, r11267, r11268, r11269;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11262);
        mpfr_init(r11263);
        mpfr_init_set_str(r11264, "1", 10, MPFR_RNDN);
        mpfr_init(r11265);
        mpfr_init(r11266);
        mpfr_init(r11267);
        mpfr_init(r11268);
        mpfr_init(r11269);
}

double f_im(double x) {
        mpfr_set_d(r11262, x, MPFR_RNDN);
        mpfr_div(r11263, r11262, r11262, MPFR_RNDN);
        ;
        mpfr_div(r11265, r11264, r11262, MPFR_RNDN);
        mpfr_mul(r11266, r11262, r11262, MPFR_RNDN);
        mpfr_sqrt(r11267, r11266, MPFR_RNDN);
        mpfr_mul(r11268, r11265, r11267, MPFR_RNDN);
        mpfr_sub(r11269, r11263, r11268, MPFR_RNDN);
        return mpfr_get_d(r11269, MPFR_RNDN);
}

static mpfr_t r11270, r11271, r11272, r11273, r11274;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11270, "1", 10, MPFR_RNDN);
        mpfr_init(r11271);
        mpfr_init(r11272);
        mpfr_init(r11273);
        mpfr_init(r11274);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r11271, x, MPFR_RNDN);
        mpfr_abs(r11272, r11271, MPFR_RNDN);
        mpfr_div(r11273, r11272, r11271, MPFR_RNDN);
        mpfr_sub(r11274, r11270, r11273, MPFR_RNDN);
        return mpfr_get_d(r11274, MPFR_RNDN);
}

static mpfr_t r11275, r11276, r11277, r11278, r11279;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11275, "1", 10, MPFR_RNDN);
        mpfr_init(r11276);
        mpfr_init(r11277);
        mpfr_init(r11278);
        mpfr_init(r11279);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r11276, x, MPFR_RNDN);
        mpfr_abs(r11277, r11276, MPFR_RNDN);
        mpfr_div(r11278, r11277, r11276, MPFR_RNDN);
        mpfr_sub(r11279, r11275, r11278, MPFR_RNDN);
        return mpfr_get_d(r11279, MPFR_RNDN);
}

