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

char *name = "Expression, p6";

double f_if(float a, float b, float c, float d) {
        float r16281227 = a;
        float r16281228 = b;
        float r16281229 = c;
        float r16281230 = d;
        float r16281231 = r16281229 + r16281230;
        float r16281232 = r16281228 + r16281231;
        float r16281233 = r16281227 + r16281232;
        float r16281234 = 2;
        float r16281235 = r16281233 * r16281234;
        return r16281235;
}

double f_id(double a, double b, double c, double d) {
        double r16281236 = a;
        double r16281237 = b;
        double r16281238 = c;
        double r16281239 = d;
        double r16281240 = r16281238 + r16281239;
        double r16281241 = r16281237 + r16281240;
        double r16281242 = r16281236 + r16281241;
        double r16281243 = 2;
        double r16281244 = r16281242 * r16281243;
        return r16281244;
}


double f_of(float a, float b, float c, float d) {
        float r16281245 = a;
        float r16281246 = b;
        float r16281247 = c;
        float r16281248 = d;
        float r16281249 = r16281247 + r16281248;
        float r16281250 = r16281246 + r16281249;
        float r16281251 = r16281245 + r16281250;
        float r16281252 = 2;
        float r16281253 = r16281251 * r16281252;
        return r16281253;
}

double f_od(double a, double b, double c, double d) {
        double r16281254 = a;
        double r16281255 = b;
        double r16281256 = c;
        double r16281257 = d;
        double r16281258 = r16281256 + r16281257;
        double r16281259 = r16281255 + r16281258;
        double r16281260 = r16281254 + r16281259;
        double r16281261 = 2;
        double r16281262 = r16281260 * r16281261;
        return r16281262;
}

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 r16281263, r16281264, r16281265, r16281266, r16281267, r16281268, r16281269, r16281270, r16281271;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r16281263);
        mpfr_init(r16281264);
        mpfr_init(r16281265);
        mpfr_init(r16281266);
        mpfr_init(r16281267);
        mpfr_init(r16281268);
        mpfr_init(r16281269);
        mpfr_init_set_str(r16281270, "2", 10, MPFR_RNDN);
        mpfr_init(r16281271);
}

double f_im(double a, double b, double c, double d) {
        mpfr_set_d(r16281263, a, MPFR_RNDN);
        mpfr_set_d(r16281264, b, MPFR_RNDN);
        mpfr_set_d(r16281265, c, MPFR_RNDN);
        mpfr_set_d(r16281266, d, MPFR_RNDN);
        mpfr_add(r16281267, r16281265, r16281266, MPFR_RNDN);
        mpfr_add(r16281268, r16281264, r16281267, MPFR_RNDN);
        mpfr_add(r16281269, r16281263, r16281268, MPFR_RNDN);
        ;
        mpfr_mul(r16281271, r16281269, r16281270, MPFR_RNDN);
        return mpfr_get_d(r16281271, MPFR_RNDN);
}

static mpfr_t r16281272, r16281273, r16281274, r16281275, r16281276, r16281277, r16281278, r16281279, r16281280;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r16281272);
        mpfr_init(r16281273);
        mpfr_init(r16281274);
        mpfr_init(r16281275);
        mpfr_init(r16281276);
        mpfr_init(r16281277);
        mpfr_init(r16281278);
        mpfr_init_set_str(r16281279, "2", 10, MPFR_RNDN);
        mpfr_init(r16281280);
}

double f_fm(double a, double b, double c, double d) {
        mpfr_set_d(r16281272, a, MPFR_RNDN);
        mpfr_set_d(r16281273, b, MPFR_RNDN);
        mpfr_set_d(r16281274, c, MPFR_RNDN);
        mpfr_set_d(r16281275, d, MPFR_RNDN);
        mpfr_add(r16281276, r16281274, r16281275, MPFR_RNDN);
        mpfr_add(r16281277, r16281273, r16281276, MPFR_RNDN);
        mpfr_add(r16281278, r16281272, r16281277, MPFR_RNDN);
        ;
        mpfr_mul(r16281280, r16281278, r16281279, MPFR_RNDN);
        return mpfr_get_d(r16281280, MPFR_RNDN);
}

static mpfr_t r16281281, r16281282, r16281283, r16281284, r16281285, r16281286, r16281287, r16281288, r16281289;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r16281281);
        mpfr_init(r16281282);
        mpfr_init(r16281283);
        mpfr_init(r16281284);
        mpfr_init(r16281285);
        mpfr_init(r16281286);
        mpfr_init(r16281287);
        mpfr_init_set_str(r16281288, "2", 10, MPFR_RNDN);
        mpfr_init(r16281289);
}

double f_dm(double a, double b, double c, double d) {
        mpfr_set_d(r16281281, a, MPFR_RNDN);
        mpfr_set_d(r16281282, b, MPFR_RNDN);
        mpfr_set_d(r16281283, c, MPFR_RNDN);
        mpfr_set_d(r16281284, d, MPFR_RNDN);
        mpfr_add(r16281285, r16281283, r16281284, MPFR_RNDN);
        mpfr_add(r16281286, r16281282, r16281285, MPFR_RNDN);
        mpfr_add(r16281287, r16281281, r16281286, MPFR_RNDN);
        ;
        mpfr_mul(r16281289, r16281287, r16281288, MPFR_RNDN);
        return mpfr_get_d(r16281289, MPFR_RNDN);
}

