#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 r28785 = d1;
        float r28786 = d2;
        float r28787 = r28785 * r28786;
        float r28788 = d3;
        float r28789 = 5;
        float r28790 = r28788 + r28789;
        float r28791 = r28790 * r28785;
        float r28792 = r28787 + r28791;
        float r28793 = 32;
        float r28794 = r28785 * r28793;
        float r28795 = r28792 + r28794;
        return r28795;
}

double f_id(double d1, double d2, double d3) {
        double r28796 = d1;
        double r28797 = d2;
        double r28798 = r28796 * r28797;
        double r28799 = d3;
        double r28800 = 5;
        double r28801 = r28799 + r28800;
        double r28802 = r28801 * r28796;
        double r28803 = r28798 + r28802;
        double r28804 = 32;
        double r28805 = r28796 * r28804;
        double r28806 = r28803 + r28805;
        return r28806;
}


double f_of(float d1, float d2, float d3) {
        float r28807 = d1;
        float r28808 = d3;
        float r28809 = 5;
        float r28810 = r28808 + r28809;
        float r28811 = 32;
        float r28812 = d2;
        float r28813 = r28811 + r28812;
        float r28814 = r28810 + r28813;
        float r28815 = r28807 * r28814;
        return r28815;
}

double f_od(double d1, double d2, double d3) {
        double r28816 = d1;
        double r28817 = d3;
        double r28818 = 5;
        double r28819 = r28817 + r28818;
        double r28820 = 32;
        double r28821 = d2;
        double r28822 = r28820 + r28821;
        double r28823 = r28819 + r28822;
        double r28824 = r28816 * r28823;
        return r28824;
}

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 r28825, r28826, r28827, r28828, r28829, r28830, r28831, r28832, r28833, r28834, r28835;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r28825);
        mpfr_init(r28826);
        mpfr_init(r28827);
        mpfr_init(r28828);
        mpfr_init_set_str(r28829, "5", 10, MPFR_RNDN);
        mpfr_init(r28830);
        mpfr_init(r28831);
        mpfr_init(r28832);
        mpfr_init_set_str(r28833, "32", 10, MPFR_RNDN);
        mpfr_init(r28834);
        mpfr_init(r28835);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r28825, d1, MPFR_RNDN);
        mpfr_set_d(r28826, d2, MPFR_RNDN);
        mpfr_mul(r28827, r28825, r28826, MPFR_RNDN);
        mpfr_set_d(r28828, d3, MPFR_RNDN);
        ;
        mpfr_add(r28830, r28828, r28829, MPFR_RNDN);
        mpfr_mul(r28831, r28830, r28825, MPFR_RNDN);
        mpfr_add(r28832, r28827, r28831, MPFR_RNDN);
        ;
        mpfr_mul(r28834, r28825, r28833, MPFR_RNDN);
        mpfr_add(r28835, r28832, r28834, MPFR_RNDN);
        return mpfr_get_d(r28835, MPFR_RNDN);
}

static mpfr_t r28836, r28837, r28838, r28839, r28840, r28841, r28842, r28843, r28844;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r28836);
        mpfr_init(r28837);
        mpfr_init_set_str(r28838, "5", 10, MPFR_RNDN);
        mpfr_init(r28839);
        mpfr_init_set_str(r28840, "32", 10, MPFR_RNDN);
        mpfr_init(r28841);
        mpfr_init(r28842);
        mpfr_init(r28843);
        mpfr_init(r28844);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r28836, d1, MPFR_RNDN);
        mpfr_set_d(r28837, d3, MPFR_RNDN);
        ;
        mpfr_add(r28839, r28837, r28838, MPFR_RNDN);
        ;
        mpfr_set_d(r28841, d2, MPFR_RNDN);
        mpfr_add(r28842, r28840, r28841, MPFR_RNDN);
        mpfr_add(r28843, r28839, r28842, MPFR_RNDN);
        mpfr_mul(r28844, r28836, r28843, MPFR_RNDN);
        return mpfr_get_d(r28844, MPFR_RNDN);
}

static mpfr_t r28845, r28846, r28847, r28848, r28849, r28850, r28851, r28852, r28853;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r28845);
        mpfr_init(r28846);
        mpfr_init_set_str(r28847, "5", 10, MPFR_RNDN);
        mpfr_init(r28848);
        mpfr_init_set_str(r28849, "32", 10, MPFR_RNDN);
        mpfr_init(r28850);
        mpfr_init(r28851);
        mpfr_init(r28852);
        mpfr_init(r28853);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r28845, d1, MPFR_RNDN);
        mpfr_set_d(r28846, d3, MPFR_RNDN);
        ;
        mpfr_add(r28848, r28846, r28847, MPFR_RNDN);
        ;
        mpfr_set_d(r28850, d2, MPFR_RNDN);
        mpfr_add(r28851, r28849, r28850, MPFR_RNDN);
        mpfr_add(r28852, r28848, r28851, MPFR_RNDN);
        mpfr_mul(r28853, r28845, r28852, MPFR_RNDN);
        return mpfr_get_d(r28853, MPFR_RNDN);
}

