#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 r16278971 = 3;
        float r16278972 = 2;
        float r16278973 = r;
        float r16278974 = r16278973 * r16278973;
        float r16278975 = r16278972 / r16278974;
        float r16278976 = r16278971 + r16278975;
        float r16278977 = 0.125;
        float r16278978 = v;
        float r16278979 = r16278972 * r16278978;
        float r16278980 = r16278971 - r16278979;
        float r16278981 = r16278977 * r16278980;
        float r16278982 = w;
        float r16278983 = r16278982 * r16278982;
        float r16278984 = r16278983 * r16278973;
        float r16278985 = r16278984 * r16278973;
        float r16278986 = r16278981 * r16278985;
        float r16278987 = 1;
        float r16278988 = r16278987 - r16278978;
        float r16278989 = r16278986 / r16278988;
        float r16278990 = r16278976 - r16278989;
        float r16278991 = 4.5;
        float r16278992 = r16278990 - r16278991;
        return r16278992;
}

double f_id(double v, double w, double r) {
        double r16278993 = 3;
        double r16278994 = 2;
        double r16278995 = r;
        double r16278996 = r16278995 * r16278995;
        double r16278997 = r16278994 / r16278996;
        double r16278998 = r16278993 + r16278997;
        double r16278999 = 0.125;
        double r16279000 = v;
        double r16279001 = r16278994 * r16279000;
        double r16279002 = r16278993 - r16279001;
        double r16279003 = r16278999 * r16279002;
        double r16279004 = w;
        double r16279005 = r16279004 * r16279004;
        double r16279006 = r16279005 * r16278995;
        double r16279007 = r16279006 * r16278995;
        double r16279008 = r16279003 * r16279007;
        double r16279009 = 1;
        double r16279010 = r16279009 - r16279000;
        double r16279011 = r16279008 / r16279010;
        double r16279012 = r16278998 - r16279011;
        double r16279013 = 4.5;
        double r16279014 = r16279012 - r16279013;
        return r16279014;
}


double f_of(float v, float w, float r) {
        float r16279015 = v;
        float r16279016 = -826310690.5676548;
        bool r16279017 = r16279015 <= r16279016;
        float r16279018 = 2;
        float r16279019 = r;
        float r16279020 = r16279019 * r16279019;
        float r16279021 = r16279018 / r16279020;
        float r16279022 = 3;
        float r16279023 = 4.5;
        float r16279024 = r16279022 - r16279023;
        float r16279025 = w;
        float r16279026 = r16279025 * r16279019;
        float r16279027 = r16279026 * r16279026;
        float r16279028 = 0.25;
        float r16279029 = r16279027 * r16279028;
        float r16279030 = r16279024 - r16279029;
        float r16279031 = r16279027 / r16279015;
        float r16279032 = 0.125;
        float r16279033 = r16279032 / r16279015;
        float r16279034 = r16279032 + r16279033;
        float r16279035 = r16279031 * r16279034;
        float r16279036 = r16279030 + r16279035;
        float r16279037 = r16279021 + r16279036;
        float r16279038 = 126242.58648116977;
        bool r16279039 = r16279015 <= r16279038;
        float r16279040 = r16279022 + r16279021;
        float r16279041 = r16279032 * r16279027;
        float r16279042 = 1;
        float r16279043 = r16279015 * r16279015;
        float r16279044 = r16279042 - r16279043;
        float r16279045 = cbrt(r16279044);
        float r16279046 = r16279045 * r16279045;
        float r16279047 = r16279015 + r16279015;
        float r16279048 = r16279022 - r16279047;
        float r16279049 = cbrt(r16279048);
        float r16279050 = r16279049 * r16279049;
        float r16279051 = r16279046 / r16279050;
        float r16279052 = r16279045 / r16279049;
        float r16279053 = r16279051 * r16279052;
        float r16279054 = r16279041 / r16279053;
        float r16279055 = r16279042 + r16279015;
        float r16279056 = r16279054 * r16279055;
        float r16279057 = r16279040 - r16279056;
        float r16279058 = r16279057 - r16279023;
        float r16279059 = r16279039 ? r16279058 : r16279037;
        float r16279060 = r16279017 ? r16279037 : r16279059;
        return r16279060;
}

double f_od(double v, double w, double r) {
        double r16279061 = v;
        double r16279062 = -826310690.5676548;
        bool r16279063 = r16279061 <= r16279062;
        double r16279064 = 2;
        double r16279065 = r;
        double r16279066 = r16279065 * r16279065;
        double r16279067 = r16279064 / r16279066;
        double r16279068 = 3;
        double r16279069 = 4.5;
        double r16279070 = r16279068 - r16279069;
        double r16279071 = w;
        double r16279072 = r16279071 * r16279065;
        double r16279073 = r16279072 * r16279072;
        double r16279074 = 0.25;
        double r16279075 = r16279073 * r16279074;
        double r16279076 = r16279070 - r16279075;
        double r16279077 = r16279073 / r16279061;
        double r16279078 = 0.125;
        double r16279079 = r16279078 / r16279061;
        double r16279080 = r16279078 + r16279079;
        double r16279081 = r16279077 * r16279080;
        double r16279082 = r16279076 + r16279081;
        double r16279083 = r16279067 + r16279082;
        double r16279084 = 126242.58648116977;
        bool r16279085 = r16279061 <= r16279084;
        double r16279086 = r16279068 + r16279067;
        double r16279087 = r16279078 * r16279073;
        double r16279088 = 1;
        double r16279089 = r16279061 * r16279061;
        double r16279090 = r16279088 - r16279089;
        double r16279091 = cbrt(r16279090);
        double r16279092 = r16279091 * r16279091;
        double r16279093 = r16279061 + r16279061;
        double r16279094 = r16279068 - r16279093;
        double r16279095 = cbrt(r16279094);
        double r16279096 = r16279095 * r16279095;
        double r16279097 = r16279092 / r16279096;
        double r16279098 = r16279091 / r16279095;
        double r16279099 = r16279097 * r16279098;
        double r16279100 = r16279087 / r16279099;
        double r16279101 = r16279088 + r16279061;
        double r16279102 = r16279100 * r16279101;
        double r16279103 = r16279086 - r16279102;
        double r16279104 = r16279103 - r16279069;
        double r16279105 = r16279085 ? r16279104 : r16279083;
        double r16279106 = r16279063 ? r16279083 : r16279105;
        return r16279106;
}

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 r16279107, r16279108, r16279109, r16279110, r16279111, r16279112, r16279113, r16279114, r16279115, r16279116, r16279117, r16279118, r16279119, r16279120, r16279121, r16279122, r16279123, r16279124, r16279125, r16279126, r16279127, r16279128;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r16279107, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r16279108, "2", 10, MPFR_RNDN);
        mpfr_init(r16279109);
        mpfr_init(r16279110);
        mpfr_init(r16279111);
        mpfr_init(r16279112);
        mpfr_init_set_str(r16279113, "0.125", 10, MPFR_RNDN);
        mpfr_init(r16279114);
        mpfr_init(r16279115);
        mpfr_init(r16279116);
        mpfr_init(r16279117);
        mpfr_init(r16279118);
        mpfr_init(r16279119);
        mpfr_init(r16279120);
        mpfr_init(r16279121);
        mpfr_init(r16279122);
        mpfr_init_set_str(r16279123, "1", 10, MPFR_RNDN);
        mpfr_init(r16279124);
        mpfr_init(r16279125);
        mpfr_init(r16279126);
        mpfr_init_set_str(r16279127, "4.5", 10, MPFR_RNDN);
        mpfr_init(r16279128);
}

double f_im(double v, double w, double r) {
        ;
        ;
        mpfr_set_d(r16279109, r, MPFR_RNDN);
        mpfr_mul(r16279110, r16279109, r16279109, MPFR_RNDN);
        mpfr_div(r16279111, r16279108, r16279110, MPFR_RNDN);
        mpfr_add(r16279112, r16279107, r16279111, MPFR_RNDN);
        ;
        mpfr_set_d(r16279114, v, MPFR_RNDN);
        mpfr_mul(r16279115, r16279108, r16279114, MPFR_RNDN);
        mpfr_sub(r16279116, r16279107, r16279115, MPFR_RNDN);
        mpfr_mul(r16279117, r16279113, r16279116, MPFR_RNDN);
        mpfr_set_d(r16279118, w, MPFR_RNDN);
        mpfr_mul(r16279119, r16279118, r16279118, MPFR_RNDN);
        mpfr_mul(r16279120, r16279119, r16279109, MPFR_RNDN);
        mpfr_mul(r16279121, r16279120, r16279109, MPFR_RNDN);
        mpfr_mul(r16279122, r16279117, r16279121, MPFR_RNDN);
        ;
        mpfr_sub(r16279124, r16279123, r16279114, MPFR_RNDN);
        mpfr_div(r16279125, r16279122, r16279124, MPFR_RNDN);
        mpfr_sub(r16279126, r16279112, r16279125, MPFR_RNDN);
        ;
        mpfr_sub(r16279128, r16279126, r16279127, MPFR_RNDN);
        return mpfr_get_d(r16279128, MPFR_RNDN);
}

static mpfr_t r16279129, r16279130, r16279131, r16279132, r16279133, r16279134, r16279135, r16279136, r16279137, r16279138, r16279139, r16279140, r16279141, r16279142, r16279143, r16279144, r16279145, r16279146, r16279147, r16279148, r16279149, r16279150, r16279151, r16279152, r16279153, r16279154, r16279155, r16279156, r16279157, r16279158, r16279159, r16279160, r16279161, r16279162, r16279163, r16279164, r16279165, r16279166, r16279167, r16279168, r16279169, r16279170, r16279171, r16279172, r16279173, r16279174;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r16279129);
        mpfr_init_set_str(r16279130, "-826310690.5676548", 10, MPFR_RNDN);
        mpfr_init(r16279131);
        mpfr_init_set_str(r16279132, "2", 10, MPFR_RNDN);
        mpfr_init(r16279133);
        mpfr_init(r16279134);
        mpfr_init(r16279135);
        mpfr_init_set_str(r16279136, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r16279137, "4.5", 10, MPFR_RNDN);
        mpfr_init(r16279138);
        mpfr_init(r16279139);
        mpfr_init(r16279140);
        mpfr_init(r16279141);
        mpfr_init_set_str(r16279142, "0.25", 10, MPFR_RNDN);
        mpfr_init(r16279143);
        mpfr_init(r16279144);
        mpfr_init(r16279145);
        mpfr_init_set_str(r16279146, "0.125", 10, MPFR_RNDN);
        mpfr_init(r16279147);
        mpfr_init(r16279148);
        mpfr_init(r16279149);
        mpfr_init(r16279150);
        mpfr_init(r16279151);
        mpfr_init_set_str(r16279152, "126242.58648116977", 10, MPFR_RNDN);
        mpfr_init(r16279153);
        mpfr_init(r16279154);
        mpfr_init(r16279155);
        mpfr_init_set_str(r16279156, "1", 10, MPFR_RNDN);
        mpfr_init(r16279157);
        mpfr_init(r16279158);
        mpfr_init(r16279159);
        mpfr_init(r16279160);
        mpfr_init(r16279161);
        mpfr_init(r16279162);
        mpfr_init(r16279163);
        mpfr_init(r16279164);
        mpfr_init(r16279165);
        mpfr_init(r16279166);
        mpfr_init(r16279167);
        mpfr_init(r16279168);
        mpfr_init(r16279169);
        mpfr_init(r16279170);
        mpfr_init(r16279171);
        mpfr_init(r16279172);
        mpfr_init(r16279173);
        mpfr_init(r16279174);
}

double f_fm(double v, double w, double r) {
        mpfr_set_d(r16279129, v, MPFR_RNDN);
        ;
        mpfr_set_si(r16279131, mpfr_cmp(r16279129, r16279130) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r16279133, r, MPFR_RNDN);
        mpfr_mul(r16279134, r16279133, r16279133, MPFR_RNDN);
        mpfr_div(r16279135, r16279132, r16279134, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r16279138, r16279136, r16279137, MPFR_RNDN);
        mpfr_set_d(r16279139, w, MPFR_RNDN);
        mpfr_mul(r16279140, r16279139, r16279133, MPFR_RNDN);
        mpfr_mul(r16279141, r16279140, r16279140, MPFR_RNDN);
        ;
        mpfr_mul(r16279143, r16279141, r16279142, MPFR_RNDN);
        mpfr_sub(r16279144, r16279138, r16279143, MPFR_RNDN);
        mpfr_div(r16279145, r16279141, r16279129, MPFR_RNDN);
        ;
        mpfr_div(r16279147, r16279146, r16279129, MPFR_RNDN);
        mpfr_add(r16279148, r16279146, r16279147, MPFR_RNDN);
        mpfr_mul(r16279149, r16279145, r16279148, MPFR_RNDN);
        mpfr_add(r16279150, r16279144, r16279149, MPFR_RNDN);
        mpfr_add(r16279151, r16279135, r16279150, MPFR_RNDN);
        ;
        mpfr_set_si(r16279153, mpfr_cmp(r16279129, r16279152) <= 0, MPFR_RNDN);
        mpfr_add(r16279154, r16279136, r16279135, MPFR_RNDN);
        mpfr_mul(r16279155, r16279146, r16279141, MPFR_RNDN);
        ;
        mpfr_mul(r16279157, r16279129, r16279129, MPFR_RNDN);
        mpfr_sub(r16279158, r16279156, r16279157, MPFR_RNDN);
        mpfr_cbrt(r16279159, r16279158, MPFR_RNDN);
        mpfr_mul(r16279160, r16279159, r16279159, MPFR_RNDN);
        mpfr_add(r16279161, r16279129, r16279129, MPFR_RNDN);
        mpfr_sub(r16279162, r16279136, r16279161, MPFR_RNDN);
        mpfr_cbrt(r16279163, r16279162, MPFR_RNDN);
        mpfr_mul(r16279164, r16279163, r16279163, MPFR_RNDN);
        mpfr_div(r16279165, r16279160, r16279164, MPFR_RNDN);
        mpfr_div(r16279166, r16279159, r16279163, MPFR_RNDN);
        mpfr_mul(r16279167, r16279165, r16279166, MPFR_RNDN);
        mpfr_div(r16279168, r16279155, r16279167, MPFR_RNDN);
        mpfr_add(r16279169, r16279156, r16279129, MPFR_RNDN);
        mpfr_mul(r16279170, r16279168, r16279169, MPFR_RNDN);
        mpfr_sub(r16279171, r16279154, r16279170, MPFR_RNDN);
        mpfr_sub(r16279172, r16279171, r16279137, MPFR_RNDN);
        if (mpfr_get_si(r16279153, MPFR_RNDN)) { mpfr_set(r16279173, r16279172, MPFR_RNDN); } else { mpfr_set(r16279173, r16279151, MPFR_RNDN); };
        if (mpfr_get_si(r16279131, MPFR_RNDN)) { mpfr_set(r16279174, r16279151, MPFR_RNDN); } else { mpfr_set(r16279174, r16279173, MPFR_RNDN); };
        return mpfr_get_d(r16279174, MPFR_RNDN);
}

static mpfr_t r16279175, r16279176, r16279177, r16279178, r16279179, r16279180, r16279181, r16279182, r16279183, r16279184, r16279185, r16279186, r16279187, r16279188, r16279189, r16279190, r16279191, r16279192, r16279193, r16279194, r16279195, r16279196, r16279197, r16279198, r16279199, r16279200, r16279201, r16279202, r16279203, r16279204, r16279205, r16279206, r16279207, r16279208, r16279209, r16279210, r16279211, r16279212, r16279213, r16279214, r16279215, r16279216, r16279217, r16279218, r16279219, r16279220;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r16279175);
        mpfr_init_set_str(r16279176, "-826310690.5676548", 10, MPFR_RNDN);
        mpfr_init(r16279177);
        mpfr_init_set_str(r16279178, "2", 10, MPFR_RNDN);
        mpfr_init(r16279179);
        mpfr_init(r16279180);
        mpfr_init(r16279181);
        mpfr_init_set_str(r16279182, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r16279183, "4.5", 10, MPFR_RNDN);
        mpfr_init(r16279184);
        mpfr_init(r16279185);
        mpfr_init(r16279186);
        mpfr_init(r16279187);
        mpfr_init_set_str(r16279188, "0.25", 10, MPFR_RNDN);
        mpfr_init(r16279189);
        mpfr_init(r16279190);
        mpfr_init(r16279191);
        mpfr_init_set_str(r16279192, "0.125", 10, MPFR_RNDN);
        mpfr_init(r16279193);
        mpfr_init(r16279194);
        mpfr_init(r16279195);
        mpfr_init(r16279196);
        mpfr_init(r16279197);
        mpfr_init_set_str(r16279198, "126242.58648116977", 10, MPFR_RNDN);
        mpfr_init(r16279199);
        mpfr_init(r16279200);
        mpfr_init(r16279201);
        mpfr_init_set_str(r16279202, "1", 10, MPFR_RNDN);
        mpfr_init(r16279203);
        mpfr_init(r16279204);
        mpfr_init(r16279205);
        mpfr_init(r16279206);
        mpfr_init(r16279207);
        mpfr_init(r16279208);
        mpfr_init(r16279209);
        mpfr_init(r16279210);
        mpfr_init(r16279211);
        mpfr_init(r16279212);
        mpfr_init(r16279213);
        mpfr_init(r16279214);
        mpfr_init(r16279215);
        mpfr_init(r16279216);
        mpfr_init(r16279217);
        mpfr_init(r16279218);
        mpfr_init(r16279219);
        mpfr_init(r16279220);
}

double f_dm(double v, double w, double r) {
        mpfr_set_d(r16279175, v, MPFR_RNDN);
        ;
        mpfr_set_si(r16279177, mpfr_cmp(r16279175, r16279176) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r16279179, r, MPFR_RNDN);
        mpfr_mul(r16279180, r16279179, r16279179, MPFR_RNDN);
        mpfr_div(r16279181, r16279178, r16279180, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r16279184, r16279182, r16279183, MPFR_RNDN);
        mpfr_set_d(r16279185, w, MPFR_RNDN);
        mpfr_mul(r16279186, r16279185, r16279179, MPFR_RNDN);
        mpfr_mul(r16279187, r16279186, r16279186, MPFR_RNDN);
        ;
        mpfr_mul(r16279189, r16279187, r16279188, MPFR_RNDN);
        mpfr_sub(r16279190, r16279184, r16279189, MPFR_RNDN);
        mpfr_div(r16279191, r16279187, r16279175, MPFR_RNDN);
        ;
        mpfr_div(r16279193, r16279192, r16279175, MPFR_RNDN);
        mpfr_add(r16279194, r16279192, r16279193, MPFR_RNDN);
        mpfr_mul(r16279195, r16279191, r16279194, MPFR_RNDN);
        mpfr_add(r16279196, r16279190, r16279195, MPFR_RNDN);
        mpfr_add(r16279197, r16279181, r16279196, MPFR_RNDN);
        ;
        mpfr_set_si(r16279199, mpfr_cmp(r16279175, r16279198) <= 0, MPFR_RNDN);
        mpfr_add(r16279200, r16279182, r16279181, MPFR_RNDN);
        mpfr_mul(r16279201, r16279192, r16279187, MPFR_RNDN);
        ;
        mpfr_mul(r16279203, r16279175, r16279175, MPFR_RNDN);
        mpfr_sub(r16279204, r16279202, r16279203, MPFR_RNDN);
        mpfr_cbrt(r16279205, r16279204, MPFR_RNDN);
        mpfr_mul(r16279206, r16279205, r16279205, MPFR_RNDN);
        mpfr_add(r16279207, r16279175, r16279175, MPFR_RNDN);
        mpfr_sub(r16279208, r16279182, r16279207, MPFR_RNDN);
        mpfr_cbrt(r16279209, r16279208, MPFR_RNDN);
        mpfr_mul(r16279210, r16279209, r16279209, MPFR_RNDN);
        mpfr_div(r16279211, r16279206, r16279210, MPFR_RNDN);
        mpfr_div(r16279212, r16279205, r16279209, MPFR_RNDN);
        mpfr_mul(r16279213, r16279211, r16279212, MPFR_RNDN);
        mpfr_div(r16279214, r16279201, r16279213, MPFR_RNDN);
        mpfr_add(r16279215, r16279202, r16279175, MPFR_RNDN);
        mpfr_mul(r16279216, r16279214, r16279215, MPFR_RNDN);
        mpfr_sub(r16279217, r16279200, r16279216, MPFR_RNDN);
        mpfr_sub(r16279218, r16279217, r16279183, MPFR_RNDN);
        if (mpfr_get_si(r16279199, MPFR_RNDN)) { mpfr_set(r16279219, r16279218, MPFR_RNDN); } else { mpfr_set(r16279219, r16279197, MPFR_RNDN); };
        if (mpfr_get_si(r16279177, MPFR_RNDN)) { mpfr_set(r16279220, r16279197, MPFR_RNDN); } else { mpfr_set(r16279220, r16279219, MPFR_RNDN); };
        return mpfr_get_d(r16279220, MPFR_RNDN);
}

