#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 r11823 = d1;
        float r11824 = 10;
        float r11825 = r11823 * r11824;
        float r11826 = d2;
        float r11827 = r11823 * r11826;
        float r11828 = r11825 + r11827;
        float r11829 = 20;
        float r11830 = r11823 * r11829;
        float r11831 = r11828 + r11830;
        return r11831;
}

double f_id(double d1, double d2) {
        double r11832 = d1;
        double r11833 = 10;
        double r11834 = r11832 * r11833;
        double r11835 = d2;
        double r11836 = r11832 * r11835;
        double r11837 = r11834 + r11836;
        double r11838 = 20;
        double r11839 = r11832 * r11838;
        double r11840 = r11837 + r11839;
        return r11840;
}


double f_of(float d1, float d2) {
        float r11841 = d1;
        float r11842 = d2;
        float r11843 = 10;
        float r11844 = 20;
        float r11845 = r11843 + r11844;
        float r11846 = r11842 + r11845;
        float r11847 = r11841 * r11846;
        return r11847;
}

double f_od(double d1, double d2) {
        double r11848 = d1;
        double r11849 = d2;
        double r11850 = 10;
        double r11851 = 20;
        double r11852 = r11850 + r11851;
        double r11853 = r11849 + r11852;
        double r11854 = r11848 * r11853;
        return r11854;
}

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 r11855, r11856, r11857, r11858, r11859, r11860, r11861, r11862, r11863;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11855);
        mpfr_init_set_str(r11856, "10", 10, MPFR_RNDN);
        mpfr_init(r11857);
        mpfr_init(r11858);
        mpfr_init(r11859);
        mpfr_init(r11860);
        mpfr_init_set_str(r11861, "20", 10, MPFR_RNDN);
        mpfr_init(r11862);
        mpfr_init(r11863);
}

double f_im(double d1, double d2) {
        mpfr_set_d(r11855, d1, MPFR_RNDN);
        ;
        mpfr_mul(r11857, r11855, r11856, MPFR_RNDN);
        mpfr_set_d(r11858, d2, MPFR_RNDN);
        mpfr_mul(r11859, r11855, r11858, MPFR_RNDN);
        mpfr_add(r11860, r11857, r11859, MPFR_RNDN);
        ;
        mpfr_mul(r11862, r11855, r11861, MPFR_RNDN);
        mpfr_add(r11863, r11860, r11862, MPFR_RNDN);
        return mpfr_get_d(r11863, MPFR_RNDN);
}

static mpfr_t r11864, r11865, r11866, r11867, r11868, r11869, r11870;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11864);
        mpfr_init(r11865);
        mpfr_init_set_str(r11866, "10", 10, MPFR_RNDN);
        mpfr_init_set_str(r11867, "20", 10, MPFR_RNDN);
        mpfr_init(r11868);
        mpfr_init(r11869);
        mpfr_init(r11870);
}

double f_fm(double d1, double d2) {
        mpfr_set_d(r11864, d1, MPFR_RNDN);
        mpfr_set_d(r11865, d2, MPFR_RNDN);
        ;
        ;
        mpfr_add(r11868, r11866, r11867, MPFR_RNDN);
        mpfr_add(r11869, r11865, r11868, MPFR_RNDN);
        mpfr_mul(r11870, r11864, r11869, MPFR_RNDN);
        return mpfr_get_d(r11870, MPFR_RNDN);
}

static mpfr_t r11871, r11872, r11873, r11874, r11875, r11876, r11877;

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

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

