#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 r11861 = d;
        float r11862 = 10.0f;
        float r11863 = r11861 * r11862;
        float r11864 = 20.0f;
        float r11865 = r11861 * r11864;
        float r11866 = r11863 + r11865;
        return r11866;
}

double f_id(double d) {
        double r11867 = d;
        double r11868 = 10.0;
        double r11869 = r11867 * r11868;
        double r11870 = 20.0;
        double r11871 = r11867 * r11870;
        double r11872 = r11869 + r11871;
        return r11872;
}


double f_of(float d) {
        float r11873 = 20.0f;
        float r11874 = 10.0f;
        float r11875 = r11873 + r11874;
        float r11876 = d;
        float r11877 = r11875 * r11876;
        return r11877;
}

double f_od(double d) {
        double r11878 = 20.0;
        double r11879 = 10.0;
        double r11880 = r11878 + r11879;
        double r11881 = d;
        double r11882 = r11880 * r11881;
        return r11882;
}

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 r11883, r11884, r11885, r11886, r11887, r11888;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r11883);
        mpfr_init_set_str(r11884, "10", 10, MPFR_RNDN);
        mpfr_init(r11885);
        mpfr_init_set_str(r11886, "20", 10, MPFR_RNDN);
        mpfr_init(r11887);
        mpfr_init(r11888);
}

double f_im(double d) {
        mpfr_set_d(r11883, d, MPFR_RNDN);
        ;
        mpfr_mul(r11885, r11883, r11884, MPFR_RNDN);
        ;
        mpfr_mul(r11887, r11883, r11886, MPFR_RNDN);
        mpfr_add(r11888, r11885, r11887, MPFR_RNDN);
        return mpfr_get_d(r11888, MPFR_RNDN);
}

static mpfr_t r11889, r11890, r11891, r11892, r11893;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r11889, "20", 10, MPFR_RNDN);
        mpfr_init_set_str(r11890, "10", 10, MPFR_RNDN);
        mpfr_init(r11891);
        mpfr_init(r11892);
        mpfr_init(r11893);
}

double f_fm(double d) {
        ;
        ;
        mpfr_add(r11891, r11889, r11890, MPFR_RNDN);
        mpfr_set_d(r11892, d, MPFR_RNDN);
        mpfr_mul(r11893, r11891, r11892, MPFR_RNDN);
        return mpfr_get_d(r11893, MPFR_RNDN);
}

static mpfr_t r11894, r11895, r11896, r11897, r11898;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r11894, "20", 10, MPFR_RNDN);
        mpfr_init_set_str(r11895, "10", 10, MPFR_RNDN);
        mpfr_init(r11896);
        mpfr_init(r11897);
        mpfr_init(r11898);
}

double f_dm(double d) {
        ;
        ;
        mpfr_add(r11896, r11894, r11895, MPFR_RNDN);
        mpfr_set_d(r11897, d, MPFR_RNDN);
        mpfr_mul(r11898, r11896, r11897, MPFR_RNDN);
        return mpfr_get_d(r11898, MPFR_RNDN);
}

