#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 r10892 = x;
        float r10893 = r10892 / r10892;
        float r10894 = 1;
        float r10895 = r10894 / r10892;
        float r10896 = r10892 * r10892;
        float r10897 = sqrt(r10896);
        float r10898 = r10895 * r10897;
        float r10899 = r10893 - r10898;
        return r10899;
}

double f_id(double x) {
        double r10900 = x;
        double r10901 = r10900 / r10900;
        double r10902 = 1;
        double r10903 = r10902 / r10900;
        double r10904 = r10900 * r10900;
        double r10905 = sqrt(r10904);
        double r10906 = r10903 * r10905;
        double r10907 = r10901 - r10906;
        return r10907;
}


double f_of(float x) {
        float r10908 = 1;
        float r10909 = x;
        float r10910 = fabs(r10909);
        float r10911 = r10910 / r10909;
        float r10912 = r10908 - r10911;
        return r10912;
}

double f_od(double x) {
        double r10913 = 1;
        double r10914 = x;
        double r10915 = fabs(r10914);
        double r10916 = r10915 / r10914;
        double r10917 = r10913 - r10916;
        return r10917;
}

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 r10918, r10919, r10920, r10921, r10922, r10923, r10924, r10925;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r10918);
        mpfr_init(r10919);
        mpfr_init_set_str(r10920, "1", 10, MPFR_RNDN);
        mpfr_init(r10921);
        mpfr_init(r10922);
        mpfr_init(r10923);
        mpfr_init(r10924);
        mpfr_init(r10925);
}

double f_im(double x) {
        mpfr_set_d(r10918, x, MPFR_RNDN);
        mpfr_div(r10919, r10918, r10918, MPFR_RNDN);
        ;
        mpfr_div(r10921, r10920, r10918, MPFR_RNDN);
        mpfr_mul(r10922, r10918, r10918, MPFR_RNDN);
        mpfr_sqrt(r10923, r10922, MPFR_RNDN);
        mpfr_mul(r10924, r10921, r10923, MPFR_RNDN);
        mpfr_sub(r10925, r10919, r10924, MPFR_RNDN);
        return mpfr_get_d(r10925, MPFR_RNDN);
}

static mpfr_t r10926, r10927, r10928, r10929, r10930;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r10926, "1", 10, MPFR_RNDN);
        mpfr_init(r10927);
        mpfr_init(r10928);
        mpfr_init(r10929);
        mpfr_init(r10930);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r10927, x, MPFR_RNDN);
        mpfr_abs(r10928, r10927, MPFR_RNDN);
        mpfr_div(r10929, r10928, r10927, MPFR_RNDN);
        mpfr_sub(r10930, r10926, r10929, MPFR_RNDN);
        return mpfr_get_d(r10930, MPFR_RNDN);
}

static mpfr_t r10931, r10932, r10933, r10934, r10935;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r10931, "1", 10, MPFR_RNDN);
        mpfr_init(r10932);
        mpfr_init(r10933);
        mpfr_init(r10934);
        mpfr_init(r10935);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r10932, x, MPFR_RNDN);
        mpfr_abs(r10933, r10932, MPFR_RNDN);
        mpfr_div(r10934, r10933, r10932, MPFR_RNDN);
        mpfr_sub(r10935, r10931, r10934, MPFR_RNDN);
        return mpfr_get_d(r10935, MPFR_RNDN);
}

