#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 r10237 = a;
        float r10238 = b;
        float r10239 = c;
        float r10240 = d;
        float r10241 = r10239 + r10240;
        float r10242 = r10238 + r10241;
        float r10243 = r10237 + r10242;
        float r10244 = 2;
        float r10245 = r10243 * r10244;
        return r10245;
}

double f_id(double a, double b, double c, double d) {
        double r10246 = a;
        double r10247 = b;
        double r10248 = c;
        double r10249 = d;
        double r10250 = r10248 + r10249;
        double r10251 = r10247 + r10250;
        double r10252 = r10246 + r10251;
        double r10253 = 2;
        double r10254 = r10252 * r10253;
        return r10254;
}


double f_of(float a, float b, float c, float d) {
        float r10255 = 1;
        float r10256 = cbrt(r10255);
        float r10257 = c;
        float r10258 = b;
        float r10259 = r10257 + r10258;
        float r10260 = a;
        float r10261 = d;
        float r10262 = r10260 + r10261;
        float r10263 = r10259 + r10262;
        float r10264 = r10256 * r10263;
        float r10265 = 2;
        float r10266 = r10264 * r10265;
        return r10266;
}

double f_od(double a, double b, double c, double d) {
        double r10267 = 1;
        double r10268 = cbrt(r10267);
        double r10269 = c;
        double r10270 = b;
        double r10271 = r10269 + r10270;
        double r10272 = a;
        double r10273 = d;
        double r10274 = r10272 + r10273;
        double r10275 = r10271 + r10274;
        double r10276 = r10268 * r10275;
        double r10277 = 2;
        double r10278 = r10276 * r10277;
        return r10278;
}

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 r10279, r10280, r10281, r10282, r10283, r10284, r10285, r10286, r10287;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r10279);
        mpfr_init(r10280);
        mpfr_init(r10281);
        mpfr_init(r10282);
        mpfr_init(r10283);
        mpfr_init(r10284);
        mpfr_init(r10285);
        mpfr_init_set_str(r10286, "2", 10, MPFR_RNDN);
        mpfr_init(r10287);
}

double f_im(double a, double b, double c, double d) {
        mpfr_set_d(r10279, a, MPFR_RNDN);
        mpfr_set_d(r10280, b, MPFR_RNDN);
        mpfr_set_d(r10281, c, MPFR_RNDN);
        mpfr_set_d(r10282, d, MPFR_RNDN);
        mpfr_add(r10283, r10281, r10282, MPFR_RNDN);
        mpfr_add(r10284, r10280, r10283, MPFR_RNDN);
        mpfr_add(r10285, r10279, r10284, MPFR_RNDN);
        ;
        mpfr_mul(r10287, r10285, r10286, MPFR_RNDN);
        return mpfr_get_d(r10287, MPFR_RNDN);
}

static mpfr_t r10288, r10289, r10290, r10291, r10292, r10293, r10294, r10295, r10296, r10297, r10298, r10299;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r10288, "1", 10, MPFR_RNDN);
        mpfr_init(r10289);
        mpfr_init(r10290);
        mpfr_init(r10291);
        mpfr_init(r10292);
        mpfr_init(r10293);
        mpfr_init(r10294);
        mpfr_init(r10295);
        mpfr_init(r10296);
        mpfr_init(r10297);
        mpfr_init_set_str(r10298, "2", 10, MPFR_RNDN);
        mpfr_init(r10299);
}

double f_fm(double a, double b, double c, double d) {
        ;
        mpfr_cbrt(r10289, r10288, MPFR_RNDN);
        mpfr_set_d(r10290, c, MPFR_RNDN);
        mpfr_set_d(r10291, b, MPFR_RNDN);
        mpfr_add(r10292, r10290, r10291, MPFR_RNDN);
        mpfr_set_d(r10293, a, MPFR_RNDN);
        mpfr_set_d(r10294, d, MPFR_RNDN);
        mpfr_add(r10295, r10293, r10294, MPFR_RNDN);
        mpfr_add(r10296, r10292, r10295, MPFR_RNDN);
        mpfr_mul(r10297, r10289, r10296, MPFR_RNDN);
        ;
        mpfr_mul(r10299, r10297, r10298, MPFR_RNDN);
        return mpfr_get_d(r10299, MPFR_RNDN);
}

static mpfr_t r10300, r10301, r10302, r10303, r10304, r10305, r10306, r10307, r10308, r10309, r10310, r10311;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r10300, "1", 10, MPFR_RNDN);
        mpfr_init(r10301);
        mpfr_init(r10302);
        mpfr_init(r10303);
        mpfr_init(r10304);
        mpfr_init(r10305);
        mpfr_init(r10306);
        mpfr_init(r10307);
        mpfr_init(r10308);
        mpfr_init(r10309);
        mpfr_init_set_str(r10310, "2", 10, MPFR_RNDN);
        mpfr_init(r10311);
}

double f_dm(double a, double b, double c, double d) {
        ;
        mpfr_cbrt(r10301, r10300, MPFR_RNDN);
        mpfr_set_d(r10302, c, MPFR_RNDN);
        mpfr_set_d(r10303, b, MPFR_RNDN);
        mpfr_add(r10304, r10302, r10303, MPFR_RNDN);
        mpfr_set_d(r10305, a, MPFR_RNDN);
        mpfr_set_d(r10306, d, MPFR_RNDN);
        mpfr_add(r10307, r10305, r10306, MPFR_RNDN);
        mpfr_add(r10308, r10304, r10307, MPFR_RNDN);
        mpfr_mul(r10309, r10301, r10308, MPFR_RNDN);
        ;
        mpfr_mul(r10311, r10309, r10310, MPFR_RNDN);
        return mpfr_get_d(r10311, MPFR_RNDN);
}

