#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 r40822 = 100.0;
        float r40823 = x;
        float r40824 = r40823 - r40823;
        float r40825 = r40824 / r40823;
        float r40826 = r40822 * r40825;
        return r40826;
}

double f_id(double x) {
        double r40827 = 100.0;
        double r40828 = x;
        double r40829 = r40828 - r40828;
        double r40830 = r40829 / r40828;
        double r40831 = r40827 * r40830;
        return r40831;
}


double f_of(float x) {
        float r40832 = 100.0;
        float r40833 = x;
        float r40834 = r40833 - r40833;
        float r40835 = r40834 / r40833;
        float r40836 = r40832 * r40835;
        return r40836;
}

double f_od(double x) {
        double r40837 = 100.0;
        double r40838 = x;
        double r40839 = r40838 - r40838;
        double r40840 = r40839 / r40838;
        double r40841 = r40837 * r40840;
        return r40841;
}

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 r40842, r40843, r40844, r40845, r40846;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r40842, "100.0", 10, MPFR_RNDN);
        mpfr_init(r40843);
        mpfr_init(r40844);
        mpfr_init(r40845);
        mpfr_init(r40846);
}

double f_im(double x) {
        ;
        mpfr_set_d(r40843, x, MPFR_RNDN);
        mpfr_sub(r40844, r40843, r40843, MPFR_RNDN);
        mpfr_div(r40845, r40844, r40843, MPFR_RNDN);
        mpfr_mul(r40846, r40842, r40845, MPFR_RNDN);
        return mpfr_get_d(r40846, MPFR_RNDN);
}

static mpfr_t r40847, r40848, r40849, r40850, r40851;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r40847, "100.0", 10, MPFR_RNDN);
        mpfr_init(r40848);
        mpfr_init(r40849);
        mpfr_init(r40850);
        mpfr_init(r40851);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r40848, x, MPFR_RNDN);
        mpfr_sub(r40849, r40848, r40848, MPFR_RNDN);
        mpfr_div(r40850, r40849, r40848, MPFR_RNDN);
        mpfr_mul(r40851, r40847, r40850, MPFR_RNDN);
        return mpfr_get_d(r40851, MPFR_RNDN);
}

static mpfr_t r40852, r40853, r40854, r40855, r40856;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r40852, "100.0", 10, MPFR_RNDN);
        mpfr_init(r40853);
        mpfr_init(r40854);
        mpfr_init(r40855);
        mpfr_init(r40856);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r40853, x, MPFR_RNDN);
        mpfr_sub(r40854, r40853, r40853, MPFR_RNDN);
        mpfr_div(r40855, r40854, r40853, MPFR_RNDN);
        mpfr_mul(r40856, r40852, r40855, MPFR_RNDN);
        return mpfr_get_d(r40856, MPFR_RNDN);
}

