#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 r11878 = d;
        float r11879 = 10;
        float r11880 = r11878 * r11879;
        float r11881 = 20;
        float r11882 = r11878 * r11881;
        float r11883 = r11880 + r11882;
        return r11883;
}

double f_id(double d) {
        double r11884 = d;
        double r11885 = 10;
        double r11886 = r11884 * r11885;
        double r11887 = 20;
        double r11888 = r11884 * r11887;
        double r11889 = r11886 + r11888;
        return r11889;
}


double f_of(float d) {
        float r11890 = d;
        float r11891 = 10;
        float r11892 = 20;
        float r11893 = r11891 + r11892;
        float r11894 = r11890 * r11893;
        return r11894;
}

double f_od(double d) {
        double r11895 = d;
        double r11896 = 10;
        double r11897 = 20;
        double r11898 = r11896 + r11897;
        double r11899 = r11895 * r11898;
        return r11899;
}

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 r11900, r11901, r11902, r11903, r11904, r11905;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r11900);
        mpfr_init_set_str(r11901, "10", 10, MPFR_RNDN);
        mpfr_init(r11902);
        mpfr_init_set_str(r11903, "20", 10, MPFR_RNDN);
        mpfr_init(r11904);
        mpfr_init(r11905);
}

double f_im(double d) {
        mpfr_set_d(r11900, d, MPFR_RNDN);
        ;
        mpfr_mul(r11902, r11900, r11901, MPFR_RNDN);
        ;
        mpfr_mul(r11904, r11900, r11903, MPFR_RNDN);
        mpfr_add(r11905, r11902, r11904, MPFR_RNDN);
        return mpfr_get_d(r11905, MPFR_RNDN);
}

static mpfr_t r11906, r11907, r11908, r11909, r11910;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r11906);
        mpfr_init_set_str(r11907, "10", 10, MPFR_RNDN);
        mpfr_init_set_str(r11908, "20", 10, MPFR_RNDN);
        mpfr_init(r11909);
        mpfr_init(r11910);
}

double f_fm(double d) {
        mpfr_set_d(r11906, d, MPFR_RNDN);
        ;
        ;
        mpfr_add(r11909, r11907, r11908, MPFR_RNDN);
        mpfr_mul(r11910, r11906, r11909, MPFR_RNDN);
        return mpfr_get_d(r11910, MPFR_RNDN);
}

static mpfr_t r11911, r11912, r11913, r11914, r11915;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r11911);
        mpfr_init_set_str(r11912, "10", 10, MPFR_RNDN);
        mpfr_init_set_str(r11913, "20", 10, MPFR_RNDN);
        mpfr_init(r11914);
        mpfr_init(r11915);
}

double f_dm(double d) {
        mpfr_set_d(r11911, d, MPFR_RNDN);
        ;
        ;
        mpfr_add(r11914, r11912, r11913, MPFR_RNDN);
        mpfr_mul(r11915, r11911, r11914, MPFR_RNDN);
        return mpfr_get_d(r11915, MPFR_RNDN);
}

