#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 r26436 = a;
        float r26437 = b;
        float r26438 = c;
        float r26439 = d;
        float r26440 = r26438 + r26439;
        float r26441 = r26437 + r26440;
        float r26442 = r26436 + r26441;
        float r26443 = 2;
        float r26444 = r26442 * r26443;
        return r26444;
}

double f_id(double a, double b, double c, double d) {
        double r26445 = a;
        double r26446 = b;
        double r26447 = c;
        double r26448 = d;
        double r26449 = r26447 + r26448;
        double r26450 = r26446 + r26449;
        double r26451 = r26445 + r26450;
        double r26452 = 2;
        double r26453 = r26451 * r26452;
        return r26453;
}


double f_of(float a, float b, float c, float d) {
        float r26454 = a;
        float r26455 = b;
        float r26456 = c;
        float r26457 = r26455 + r26456;
        float r26458 = d;
        float r26459 = r26457 + r26458;
        float r26460 = r26454 + r26459;
        float r26461 = cbrt(r26460);
        float r26462 = r26461 * r26461;
        float r26463 = r26454 + r26458;
        float r26464 = r26457 + r26463;
        float r26465 = 3;
        float r26466 = pow(r26464, r26465);
        float r26467 = cbrt(r26466);
        float r26468 = cbrt(r26467);
        float r26469 = r26462 * r26468;
        float r26470 = 2;
        float r26471 = r26469 * r26470;
        return r26471;
}

double f_od(double a, double b, double c, double d) {
        double r26472 = a;
        double r26473 = b;
        double r26474 = c;
        double r26475 = r26473 + r26474;
        double r26476 = d;
        double r26477 = r26475 + r26476;
        double r26478 = r26472 + r26477;
        double r26479 = cbrt(r26478);
        double r26480 = r26479 * r26479;
        double r26481 = r26472 + r26476;
        double r26482 = r26475 + r26481;
        double r26483 = 3;
        double r26484 = pow(r26482, r26483);
        double r26485 = cbrt(r26484);
        double r26486 = cbrt(r26485);
        double r26487 = r26480 * r26486;
        double r26488 = 2;
        double r26489 = r26487 * r26488;
        return r26489;
}

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 r26490, r26491, r26492, r26493, r26494, r26495, r26496, r26497, r26498;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r26490);
        mpfr_init(r26491);
        mpfr_init(r26492);
        mpfr_init(r26493);
        mpfr_init(r26494);
        mpfr_init(r26495);
        mpfr_init(r26496);
        mpfr_init_set_str(r26497, "2", 10, MPFR_RNDN);
        mpfr_init(r26498);
}

double f_im(double a, double b, double c, double d) {
        mpfr_set_d(r26490, a, MPFR_RNDN);
        mpfr_set_d(r26491, b, MPFR_RNDN);
        mpfr_set_d(r26492, c, MPFR_RNDN);
        mpfr_set_d(r26493, d, MPFR_RNDN);
        mpfr_add(r26494, r26492, r26493, MPFR_RNDN);
        mpfr_add(r26495, r26491, r26494, MPFR_RNDN);
        mpfr_add(r26496, r26490, r26495, MPFR_RNDN);
        ;
        mpfr_mul(r26498, r26496, r26497, MPFR_RNDN);
        return mpfr_get_d(r26498, MPFR_RNDN);
}

static mpfr_t r26499, r26500, r26501, r26502, r26503, r26504, r26505, r26506, r26507, r26508, r26509, r26510, r26511, r26512, r26513, r26514, r26515, r26516;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r26499);
        mpfr_init(r26500);
        mpfr_init(r26501);
        mpfr_init(r26502);
        mpfr_init(r26503);
        mpfr_init(r26504);
        mpfr_init(r26505);
        mpfr_init(r26506);
        mpfr_init(r26507);
        mpfr_init(r26508);
        mpfr_init(r26509);
        mpfr_init_set_str(r26510, "3", 10, MPFR_RNDN);
        mpfr_init(r26511);
        mpfr_init(r26512);
        mpfr_init(r26513);
        mpfr_init(r26514);
        mpfr_init_set_str(r26515, "2", 10, MPFR_RNDN);
        mpfr_init(r26516);
}

double f_fm(double a, double b, double c, double d) {
        mpfr_set_d(r26499, a, MPFR_RNDN);
        mpfr_set_d(r26500, b, MPFR_RNDN);
        mpfr_set_d(r26501, c, MPFR_RNDN);
        mpfr_add(r26502, r26500, r26501, MPFR_RNDN);
        mpfr_set_d(r26503, d, MPFR_RNDN);
        mpfr_add(r26504, r26502, r26503, MPFR_RNDN);
        mpfr_add(r26505, r26499, r26504, MPFR_RNDN);
        mpfr_cbrt(r26506, r26505, MPFR_RNDN);
        mpfr_mul(r26507, r26506, r26506, MPFR_RNDN);
        mpfr_add(r26508, r26499, r26503, MPFR_RNDN);
        mpfr_add(r26509, r26502, r26508, MPFR_RNDN);
        ;
        mpfr_pow(r26511, r26509, r26510, MPFR_RNDN);
        mpfr_cbrt(r26512, r26511, MPFR_RNDN);
        mpfr_cbrt(r26513, r26512, MPFR_RNDN);
        mpfr_mul(r26514, r26507, r26513, MPFR_RNDN);
        ;
        mpfr_mul(r26516, r26514, r26515, MPFR_RNDN);
        return mpfr_get_d(r26516, MPFR_RNDN);
}

static mpfr_t r26517, r26518, r26519, r26520, r26521, r26522, r26523, r26524, r26525, r26526, r26527, r26528, r26529, r26530, r26531, r26532, r26533, r26534;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r26517);
        mpfr_init(r26518);
        mpfr_init(r26519);
        mpfr_init(r26520);
        mpfr_init(r26521);
        mpfr_init(r26522);
        mpfr_init(r26523);
        mpfr_init(r26524);
        mpfr_init(r26525);
        mpfr_init(r26526);
        mpfr_init(r26527);
        mpfr_init_set_str(r26528, "3", 10, MPFR_RNDN);
        mpfr_init(r26529);
        mpfr_init(r26530);
        mpfr_init(r26531);
        mpfr_init(r26532);
        mpfr_init_set_str(r26533, "2", 10, MPFR_RNDN);
        mpfr_init(r26534);
}

double f_dm(double a, double b, double c, double d) {
        mpfr_set_d(r26517, a, MPFR_RNDN);
        mpfr_set_d(r26518, b, MPFR_RNDN);
        mpfr_set_d(r26519, c, MPFR_RNDN);
        mpfr_add(r26520, r26518, r26519, MPFR_RNDN);
        mpfr_set_d(r26521, d, MPFR_RNDN);
        mpfr_add(r26522, r26520, r26521, MPFR_RNDN);
        mpfr_add(r26523, r26517, r26522, MPFR_RNDN);
        mpfr_cbrt(r26524, r26523, MPFR_RNDN);
        mpfr_mul(r26525, r26524, r26524, MPFR_RNDN);
        mpfr_add(r26526, r26517, r26521, MPFR_RNDN);
        mpfr_add(r26527, r26520, r26526, MPFR_RNDN);
        ;
        mpfr_pow(r26529, r26527, r26528, MPFR_RNDN);
        mpfr_cbrt(r26530, r26529, MPFR_RNDN);
        mpfr_cbrt(r26531, r26530, MPFR_RNDN);
        mpfr_mul(r26532, r26525, r26531, MPFR_RNDN);
        ;
        mpfr_mul(r26534, r26532, r26533, MPFR_RNDN);
        return mpfr_get_d(r26534, MPFR_RNDN);
}

