#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 r26953 = d1;
        float r26954 = d2;
        float r26955 = r26953 * r26954;
        float r26956 = d3;
        float r26957 = 5;
        float r26958 = r26956 + r26957;
        float r26959 = r26958 * r26953;
        float r26960 = r26955 + r26959;
        float r26961 = 32;
        float r26962 = r26953 * r26961;
        float r26963 = r26960 + r26962;
        return r26963;
}

double f_id(double d1, double d2, double d3) {
        double r26964 = d1;
        double r26965 = d2;
        double r26966 = r26964 * r26965;
        double r26967 = d3;
        double r26968 = 5;
        double r26969 = r26967 + r26968;
        double r26970 = r26969 * r26964;
        double r26971 = r26966 + r26970;
        double r26972 = 32;
        double r26973 = r26964 * r26972;
        double r26974 = r26971 + r26973;
        return r26974;
}


double f_of(float d1, float d2, float d3) {
        float r26975 = d1;
        float r26976 = d2;
        float r26977 = 5;
        float r26978 = r26976 + r26977;
        float r26979 = 32;
        float r26980 = d3;
        float r26981 = r26979 + r26980;
        float r26982 = r26978 + r26981;
        float r26983 = r26975 * r26982;
        return r26983;
}

double f_od(double d1, double d2, double d3) {
        double r26984 = d1;
        double r26985 = d2;
        double r26986 = 5;
        double r26987 = r26985 + r26986;
        double r26988 = 32;
        double r26989 = d3;
        double r26990 = r26988 + r26989;
        double r26991 = r26987 + r26990;
        double r26992 = r26984 * r26991;
        return r26992;
}

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 r26993, r26994, r26995, r26996, r26997, r26998, r26999, r27000, r27001, r27002, r27003;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1168);
        mpfr_init(r26993);
        mpfr_init(r26994);
        mpfr_init(r26995);
        mpfr_init(r26996);
        mpfr_init_set_str(r26997, "5", 10, MPFR_RNDN);
        mpfr_init(r26998);
        mpfr_init(r26999);
        mpfr_init(r27000);
        mpfr_init_set_str(r27001, "32", 10, MPFR_RNDN);
        mpfr_init(r27002);
        mpfr_init(r27003);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r26993, d1, MPFR_RNDN);
        mpfr_set_d(r26994, d2, MPFR_RNDN);
        mpfr_mul(r26995, r26993, r26994, MPFR_RNDN);
        mpfr_set_d(r26996, d3, MPFR_RNDN);
        ;
        mpfr_add(r26998, r26996, r26997, MPFR_RNDN);
        mpfr_mul(r26999, r26998, r26993, MPFR_RNDN);
        mpfr_add(r27000, r26995, r26999, MPFR_RNDN);
        ;
        mpfr_mul(r27002, r26993, r27001, MPFR_RNDN);
        mpfr_add(r27003, r27000, r27002, MPFR_RNDN);
        return mpfr_get_d(r27003, MPFR_RNDN);
}

static mpfr_t r27004, r27005, r27006, r27007, r27008, r27009, r27010, r27011, r27012;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r27004);
        mpfr_init(r27005);
        mpfr_init_set_str(r27006, "5", 10, MPFR_RNDN);
        mpfr_init(r27007);
        mpfr_init_set_str(r27008, "32", 10, MPFR_RNDN);
        mpfr_init(r27009);
        mpfr_init(r27010);
        mpfr_init(r27011);
        mpfr_init(r27012);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r27004, d1, MPFR_RNDN);
        mpfr_set_d(r27005, d2, MPFR_RNDN);
        ;
        mpfr_add(r27007, r27005, r27006, MPFR_RNDN);
        ;
        mpfr_set_d(r27009, d3, MPFR_RNDN);
        mpfr_add(r27010, r27008, r27009, MPFR_RNDN);
        mpfr_add(r27011, r27007, r27010, MPFR_RNDN);
        mpfr_mul(r27012, r27004, r27011, MPFR_RNDN);
        return mpfr_get_d(r27012, MPFR_RNDN);
}

static mpfr_t r27013, r27014, r27015, r27016, r27017, r27018, r27019, r27020, r27021;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r27013);
        mpfr_init(r27014);
        mpfr_init_set_str(r27015, "5", 10, MPFR_RNDN);
        mpfr_init(r27016);
        mpfr_init_set_str(r27017, "32", 10, MPFR_RNDN);
        mpfr_init(r27018);
        mpfr_init(r27019);
        mpfr_init(r27020);
        mpfr_init(r27021);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r27013, d1, MPFR_RNDN);
        mpfr_set_d(r27014, d2, MPFR_RNDN);
        ;
        mpfr_add(r27016, r27014, r27015, MPFR_RNDN);
        ;
        mpfr_set_d(r27018, d3, MPFR_RNDN);
        mpfr_add(r27019, r27017, r27018, MPFR_RNDN);
        mpfr_add(r27020, r27016, r27019, MPFR_RNDN);
        mpfr_mul(r27021, r27013, r27020, MPFR_RNDN);
        return mpfr_get_d(r27021, MPFR_RNDN);
}

