#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 r51379 = d1;
        float r51380 = d2;
        float r51381 = r51379 * r51380;
        float r51382 = d3;
        float r51383 = 5;
        float r51384 = r51382 + r51383;
        float r51385 = r51384 * r51379;
        float r51386 = r51381 + r51385;
        float r51387 = 32;
        float r51388 = r51379 * r51387;
        float r51389 = r51386 + r51388;
        return r51389;
}

double f_id(double d1, double d2, double d3) {
        double r51390 = d1;
        double r51391 = d2;
        double r51392 = r51390 * r51391;
        double r51393 = d3;
        double r51394 = 5;
        double r51395 = r51393 + r51394;
        double r51396 = r51395 * r51390;
        double r51397 = r51392 + r51396;
        double r51398 = 32;
        double r51399 = r51390 * r51398;
        double r51400 = r51397 + r51399;
        return r51400;
}


double f_of(float d1, float d2, float d3) {
        float r51401 = d1;
        float r51402 = d2;
        float r51403 = r51401 * r51402;
        float r51404 = d3;
        float r51405 = 5;
        float r51406 = r51404 + r51405;
        float r51407 = r51406 * r51401;
        float r51408 = r51403 + r51407;
        float r51409 = 32;
        float r51410 = r51401 * r51409;
        float r51411 = r51408 + r51410;
        return r51411;
}

double f_od(double d1, double d2, double d3) {
        double r51412 = d1;
        double r51413 = d2;
        double r51414 = r51412 * r51413;
        double r51415 = d3;
        double r51416 = 5;
        double r51417 = r51415 + r51416;
        double r51418 = r51417 * r51412;
        double r51419 = r51414 + r51418;
        double r51420 = 32;
        double r51421 = r51412 * r51420;
        double r51422 = r51419 + r51421;
        return r51422;
}

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 r51423, r51424, r51425, r51426, r51427, r51428, r51429, r51430, r51431, r51432, r51433;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51423);
        mpfr_init(r51424);
        mpfr_init(r51425);
        mpfr_init(r51426);
        mpfr_init_set_str(r51427, "5", 10, MPFR_RNDN);
        mpfr_init(r51428);
        mpfr_init(r51429);
        mpfr_init(r51430);
        mpfr_init_set_str(r51431, "32", 10, MPFR_RNDN);
        mpfr_init(r51432);
        mpfr_init(r51433);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r51423, d1, MPFR_RNDN);
        mpfr_set_d(r51424, d2, MPFR_RNDN);
        mpfr_mul(r51425, r51423, r51424, MPFR_RNDN);
        mpfr_set_d(r51426, d3, MPFR_RNDN);
        ;
        mpfr_add(r51428, r51426, r51427, MPFR_RNDN);
        mpfr_mul(r51429, r51428, r51423, MPFR_RNDN);
        mpfr_add(r51430, r51425, r51429, MPFR_RNDN);
        ;
        mpfr_mul(r51432, r51423, r51431, MPFR_RNDN);
        mpfr_add(r51433, r51430, r51432, MPFR_RNDN);
        return mpfr_get_d(r51433, MPFR_RNDN);
}

static mpfr_t r51434, r51435, r51436, r51437, r51438, r51439, r51440, r51441, r51442, r51443, r51444;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51434);
        mpfr_init(r51435);
        mpfr_init(r51436);
        mpfr_init(r51437);
        mpfr_init_set_str(r51438, "5", 10, MPFR_RNDN);
        mpfr_init(r51439);
        mpfr_init(r51440);
        mpfr_init(r51441);
        mpfr_init_set_str(r51442, "32", 10, MPFR_RNDN);
        mpfr_init(r51443);
        mpfr_init(r51444);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r51434, d1, MPFR_RNDN);
        mpfr_set_d(r51435, d2, MPFR_RNDN);
        mpfr_mul(r51436, r51434, r51435, MPFR_RNDN);
        mpfr_set_d(r51437, d3, MPFR_RNDN);
        ;
        mpfr_add(r51439, r51437, r51438, MPFR_RNDN);
        mpfr_mul(r51440, r51439, r51434, MPFR_RNDN);
        mpfr_add(r51441, r51436, r51440, MPFR_RNDN);
        ;
        mpfr_mul(r51443, r51434, r51442, MPFR_RNDN);
        mpfr_add(r51444, r51441, r51443, MPFR_RNDN);
        return mpfr_get_d(r51444, MPFR_RNDN);
}

static mpfr_t r51445, r51446, r51447, r51448, r51449, r51450, r51451, r51452, r51453, r51454, r51455;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51445);
        mpfr_init(r51446);
        mpfr_init(r51447);
        mpfr_init(r51448);
        mpfr_init_set_str(r51449, "5", 10, MPFR_RNDN);
        mpfr_init(r51450);
        mpfr_init(r51451);
        mpfr_init(r51452);
        mpfr_init_set_str(r51453, "32", 10, MPFR_RNDN);
        mpfr_init(r51454);
        mpfr_init(r51455);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r51445, d1, MPFR_RNDN);
        mpfr_set_d(r51446, d2, MPFR_RNDN);
        mpfr_mul(r51447, r51445, r51446, MPFR_RNDN);
        mpfr_set_d(r51448, d3, MPFR_RNDN);
        ;
        mpfr_add(r51450, r51448, r51449, MPFR_RNDN);
        mpfr_mul(r51451, r51450, r51445, MPFR_RNDN);
        mpfr_add(r51452, r51447, r51451, MPFR_RNDN);
        ;
        mpfr_mul(r51454, r51445, r51453, MPFR_RNDN);
        mpfr_add(r51455, r51452, r51454, MPFR_RNDN);
        return mpfr_get_d(r51455, MPFR_RNDN);
}

