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

char *name = "ReportTypes:explainFloat from gipeda-0.1.2.1";

double f_if(float x) {
        float r41163 = 100.0;
        float r41164 = x;
        float r41165 = r41164 - r41164;
        float r41166 = r41165 / r41164;
        float r41167 = r41163 * r41166;
        return r41167;
}

double f_id(double x) {
        double r41168 = 100.0;
        double r41169 = x;
        double r41170 = r41169 - r41169;
        double r41171 = r41170 / r41169;
        double r41172 = r41168 * r41171;
        return r41172;
}


double f_of(float x) {
        float r41173 = 100.0;
        float r41174 = x;
        float r41175 = r41174 - r41174;
        float r41176 = r41175 / r41174;
        float r41177 = r41173 * r41176;
        return r41177;
}

double f_od(double x) {
        double r41178 = 100.0;
        double r41179 = x;
        double r41180 = r41179 - r41179;
        double r41181 = r41180 / r41179;
        double r41182 = r41178 * r41181;
        return r41182;
}

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 r41183, r41184, r41185, r41186, r41187;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r41183, "100.0", 10, MPFR_RNDN);
        mpfr_init(r41184);
        mpfr_init(r41185);
        mpfr_init(r41186);
        mpfr_init(r41187);
}

double f_im(double x) {
        ;
        mpfr_set_d(r41184, x, MPFR_RNDN);
        mpfr_sub(r41185, r41184, r41184, MPFR_RNDN);
        mpfr_div(r41186, r41185, r41184, MPFR_RNDN);
        mpfr_mul(r41187, r41183, r41186, MPFR_RNDN);
        return mpfr_get_d(r41187, MPFR_RNDN);
}

static mpfr_t r41188, r41189, r41190, r41191, r41192;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r41188, "100.0", 10, MPFR_RNDN);
        mpfr_init(r41189);
        mpfr_init(r41190);
        mpfr_init(r41191);
        mpfr_init(r41192);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r41189, x, MPFR_RNDN);
        mpfr_sub(r41190, r41189, r41189, MPFR_RNDN);
        mpfr_div(r41191, r41190, r41189, MPFR_RNDN);
        mpfr_mul(r41192, r41188, r41191, MPFR_RNDN);
        return mpfr_get_d(r41192, MPFR_RNDN);
}

static mpfr_t r41193, r41194, r41195, r41196, r41197;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r41193, "100.0", 10, MPFR_RNDN);
        mpfr_init(r41194);
        mpfr_init(r41195);
        mpfr_init(r41196);
        mpfr_init(r41197);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r41194, x, MPFR_RNDN);
        mpfr_sub(r41195, r41194, r41194, MPFR_RNDN);
        mpfr_div(r41196, r41195, r41194, MPFR_RNDN);
        mpfr_mul(r41197, r41193, r41196, MPFR_RNDN);
        return mpfr_get_d(r41197, MPFR_RNDN);
}

