#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "FastMath test1";

double f_if(float d) {
        float r27928 = d;
        float r27929 = 10;
        float r27930 = r27928 * r27929;
        float r27931 = 20;
        float r27932 = r27928 * r27931;
        float r27933 = r27930 + r27932;
        return r27933;
}

double f_id(double d) {
        double r27934 = d;
        double r27935 = 10;
        double r27936 = r27934 * r27935;
        double r27937 = 20;
        double r27938 = r27934 * r27937;
        double r27939 = r27936 + r27938;
        return r27939;
}


double f_of(float d) {
        float r27940 = 20;
        float r27941 = 10;
        float r27942 = r27940 + r27941;
        float r27943 = d;
        float r27944 = r27942 * r27943;
        return r27944;
}

double f_od(double d) {
        double r27945 = 20;
        double r27946 = 10;
        double r27947 = r27945 + r27946;
        double r27948 = d;
        double r27949 = r27947 * r27948;
        return r27949;
}

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 r27950, r27951, r27952, r27953, r27954, r27955;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r27950);
        mpfr_init_set_str(r27951, "10", 10, MPFR_RNDN);
        mpfr_init(r27952);
        mpfr_init_set_str(r27953, "20", 10, MPFR_RNDN);
        mpfr_init(r27954);
        mpfr_init(r27955);
}

double f_im(double d) {
        mpfr_set_d(r27950, d, MPFR_RNDN);
        ;
        mpfr_mul(r27952, r27950, r27951, MPFR_RNDN);
        ;
        mpfr_mul(r27954, r27950, r27953, MPFR_RNDN);
        mpfr_add(r27955, r27952, r27954, MPFR_RNDN);
        return mpfr_get_d(r27955, MPFR_RNDN);
}

static mpfr_t r27956, r27957, r27958, r27959, r27960;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r27956, "20", 10, MPFR_RNDN);
        mpfr_init_set_str(r27957, "10", 10, MPFR_RNDN);
        mpfr_init(r27958);
        mpfr_init(r27959);
        mpfr_init(r27960);
}

double f_fm(double d) {
        ;
        ;
        mpfr_add(r27958, r27956, r27957, MPFR_RNDN);
        mpfr_set_d(r27959, d, MPFR_RNDN);
        mpfr_mul(r27960, r27958, r27959, MPFR_RNDN);
        return mpfr_get_d(r27960, MPFR_RNDN);
}

static mpfr_t r27961, r27962, r27963, r27964, r27965;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r27961, "20", 10, MPFR_RNDN);
        mpfr_init_set_str(r27962, "10", 10, MPFR_RNDN);
        mpfr_init(r27963);
        mpfr_init(r27964);
        mpfr_init(r27965);
}

double f_dm(double d) {
        ;
        ;
        mpfr_add(r27963, r27961, r27962, MPFR_RNDN);
        mpfr_set_d(r27964, d, MPFR_RNDN);
        mpfr_mul(r27965, r27963, r27964, MPFR_RNDN);
        return mpfr_get_d(r27965, MPFR_RNDN);
}

