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

char *name = "FastMath dist3";

double f_if(float d1, float d2, float d3) {
        float r51285 = d1;
        float r51286 = d2;
        float r51287 = r51285 * r51286;
        float r51288 = d3;
        float r51289 = 5;
        float r51290 = r51288 + r51289;
        float r51291 = r51290 * r51285;
        float r51292 = r51287 + r51291;
        float r51293 = 32;
        float r51294 = r51285 * r51293;
        float r51295 = r51292 + r51294;
        return r51295;
}

double f_id(double d1, double d2, double d3) {
        double r51296 = d1;
        double r51297 = d2;
        double r51298 = r51296 * r51297;
        double r51299 = d3;
        double r51300 = 5;
        double r51301 = r51299 + r51300;
        double r51302 = r51301 * r51296;
        double r51303 = r51298 + r51302;
        double r51304 = 32;
        double r51305 = r51296 * r51304;
        double r51306 = r51303 + r51305;
        return r51306;
}


double f_of(float d1, float d2, float d3) {
        float r51307 = d1;
        float r51308 = d2;
        float r51309 = r51307 * r51308;
        float r51310 = d3;
        float r51311 = 5;
        float r51312 = r51310 + r51311;
        float r51313 = r51312 * r51307;
        float r51314 = r51309 + r51313;
        float r51315 = 32;
        float r51316 = r51307 * r51315;
        float r51317 = r51314 + r51316;
        return r51317;
}

double f_od(double d1, double d2, double d3) {
        double r51318 = d1;
        double r51319 = d2;
        double r51320 = r51318 * r51319;
        double r51321 = d3;
        double r51322 = 5;
        double r51323 = r51321 + r51322;
        double r51324 = r51323 * r51318;
        double r51325 = r51320 + r51324;
        double r51326 = 32;
        double r51327 = r51318 * r51326;
        double r51328 = r51325 + r51327;
        return r51328;
}

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 r51329, r51330, r51331, r51332, r51333, r51334, r51335, r51336, r51337, r51338, r51339;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51329);
        mpfr_init(r51330);
        mpfr_init(r51331);
        mpfr_init(r51332);
        mpfr_init_set_str(r51333, "5", 10, MPFR_RNDN);
        mpfr_init(r51334);
        mpfr_init(r51335);
        mpfr_init(r51336);
        mpfr_init_set_str(r51337, "32", 10, MPFR_RNDN);
        mpfr_init(r51338);
        mpfr_init(r51339);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r51329, d1, MPFR_RNDN);
        mpfr_set_d(r51330, d2, MPFR_RNDN);
        mpfr_mul(r51331, r51329, r51330, MPFR_RNDN);
        mpfr_set_d(r51332, d3, MPFR_RNDN);
        ;
        mpfr_add(r51334, r51332, r51333, MPFR_RNDN);
        mpfr_mul(r51335, r51334, r51329, MPFR_RNDN);
        mpfr_add(r51336, r51331, r51335, MPFR_RNDN);
        ;
        mpfr_mul(r51338, r51329, r51337, MPFR_RNDN);
        mpfr_add(r51339, r51336, r51338, MPFR_RNDN);
        return mpfr_get_d(r51339, MPFR_RNDN);
}

static mpfr_t r51340, r51341, r51342, r51343, r51344, r51345, r51346, r51347, r51348, r51349, r51350;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51340);
        mpfr_init(r51341);
        mpfr_init(r51342);
        mpfr_init(r51343);
        mpfr_init_set_str(r51344, "5", 10, MPFR_RNDN);
        mpfr_init(r51345);
        mpfr_init(r51346);
        mpfr_init(r51347);
        mpfr_init_set_str(r51348, "32", 10, MPFR_RNDN);
        mpfr_init(r51349);
        mpfr_init(r51350);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r51340, d1, MPFR_RNDN);
        mpfr_set_d(r51341, d2, MPFR_RNDN);
        mpfr_mul(r51342, r51340, r51341, MPFR_RNDN);
        mpfr_set_d(r51343, d3, MPFR_RNDN);
        ;
        mpfr_add(r51345, r51343, r51344, MPFR_RNDN);
        mpfr_mul(r51346, r51345, r51340, MPFR_RNDN);
        mpfr_add(r51347, r51342, r51346, MPFR_RNDN);
        ;
        mpfr_mul(r51349, r51340, r51348, MPFR_RNDN);
        mpfr_add(r51350, r51347, r51349, MPFR_RNDN);
        return mpfr_get_d(r51350, MPFR_RNDN);
}

static mpfr_t r51351, r51352, r51353, r51354, r51355, r51356, r51357, r51358, r51359, r51360, r51361;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51351);
        mpfr_init(r51352);
        mpfr_init(r51353);
        mpfr_init(r51354);
        mpfr_init_set_str(r51355, "5", 10, MPFR_RNDN);
        mpfr_init(r51356);
        mpfr_init(r51357);
        mpfr_init(r51358);
        mpfr_init_set_str(r51359, "32", 10, MPFR_RNDN);
        mpfr_init(r51360);
        mpfr_init(r51361);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r51351, d1, MPFR_RNDN);
        mpfr_set_d(r51352, d2, MPFR_RNDN);
        mpfr_mul(r51353, r51351, r51352, MPFR_RNDN);
        mpfr_set_d(r51354, d3, MPFR_RNDN);
        ;
        mpfr_add(r51356, r51354, r51355, MPFR_RNDN);
        mpfr_mul(r51357, r51356, r51351, MPFR_RNDN);
        mpfr_add(r51358, r51353, r51357, MPFR_RNDN);
        ;
        mpfr_mul(r51360, r51351, r51359, MPFR_RNDN);
        mpfr_add(r51361, r51358, r51360, MPFR_RNDN);
        return mpfr_get_d(r51361, MPFR_RNDN);
}

