#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 r11218 = x;
        float r11219 = r11218 / r11218;
        float r11220 = 1;
        float r11221 = r11220 / r11218;
        float r11222 = r11218 * r11218;
        float r11223 = sqrt(r11222);
        float r11224 = r11221 * r11223;
        float r11225 = r11219 - r11224;
        return r11225;
}

double f_id(double x) {
        double r11226 = x;
        double r11227 = r11226 / r11226;
        double r11228 = 1;
        double r11229 = r11228 / r11226;
        double r11230 = r11226 * r11226;
        double r11231 = sqrt(r11230);
        double r11232 = r11229 * r11231;
        double r11233 = r11227 - r11232;
        return r11233;
}


double f_of(float x) {
        float r11234 = 1;
        float r11235 = x;
        float r11236 = fabs(r11235);
        float r11237 = r11236 / r11235;
        float r11238 = r11234 - r11237;
        return r11238;
}

double f_od(double x) {
        double r11239 = 1;
        double r11240 = x;
        double r11241 = fabs(r11240);
        double r11242 = r11241 / r11240;
        double r11243 = r11239 - r11242;
        return r11243;
}

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 r11244, r11245, r11246, r11247, r11248, r11249, r11250, r11251;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11244);
        mpfr_init(r11245);
        mpfr_init_set_str(r11246, "1", 10, MPFR_RNDN);
        mpfr_init(r11247);
        mpfr_init(r11248);
        mpfr_init(r11249);
        mpfr_init(r11250);
        mpfr_init(r11251);
}

double f_im(double x) {
        mpfr_set_d(r11244, x, MPFR_RNDN);
        mpfr_div(r11245, r11244, r11244, MPFR_RNDN);
        ;
        mpfr_div(r11247, r11246, r11244, MPFR_RNDN);
        mpfr_mul(r11248, r11244, r11244, MPFR_RNDN);
        mpfr_sqrt(r11249, r11248, MPFR_RNDN);
        mpfr_mul(r11250, r11247, r11249, MPFR_RNDN);
        mpfr_sub(r11251, r11245, r11250, MPFR_RNDN);
        return mpfr_get_d(r11251, MPFR_RNDN);
}

static mpfr_t r11252, r11253, r11254, r11255, r11256;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11252, "1", 10, MPFR_RNDN);
        mpfr_init(r11253);
        mpfr_init(r11254);
        mpfr_init(r11255);
        mpfr_init(r11256);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r11253, x, MPFR_RNDN);
        mpfr_abs(r11254, r11253, MPFR_RNDN);
        mpfr_div(r11255, r11254, r11253, MPFR_RNDN);
        mpfr_sub(r11256, r11252, r11255, MPFR_RNDN);
        return mpfr_get_d(r11256, MPFR_RNDN);
}

static mpfr_t r11257, r11258, r11259, r11260, r11261;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11257, "1", 10, MPFR_RNDN);
        mpfr_init(r11258);
        mpfr_init(r11259);
        mpfr_init(r11260);
        mpfr_init(r11261);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r11258, x, MPFR_RNDN);
        mpfr_abs(r11259, r11258, MPFR_RNDN);
        mpfr_div(r11260, r11259, r11258, MPFR_RNDN);
        mpfr_sub(r11261, r11257, r11260, MPFR_RNDN);
        return mpfr_get_d(r11261, MPFR_RNDN);
}

