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

char *name = "Data.Histogram.Bin.BinF:$cfromIndex from histogram-fill-0.8.4.1";

double f_if(float x, float y, float z) {
        float r56413 = x;
        float r56414 = 2.0;
        float r56415 = r56413 / r56414;
        float r56416 = y;
        float r56417 = r56416 * r56413;
        float r56418 = r56415 + r56417;
        float r56419 = z;
        float r56420 = r56418 + r56419;
        return r56420;
}

double f_id(double x, double y, double z) {
        double r56421 = x;
        double r56422 = 2.0;
        double r56423 = r56421 / r56422;
        double r56424 = y;
        double r56425 = r56424 * r56421;
        double r56426 = r56423 + r56425;
        double r56427 = z;
        double r56428 = r56426 + r56427;
        return r56428;
}


double f_of(float x, float y, float z) {
        float r56429 = x;
        float r56430 = 2.0;
        float r56431 = r56429 / r56430;
        float r56432 = y;
        float r56433 = r56432 * r56429;
        float r56434 = r56431 + r56433;
        float r56435 = z;
        float r56436 = r56434 + r56435;
        return r56436;
}

double f_od(double x, double y, double z) {
        double r56437 = x;
        double r56438 = 2.0;
        double r56439 = r56437 / r56438;
        double r56440 = y;
        double r56441 = r56440 * r56437;
        double r56442 = r56439 + r56441;
        double r56443 = z;
        double r56444 = r56442 + r56443;
        return r56444;
}

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 r56445, r56446, r56447, r56448, r56449, r56450, r56451, r56452;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r56445);
        mpfr_init_set_str(r56446, "2.0", 10, MPFR_RNDN);
        mpfr_init(r56447);
        mpfr_init(r56448);
        mpfr_init(r56449);
        mpfr_init(r56450);
        mpfr_init(r56451);
        mpfr_init(r56452);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r56445, x, MPFR_RNDN);
        ;
        mpfr_div(r56447, r56445, r56446, MPFR_RNDN);
        mpfr_set_d(r56448, y, MPFR_RNDN);
        mpfr_mul(r56449, r56448, r56445, MPFR_RNDN);
        mpfr_add(r56450, r56447, r56449, MPFR_RNDN);
        mpfr_set_d(r56451, z, MPFR_RNDN);
        mpfr_add(r56452, r56450, r56451, MPFR_RNDN);
        return mpfr_get_d(r56452, MPFR_RNDN);
}

static mpfr_t r56453, r56454, r56455, r56456, r56457, r56458, r56459, r56460;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56453);
        mpfr_init_set_str(r56454, "2.0", 10, MPFR_RNDN);
        mpfr_init(r56455);
        mpfr_init(r56456);
        mpfr_init(r56457);
        mpfr_init(r56458);
        mpfr_init(r56459);
        mpfr_init(r56460);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r56453, x, MPFR_RNDN);
        ;
        mpfr_div(r56455, r56453, r56454, MPFR_RNDN);
        mpfr_set_d(r56456, y, MPFR_RNDN);
        mpfr_mul(r56457, r56456, r56453, MPFR_RNDN);
        mpfr_add(r56458, r56455, r56457, MPFR_RNDN);
        mpfr_set_d(r56459, z, MPFR_RNDN);
        mpfr_add(r56460, r56458, r56459, MPFR_RNDN);
        return mpfr_get_d(r56460, MPFR_RNDN);
}

static mpfr_t r56461, r56462, r56463, r56464, r56465, r56466, r56467, r56468;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56461);
        mpfr_init_set_str(r56462, "2.0", 10, MPFR_RNDN);
        mpfr_init(r56463);
        mpfr_init(r56464);
        mpfr_init(r56465);
        mpfr_init(r56466);
        mpfr_init(r56467);
        mpfr_init(r56468);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r56461, x, MPFR_RNDN);
        ;
        mpfr_div(r56463, r56461, r56462, MPFR_RNDN);
        mpfr_set_d(r56464, y, MPFR_RNDN);
        mpfr_mul(r56465, r56464, r56461, MPFR_RNDN);
        mpfr_add(r56466, r56463, r56465, MPFR_RNDN);
        mpfr_set_d(r56467, z, MPFR_RNDN);
        mpfr_add(r56468, r56466, r56467, MPFR_RNDN);
        return mpfr_get_d(r56468, MPFR_RNDN);
}

