#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 r26948 = d1;
        float r26949 = d2;
        float r26950 = r26948 * r26949;
        float r26951 = d3;
        float r26952 = 5;
        float r26953 = r26951 + r26952;
        float r26954 = r26953 * r26948;
        float r26955 = r26950 + r26954;
        float r26956 = 32;
        float r26957 = r26948 * r26956;
        float r26958 = r26955 + r26957;
        return r26958;
}

double f_id(double d1, double d2, double d3) {
        double r26959 = d1;
        double r26960 = d2;
        double r26961 = r26959 * r26960;
        double r26962 = d3;
        double r26963 = 5;
        double r26964 = r26962 + r26963;
        double r26965 = r26964 * r26959;
        double r26966 = r26961 + r26965;
        double r26967 = 32;
        double r26968 = r26959 * r26967;
        double r26969 = r26966 + r26968;
        return r26969;
}


double f_of(float d1, float d2, float d3) {
        float r26970 = d1;
        float r26971 = d2;
        float r26972 = 5;
        float r26973 = r26971 + r26972;
        float r26974 = 32;
        float r26975 = d3;
        float r26976 = r26974 + r26975;
        float r26977 = r26973 + r26976;
        float r26978 = r26970 * r26977;
        return r26978;
}

double f_od(double d1, double d2, double d3) {
        double r26979 = d1;
        double r26980 = d2;
        double r26981 = 5;
        double r26982 = r26980 + r26981;
        double r26983 = 32;
        double r26984 = d3;
        double r26985 = r26983 + r26984;
        double r26986 = r26982 + r26985;
        double r26987 = r26979 * r26986;
        return r26987;
}

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 r26988, r26989, r26990, r26991, r26992, r26993, r26994, r26995, r26996, r26997, r26998;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26988);
        mpfr_init(r26989);
        mpfr_init(r26990);
        mpfr_init(r26991);
        mpfr_init_set_str(r26992, "5", 10, MPFR_RNDN);
        mpfr_init(r26993);
        mpfr_init(r26994);
        mpfr_init(r26995);
        mpfr_init_set_str(r26996, "32", 10, MPFR_RNDN);
        mpfr_init(r26997);
        mpfr_init(r26998);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r26988, d1, MPFR_RNDN);
        mpfr_set_d(r26989, d2, MPFR_RNDN);
        mpfr_mul(r26990, r26988, r26989, MPFR_RNDN);
        mpfr_set_d(r26991, d3, MPFR_RNDN);
        ;
        mpfr_add(r26993, r26991, r26992, MPFR_RNDN);
        mpfr_mul(r26994, r26993, r26988, MPFR_RNDN);
        mpfr_add(r26995, r26990, r26994, MPFR_RNDN);
        ;
        mpfr_mul(r26997, r26988, r26996, MPFR_RNDN);
        mpfr_add(r26998, r26995, r26997, MPFR_RNDN);
        return mpfr_get_d(r26998, MPFR_RNDN);
}

static mpfr_t r26999, r27000, r27001, r27002, r27003, r27004, r27005, r27006, r27007;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26999);
        mpfr_init(r27000);
        mpfr_init_set_str(r27001, "5", 10, MPFR_RNDN);
        mpfr_init(r27002);
        mpfr_init_set_str(r27003, "32", 10, MPFR_RNDN);
        mpfr_init(r27004);
        mpfr_init(r27005);
        mpfr_init(r27006);
        mpfr_init(r27007);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r26999, d1, MPFR_RNDN);
        mpfr_set_d(r27000, d2, MPFR_RNDN);
        ;
        mpfr_add(r27002, r27000, r27001, MPFR_RNDN);
        ;
        mpfr_set_d(r27004, d3, MPFR_RNDN);
        mpfr_add(r27005, r27003, r27004, MPFR_RNDN);
        mpfr_add(r27006, r27002, r27005, MPFR_RNDN);
        mpfr_mul(r27007, r26999, r27006, MPFR_RNDN);
        return mpfr_get_d(r27007, MPFR_RNDN);
}

static mpfr_t r27008, r27009, r27010, r27011, r27012, r27013, r27014, r27015, r27016;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r27008);
        mpfr_init(r27009);
        mpfr_init_set_str(r27010, "5", 10, MPFR_RNDN);
        mpfr_init(r27011);
        mpfr_init_set_str(r27012, "32", 10, MPFR_RNDN);
        mpfr_init(r27013);
        mpfr_init(r27014);
        mpfr_init(r27015);
        mpfr_init(r27016);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r27008, d1, MPFR_RNDN);
        mpfr_set_d(r27009, d2, MPFR_RNDN);
        ;
        mpfr_add(r27011, r27009, r27010, MPFR_RNDN);
        ;
        mpfr_set_d(r27013, d3, MPFR_RNDN);
        mpfr_add(r27014, r27012, r27013, MPFR_RNDN);
        mpfr_add(r27015, r27011, r27014, MPFR_RNDN);
        mpfr_mul(r27016, r27008, r27015, MPFR_RNDN);
        return mpfr_get_d(r27016, MPFR_RNDN);
}

