#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 r11913 = d1;
        float r11914 = d2;
        float r11915 = r11913 * r11914;
        float r11916 = d3;
        float r11917 = 5.0f;
        float r11918 = r11916 + r11917;
        float r11919 = r11918 * r11913;
        float r11920 = r11915 + r11919;
        float r11921 = 32.0f;
        float r11922 = r11913 * r11921;
        float r11923 = r11920 + r11922;
        return r11923;
}

double f_id(double d1, double d2, double d3) {
        double r11924 = d1;
        double r11925 = d2;
        double r11926 = r11924 * r11925;
        double r11927 = d3;
        double r11928 = 5.0;
        double r11929 = r11927 + r11928;
        double r11930 = r11929 * r11924;
        double r11931 = r11926 + r11930;
        double r11932 = 32.0;
        double r11933 = r11924 * r11932;
        double r11934 = r11931 + r11933;
        return r11934;
}


double f_of(float d1, float d2, float d3) {
        float r11935 = d3;
        float r11936 = 5.0f;
        float r11937 = r11935 + r11936;
        float r11938 = 32.0f;
        float r11939 = d2;
        float r11940 = r11938 + r11939;
        float r11941 = r11937 + r11940;
        float r11942 = d1;
        float r11943 = r11941 * r11942;
        return r11943;
}

double f_od(double d1, double d2, double d3) {
        double r11944 = d3;
        double r11945 = 5.0;
        double r11946 = r11944 + r11945;
        double r11947 = 32.0;
        double r11948 = d2;
        double r11949 = r11947 + r11948;
        double r11950 = r11946 + r11949;
        double r11951 = d1;
        double r11952 = r11950 * r11951;
        return r11952;
}

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 r11953, r11954, r11955, r11956, r11957, r11958, r11959, r11960, r11961, r11962, r11963;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11953);
        mpfr_init(r11954);
        mpfr_init(r11955);
        mpfr_init(r11956);
        mpfr_init_set_str(r11957, "5", 10, MPFR_RNDN);
        mpfr_init(r11958);
        mpfr_init(r11959);
        mpfr_init(r11960);
        mpfr_init_set_str(r11961, "32", 10, MPFR_RNDN);
        mpfr_init(r11962);
        mpfr_init(r11963);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r11953, d1, MPFR_RNDN);
        mpfr_set_d(r11954, d2, MPFR_RNDN);
        mpfr_mul(r11955, r11953, r11954, MPFR_RNDN);
        mpfr_set_d(r11956, d3, MPFR_RNDN);
        ;
        mpfr_add(r11958, r11956, r11957, MPFR_RNDN);
        mpfr_mul(r11959, r11958, r11953, MPFR_RNDN);
        mpfr_add(r11960, r11955, r11959, MPFR_RNDN);
        ;
        mpfr_mul(r11962, r11953, r11961, MPFR_RNDN);
        mpfr_add(r11963, r11960, r11962, MPFR_RNDN);
        return mpfr_get_d(r11963, MPFR_RNDN);
}

static mpfr_t r11964, r11965, r11966, r11967, r11968, r11969, r11970, r11971, r11972;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11964);
        mpfr_init_set_str(r11965, "5", 10, MPFR_RNDN);
        mpfr_init(r11966);
        mpfr_init_set_str(r11967, "32", 10, MPFR_RNDN);
        mpfr_init(r11968);
        mpfr_init(r11969);
        mpfr_init(r11970);
        mpfr_init(r11971);
        mpfr_init(r11972);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r11964, d3, MPFR_RNDN);
        ;
        mpfr_add(r11966, r11964, r11965, MPFR_RNDN);
        ;
        mpfr_set_d(r11968, d2, MPFR_RNDN);
        mpfr_add(r11969, r11967, r11968, MPFR_RNDN);
        mpfr_add(r11970, r11966, r11969, MPFR_RNDN);
        mpfr_set_d(r11971, d1, MPFR_RNDN);
        mpfr_mul(r11972, r11970, r11971, MPFR_RNDN);
        return mpfr_get_d(r11972, MPFR_RNDN);
}

static mpfr_t r11973, r11974, r11975, r11976, r11977, r11978, r11979, r11980, r11981;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11973);
        mpfr_init_set_str(r11974, "5", 10, MPFR_RNDN);
        mpfr_init(r11975);
        mpfr_init_set_str(r11976, "32", 10, MPFR_RNDN);
        mpfr_init(r11977);
        mpfr_init(r11978);
        mpfr_init(r11979);
        mpfr_init(r11980);
        mpfr_init(r11981);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r11973, d3, MPFR_RNDN);
        ;
        mpfr_add(r11975, r11973, r11974, MPFR_RNDN);
        ;
        mpfr_set_d(r11977, d2, MPFR_RNDN);
        mpfr_add(r11978, r11976, r11977, MPFR_RNDN);
        mpfr_add(r11979, r11975, r11978, MPFR_RNDN);
        mpfr_set_d(r11980, d1, MPFR_RNDN);
        mpfr_mul(r11981, r11979, r11980, MPFR_RNDN);
        return mpfr_get_d(r11981, MPFR_RNDN);
}

