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

char *name = "Rosa's TurbineBenchmark";

double f_if(float v, float w, float r) {
        float r7517 = 3.0f;
        float r7518 = 2.0f;
        float r7519 = r;
        float r7520 = r7519 * r7519;
        float r7521 = r7518 / r7520;
        float r7522 = r7517 + r7521;
        float r7523 = 0.125f;
        float r7524 = v;
        float r7525 = r7518 * r7524;
        float r7526 = r7517 - r7525;
        float r7527 = r7523 * r7526;
        float r7528 = w;
        float r7529 = r7528 * r7528;
        float r7530 = r7529 * r7519;
        float r7531 = r7530 * r7519;
        float r7532 = r7527 * r7531;
        float r7533 = 1.0f;
        float r7534 = r7533 - r7524;
        float r7535 = r7532 / r7534;
        float r7536 = r7522 - r7535;
        float r7537 = 4.5f;
        float r7538 = r7536 - r7537;
        return r7538;
}

double f_id(double v, double w, double r) {
        double r7539 = 3.0;
        double r7540 = 2.0;
        double r7541 = r;
        double r7542 = r7541 * r7541;
        double r7543 = r7540 / r7542;
        double r7544 = r7539 + r7543;
        double r7545 = 0.125;
        double r7546 = v;
        double r7547 = r7540 * r7546;
        double r7548 = r7539 - r7547;
        double r7549 = r7545 * r7548;
        double r7550 = w;
        double r7551 = r7550 * r7550;
        double r7552 = r7551 * r7541;
        double r7553 = r7552 * r7541;
        double r7554 = r7549 * r7553;
        double r7555 = 1.0;
        double r7556 = r7555 - r7546;
        double r7557 = r7554 / r7556;
        double r7558 = r7544 - r7557;
        double r7559 = 4.5;
        double r7560 = r7558 - r7559;
        return r7560;
}


double f_of(float v, float w, float r) {
        float r7561 = 3.0f;
        float r7562 = 2.0f;
        float r7563 = r;
        float r7564 = r7563 * r7563;
        float r7565 = r7562 / r7564;
        float r7566 = r7561 + r7565;
        float r7567 = w;
        float r7568 = r7563 * r7567;
        float r7569 = v;
        float r7570 = r7569 * r7562;
        float r7571 = r7561 - r7570;
        float r7572 = 1.0f;
        float r7573 = r7572 - r7569;
        float r7574 = 0.125f;
        float r7575 = r7573 / r7574;
        float r7576 = r7571 / r7575;
        float r7577 = r7576 * r7568;
        float r7578 = r7568 * r7577;
        float r7579 = 4.5f;
        float r7580 = r7578 + r7579;
        float r7581 = r7566 - r7580;
        return r7581;
}

double f_od(double v, double w, double r) {
        double r7582 = 3.0;
        double r7583 = 2.0;
        double r7584 = r;
        double r7585 = r7584 * r7584;
        double r7586 = r7583 / r7585;
        double r7587 = r7582 + r7586;
        double r7588 = w;
        double r7589 = r7584 * r7588;
        double r7590 = v;
        double r7591 = r7590 * r7583;
        double r7592 = r7582 - r7591;
        double r7593 = 1.0;
        double r7594 = r7593 - r7590;
        double r7595 = 0.125;
        double r7596 = r7594 / r7595;
        double r7597 = r7592 / r7596;
        double r7598 = r7597 * r7589;
        double r7599 = r7589 * r7598;
        double r7600 = 4.5;
        double r7601 = r7599 + r7600;
        double r7602 = r7587 - r7601;
        return r7602;
}

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 r7603, r7604, r7605, r7606, r7607, r7608, r7609, r7610, r7611, r7612, r7613, r7614, r7615, r7616, r7617, r7618, r7619, r7620, r7621, r7622, r7623, r7624;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r7603, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r7604, "2", 10, MPFR_RNDN);
        mpfr_init(r7605);
        mpfr_init(r7606);
        mpfr_init(r7607);
        mpfr_init(r7608);
        mpfr_init_set_str(r7609, "0.125", 10, MPFR_RNDN);
        mpfr_init(r7610);
        mpfr_init(r7611);
        mpfr_init(r7612);
        mpfr_init(r7613);
        mpfr_init(r7614);
        mpfr_init(r7615);
        mpfr_init(r7616);
        mpfr_init(r7617);
        mpfr_init(r7618);
        mpfr_init_set_str(r7619, "1", 10, MPFR_RNDN);
        mpfr_init(r7620);
        mpfr_init(r7621);
        mpfr_init(r7622);
        mpfr_init_set_str(r7623, "4.5", 10, MPFR_RNDN);
        mpfr_init(r7624);
}

double f_im(double v, double w, double r) {
        ;
        ;
        mpfr_set_d(r7605, r, MPFR_RNDN);
        mpfr_mul(r7606, r7605, r7605, MPFR_RNDN);
        mpfr_div(r7607, r7604, r7606, MPFR_RNDN);
        mpfr_add(r7608, r7603, r7607, MPFR_RNDN);
        ;
        mpfr_set_d(r7610, v, MPFR_RNDN);
        mpfr_mul(r7611, r7604, r7610, MPFR_RNDN);
        mpfr_sub(r7612, r7603, r7611, MPFR_RNDN);
        mpfr_mul(r7613, r7609, r7612, MPFR_RNDN);
        mpfr_set_d(r7614, w, MPFR_RNDN);
        mpfr_mul(r7615, r7614, r7614, MPFR_RNDN);
        mpfr_mul(r7616, r7615, r7605, MPFR_RNDN);
        mpfr_mul(r7617, r7616, r7605, MPFR_RNDN);
        mpfr_mul(r7618, r7613, r7617, MPFR_RNDN);
        ;
        mpfr_sub(r7620, r7619, r7610, MPFR_RNDN);
        mpfr_div(r7621, r7618, r7620, MPFR_RNDN);
        mpfr_sub(r7622, r7608, r7621, MPFR_RNDN);
        ;
        mpfr_sub(r7624, r7622, r7623, MPFR_RNDN);
        return mpfr_get_d(r7624, MPFR_RNDN);
}

static mpfr_t r7625, r7626, r7627, r7628, r7629, r7630, r7631, r7632, r7633, r7634, r7635, r7636, r7637, r7638, r7639, r7640, r7641, r7642, r7643, r7644, r7645;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r7625, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r7626, "2", 10, MPFR_RNDN);
        mpfr_init(r7627);
        mpfr_init(r7628);
        mpfr_init(r7629);
        mpfr_init(r7630);
        mpfr_init(r7631);
        mpfr_init(r7632);
        mpfr_init(r7633);
        mpfr_init(r7634);
        mpfr_init(r7635);
        mpfr_init_set_str(r7636, "1", 10, MPFR_RNDN);
        mpfr_init(r7637);
        mpfr_init_set_str(r7638, "0.125", 10, MPFR_RNDN);
        mpfr_init(r7639);
        mpfr_init(r7640);
        mpfr_init(r7641);
        mpfr_init(r7642);
        mpfr_init_set_str(r7643, "4.5", 10, MPFR_RNDN);
        mpfr_init(r7644);
        mpfr_init(r7645);
}

double f_fm(double v, double w, double r) {
        ;
        ;
        mpfr_set_d(r7627, r, MPFR_RNDN);
        mpfr_mul(r7628, r7627, r7627, MPFR_RNDN);
        mpfr_div(r7629, r7626, r7628, MPFR_RNDN);
        mpfr_add(r7630, r7625, r7629, MPFR_RNDN);
        mpfr_set_d(r7631, w, MPFR_RNDN);
        mpfr_mul(r7632, r7627, r7631, MPFR_RNDN);
        mpfr_set_d(r7633, v, MPFR_RNDN);
        mpfr_mul(r7634, r7633, r7626, MPFR_RNDN);
        mpfr_sub(r7635, r7625, r7634, MPFR_RNDN);
        ;
        mpfr_sub(r7637, r7636, r7633, MPFR_RNDN);
        ;
        mpfr_div(r7639, r7637, r7638, MPFR_RNDN);
        mpfr_div(r7640, r7635, r7639, MPFR_RNDN);
        mpfr_mul(r7641, r7640, r7632, MPFR_RNDN);
        mpfr_mul(r7642, r7632, r7641, MPFR_RNDN);
        ;
        mpfr_add(r7644, r7642, r7643, MPFR_RNDN);
        mpfr_sub(r7645, r7630, r7644, MPFR_RNDN);
        return mpfr_get_d(r7645, MPFR_RNDN);
}

static mpfr_t r7646, r7647, r7648, r7649, r7650, r7651, r7652, r7653, r7654, r7655, r7656, r7657, r7658, r7659, r7660, r7661, r7662, r7663, r7664, r7665, r7666;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r7646, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r7647, "2", 10, MPFR_RNDN);
        mpfr_init(r7648);
        mpfr_init(r7649);
        mpfr_init(r7650);
        mpfr_init(r7651);
        mpfr_init(r7652);
        mpfr_init(r7653);
        mpfr_init(r7654);
        mpfr_init(r7655);
        mpfr_init(r7656);
        mpfr_init_set_str(r7657, "1", 10, MPFR_RNDN);
        mpfr_init(r7658);
        mpfr_init_set_str(r7659, "0.125", 10, MPFR_RNDN);
        mpfr_init(r7660);
        mpfr_init(r7661);
        mpfr_init(r7662);
        mpfr_init(r7663);
        mpfr_init_set_str(r7664, "4.5", 10, MPFR_RNDN);
        mpfr_init(r7665);
        mpfr_init(r7666);
}

double f_dm(double v, double w, double r) {
        ;
        ;
        mpfr_set_d(r7648, r, MPFR_RNDN);
        mpfr_mul(r7649, r7648, r7648, MPFR_RNDN);
        mpfr_div(r7650, r7647, r7649, MPFR_RNDN);
        mpfr_add(r7651, r7646, r7650, MPFR_RNDN);
        mpfr_set_d(r7652, w, MPFR_RNDN);
        mpfr_mul(r7653, r7648, r7652, MPFR_RNDN);
        mpfr_set_d(r7654, v, MPFR_RNDN);
        mpfr_mul(r7655, r7654, r7647, MPFR_RNDN);
        mpfr_sub(r7656, r7646, r7655, MPFR_RNDN);
        ;
        mpfr_sub(r7658, r7657, r7654, MPFR_RNDN);
        ;
        mpfr_div(r7660, r7658, r7659, MPFR_RNDN);
        mpfr_div(r7661, r7656, r7660, MPFR_RNDN);
        mpfr_mul(r7662, r7661, r7653, MPFR_RNDN);
        mpfr_mul(r7663, r7653, r7662, MPFR_RNDN);
        ;
        mpfr_add(r7665, r7663, r7664, MPFR_RNDN);
        mpfr_sub(r7666, r7651, r7665, MPFR_RNDN);
        return mpfr_get_d(r7666, MPFR_RNDN);
}

