#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 r51341 = d1;
        float r51342 = d2;
        float r51343 = r51341 * r51342;
        float r51344 = d3;
        float r51345 = 5;
        float r51346 = r51344 + r51345;
        float r51347 = r51346 * r51341;
        float r51348 = r51343 + r51347;
        float r51349 = 32;
        float r51350 = r51341 * r51349;
        float r51351 = r51348 + r51350;
        return r51351;
}

double f_id(double d1, double d2, double d3) {
        double r51352 = d1;
        double r51353 = d2;
        double r51354 = r51352 * r51353;
        double r51355 = d3;
        double r51356 = 5;
        double r51357 = r51355 + r51356;
        double r51358 = r51357 * r51352;
        double r51359 = r51354 + r51358;
        double r51360 = 32;
        double r51361 = r51352 * r51360;
        double r51362 = r51359 + r51361;
        return r51362;
}


double f_of(float d1, float d2, float d3) {
        float r51363 = d1;
        float r51364 = d2;
        float r51365 = r51363 * r51364;
        float r51366 = d3;
        float r51367 = 5;
        float r51368 = r51366 + r51367;
        float r51369 = r51368 * r51363;
        float r51370 = r51365 + r51369;
        float r51371 = 32;
        float r51372 = r51363 * r51371;
        float r51373 = r51370 + r51372;
        return r51373;
}

double f_od(double d1, double d2, double d3) {
        double r51374 = d1;
        double r51375 = d2;
        double r51376 = r51374 * r51375;
        double r51377 = d3;
        double r51378 = 5;
        double r51379 = r51377 + r51378;
        double r51380 = r51379 * r51374;
        double r51381 = r51376 + r51380;
        double r51382 = 32;
        double r51383 = r51374 * r51382;
        double r51384 = r51381 + r51383;
        return r51384;
}

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 r51385, r51386, r51387, r51388, r51389, r51390, r51391, r51392, r51393, r51394, r51395;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51385);
        mpfr_init(r51386);
        mpfr_init(r51387);
        mpfr_init(r51388);
        mpfr_init_set_str(r51389, "5", 10, MPFR_RNDN);
        mpfr_init(r51390);
        mpfr_init(r51391);
        mpfr_init(r51392);
        mpfr_init_set_str(r51393, "32", 10, MPFR_RNDN);
        mpfr_init(r51394);
        mpfr_init(r51395);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r51385, d1, MPFR_RNDN);
        mpfr_set_d(r51386, d2, MPFR_RNDN);
        mpfr_mul(r51387, r51385, r51386, MPFR_RNDN);
        mpfr_set_d(r51388, d3, MPFR_RNDN);
        ;
        mpfr_add(r51390, r51388, r51389, MPFR_RNDN);
        mpfr_mul(r51391, r51390, r51385, MPFR_RNDN);
        mpfr_add(r51392, r51387, r51391, MPFR_RNDN);
        ;
        mpfr_mul(r51394, r51385, r51393, MPFR_RNDN);
        mpfr_add(r51395, r51392, r51394, MPFR_RNDN);
        return mpfr_get_d(r51395, MPFR_RNDN);
}

static mpfr_t r51396, r51397, r51398, r51399, r51400, r51401, r51402, r51403, r51404, r51405, r51406;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51396);
        mpfr_init(r51397);
        mpfr_init(r51398);
        mpfr_init(r51399);
        mpfr_init_set_str(r51400, "5", 10, MPFR_RNDN);
        mpfr_init(r51401);
        mpfr_init(r51402);
        mpfr_init(r51403);
        mpfr_init_set_str(r51404, "32", 10, MPFR_RNDN);
        mpfr_init(r51405);
        mpfr_init(r51406);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r51396, d1, MPFR_RNDN);
        mpfr_set_d(r51397, d2, MPFR_RNDN);
        mpfr_mul(r51398, r51396, r51397, MPFR_RNDN);
        mpfr_set_d(r51399, d3, MPFR_RNDN);
        ;
        mpfr_add(r51401, r51399, r51400, MPFR_RNDN);
        mpfr_mul(r51402, r51401, r51396, MPFR_RNDN);
        mpfr_add(r51403, r51398, r51402, MPFR_RNDN);
        ;
        mpfr_mul(r51405, r51396, r51404, MPFR_RNDN);
        mpfr_add(r51406, r51403, r51405, MPFR_RNDN);
        return mpfr_get_d(r51406, MPFR_RNDN);
}

static mpfr_t r51407, r51408, r51409, r51410, r51411, r51412, r51413, r51414, r51415, r51416, r51417;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51407);
        mpfr_init(r51408);
        mpfr_init(r51409);
        mpfr_init(r51410);
        mpfr_init_set_str(r51411, "5", 10, MPFR_RNDN);
        mpfr_init(r51412);
        mpfr_init(r51413);
        mpfr_init(r51414);
        mpfr_init_set_str(r51415, "32", 10, MPFR_RNDN);
        mpfr_init(r51416);
        mpfr_init(r51417);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r51407, d1, MPFR_RNDN);
        mpfr_set_d(r51408, d2, MPFR_RNDN);
        mpfr_mul(r51409, r51407, r51408, MPFR_RNDN);
        mpfr_set_d(r51410, d3, MPFR_RNDN);
        ;
        mpfr_add(r51412, r51410, r51411, MPFR_RNDN);
        mpfr_mul(r51413, r51412, r51407, MPFR_RNDN);
        mpfr_add(r51414, r51409, r51413, MPFR_RNDN);
        ;
        mpfr_mul(r51416, r51407, r51415, MPFR_RNDN);
        mpfr_add(r51417, r51414, r51416, MPFR_RNDN);
        return mpfr_get_d(r51417, MPFR_RNDN);
}

