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

char *name = "FastMath test2";

double f_if(float d1, float d2) {
        float r11843 = d1;
        float r11844 = 10.0f;
        float r11845 = r11843 * r11844;
        float r11846 = d2;
        float r11847 = r11843 * r11846;
        float r11848 = r11845 + r11847;
        float r11849 = 20.0f;
        float r11850 = r11843 * r11849;
        float r11851 = r11848 + r11850;
        return r11851;
}

double f_id(double d1, double d2) {
        double r11852 = d1;
        double r11853 = 10.0;
        double r11854 = r11852 * r11853;
        double r11855 = d2;
        double r11856 = r11852 * r11855;
        double r11857 = r11854 + r11856;
        double r11858 = 20.0;
        double r11859 = r11852 * r11858;
        double r11860 = r11857 + r11859;
        return r11860;
}


double f_of(float d1, float d2) {
        float r11861 = 30.0f;
        float r11862 = d2;
        float r11863 = r11861 + r11862;
        float r11864 = d1;
        float r11865 = r11863 * r11864;
        return r11865;
}

double f_od(double d1, double d2) {
        double r11866 = 30.0;
        double r11867 = d2;
        double r11868 = r11866 + r11867;
        double r11869 = d1;
        double r11870 = r11868 * r11869;
        return r11870;
}

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 r11871, r11872, r11873, r11874, r11875, r11876, r11877, r11878, r11879;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11871);
        mpfr_init_set_str(r11872, "10", 10, MPFR_RNDN);
        mpfr_init(r11873);
        mpfr_init(r11874);
        mpfr_init(r11875);
        mpfr_init(r11876);
        mpfr_init_set_str(r11877, "20", 10, MPFR_RNDN);
        mpfr_init(r11878);
        mpfr_init(r11879);
}

double f_im(double d1, double d2) {
        mpfr_set_d(r11871, d1, MPFR_RNDN);
        ;
        mpfr_mul(r11873, r11871, r11872, MPFR_RNDN);
        mpfr_set_d(r11874, d2, MPFR_RNDN);
        mpfr_mul(r11875, r11871, r11874, MPFR_RNDN);
        mpfr_add(r11876, r11873, r11875, MPFR_RNDN);
        ;
        mpfr_mul(r11878, r11871, r11877, MPFR_RNDN);
        mpfr_add(r11879, r11876, r11878, MPFR_RNDN);
        return mpfr_get_d(r11879, MPFR_RNDN);
}

static mpfr_t r11880, r11881, r11882, r11883, r11884;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11880, "30", 10, MPFR_RNDN);
        mpfr_init(r11881);
        mpfr_init(r11882);
        mpfr_init(r11883);
        mpfr_init(r11884);
}

double f_fm(double d1, double d2) {
        ;
        mpfr_set_d(r11881, d2, MPFR_RNDN);
        mpfr_add(r11882, r11880, r11881, MPFR_RNDN);
        mpfr_set_d(r11883, d1, MPFR_RNDN);
        mpfr_mul(r11884, r11882, r11883, MPFR_RNDN);
        return mpfr_get_d(r11884, MPFR_RNDN);
}

static mpfr_t r11885, r11886, r11887, r11888, r11889;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11885, "30", 10, MPFR_RNDN);
        mpfr_init(r11886);
        mpfr_init(r11887);
        mpfr_init(r11888);
        mpfr_init(r11889);
}

double f_dm(double d1, double d2) {
        ;
        mpfr_set_d(r11886, d2, MPFR_RNDN);
        mpfr_add(r11887, r11885, r11886, MPFR_RNDN);
        mpfr_set_d(r11888, d1, MPFR_RNDN);
        mpfr_mul(r11889, r11887, r11888, MPFR_RNDN);
        return mpfr_get_d(r11889, MPFR_RNDN);
}

