#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 r25608 = 3;
        float r25609 = 2;
        float r25610 = r;
        float r25611 = r25610 * r25610;
        float r25612 = r25609 / r25611;
        float r25613 = r25608 + r25612;
        float r25614 = 0.125;
        float r25615 = v;
        float r25616 = r25609 * r25615;
        float r25617 = r25608 - r25616;
        float r25618 = r25614 * r25617;
        float r25619 = w;
        float r25620 = r25619 * r25619;
        float r25621 = r25620 * r25610;
        float r25622 = r25621 * r25610;
        float r25623 = r25618 * r25622;
        float r25624 = 1;
        float r25625 = r25624 - r25615;
        float r25626 = r25623 / r25625;
        float r25627 = r25613 - r25626;
        float r25628 = 4.5;
        float r25629 = r25627 - r25628;
        return r25629;
}

double f_id(double v, double w, double r) {
        double r25630 = 3;
        double r25631 = 2;
        double r25632 = r;
        double r25633 = r25632 * r25632;
        double r25634 = r25631 / r25633;
        double r25635 = r25630 + r25634;
        double r25636 = 0.125;
        double r25637 = v;
        double r25638 = r25631 * r25637;
        double r25639 = r25630 - r25638;
        double r25640 = r25636 * r25639;
        double r25641 = w;
        double r25642 = r25641 * r25641;
        double r25643 = r25642 * r25632;
        double r25644 = r25643 * r25632;
        double r25645 = r25640 * r25644;
        double r25646 = 1;
        double r25647 = r25646 - r25637;
        double r25648 = r25645 / r25647;
        double r25649 = r25635 - r25648;
        double r25650 = 4.5;
        double r25651 = r25649 - r25650;
        return r25651;
}


double f_of(float v, float w, float r) {
        float r25652 = v;
        float r25653 = -6.703331811293588e+31;
        bool r25654 = r25652 <= r25653;
        float r25655 = 2;
        float r25656 = r;
        float r25657 = r25656 * r25656;
        float r25658 = r25655 / r25657;
        float r25659 = 3;
        float r25660 = 4.5;
        float r25661 = r25659 - r25660;
        float r25662 = r25658 + r25661;
        float r25663 = w;
        float r25664 = r25663 * r25656;
        float r25665 = r25664 * r25664;
        float r25666 = 0.25;
        float r25667 = r25665 * r25666;
        float r25668 = r25665 / r25652;
        float r25669 = 0.125;
        float r25670 = r25669 / r25652;
        float r25671 = r25669 + r25670;
        float r25672 = r25668 * r25671;
        float r25673 = r25667 - r25672;
        float r25674 = r25662 - r25673;
        float r25675 = 4.754640524038839e-19;
        bool r25676 = r25652 <= r25675;
        float r25677 = r25655 / r25656;
        float r25678 = r25677 / r25656;
        float r25679 = r25659 + r25678;
        float r25680 = r25656 * r25663;
        float r25681 = r25680 * r25680;
        float r25682 = r25669 * r25681;
        float r25683 = 1;
        float r25684 = r25652 * r25652;
        float r25685 = r25683 - r25684;
        float r25686 = r25652 + r25652;
        float r25687 = r25659 - r25686;
        float r25688 = r25685 / r25687;
        float r25689 = r25682 / r25688;
        float r25690 = r25683 + r25652;
        float r25691 = r25689 * r25690;
        float r25692 = r25679 - r25691;
        float r25693 = r25692 - r25660;
        float r25694 = r25676 ? r25693 : r25674;
        float r25695 = r25654 ? r25674 : r25694;
        return r25695;
}

double f_od(double v, double w, double r) {
        double r25696 = v;
        double r25697 = -6.703331811293588e+31;
        bool r25698 = r25696 <= r25697;
        double r25699 = 2;
        double r25700 = r;
        double r25701 = r25700 * r25700;
        double r25702 = r25699 / r25701;
        double r25703 = 3;
        double r25704 = 4.5;
        double r25705 = r25703 - r25704;
        double r25706 = r25702 + r25705;
        double r25707 = w;
        double r25708 = r25707 * r25700;
        double r25709 = r25708 * r25708;
        double r25710 = 0.25;
        double r25711 = r25709 * r25710;
        double r25712 = r25709 / r25696;
        double r25713 = 0.125;
        double r25714 = r25713 / r25696;
        double r25715 = r25713 + r25714;
        double r25716 = r25712 * r25715;
        double r25717 = r25711 - r25716;
        double r25718 = r25706 - r25717;
        double r25719 = 4.754640524038839e-19;
        bool r25720 = r25696 <= r25719;
        double r25721 = r25699 / r25700;
        double r25722 = r25721 / r25700;
        double r25723 = r25703 + r25722;
        double r25724 = r25700 * r25707;
        double r25725 = r25724 * r25724;
        double r25726 = r25713 * r25725;
        double r25727 = 1;
        double r25728 = r25696 * r25696;
        double r25729 = r25727 - r25728;
        double r25730 = r25696 + r25696;
        double r25731 = r25703 - r25730;
        double r25732 = r25729 / r25731;
        double r25733 = r25726 / r25732;
        double r25734 = r25727 + r25696;
        double r25735 = r25733 * r25734;
        double r25736 = r25723 - r25735;
        double r25737 = r25736 - r25704;
        double r25738 = r25720 ? r25737 : r25718;
        double r25739 = r25698 ? r25718 : r25738;
        return r25739;
}

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 r25740, r25741, r25742, r25743, r25744, r25745, r25746, r25747, r25748, r25749, r25750, r25751, r25752, r25753, r25754, r25755, r25756, r25757, r25758, r25759, r25760, r25761;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r25740, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r25741, "2", 10, MPFR_RNDN);
        mpfr_init(r25742);
        mpfr_init(r25743);
        mpfr_init(r25744);
        mpfr_init(r25745);
        mpfr_init_set_str(r25746, "0.125", 10, MPFR_RNDN);
        mpfr_init(r25747);
        mpfr_init(r25748);
        mpfr_init(r25749);
        mpfr_init(r25750);
        mpfr_init(r25751);
        mpfr_init(r25752);
        mpfr_init(r25753);
        mpfr_init(r25754);
        mpfr_init(r25755);
        mpfr_init_set_str(r25756, "1", 10, MPFR_RNDN);
        mpfr_init(r25757);
        mpfr_init(r25758);
        mpfr_init(r25759);
        mpfr_init_set_str(r25760, "4.5", 10, MPFR_RNDN);
        mpfr_init(r25761);
}

double f_im(double v, double w, double r) {
        ;
        ;
        mpfr_set_d(r25742, r, MPFR_RNDN);
        mpfr_mul(r25743, r25742, r25742, MPFR_RNDN);
        mpfr_div(r25744, r25741, r25743, MPFR_RNDN);
        mpfr_add(r25745, r25740, r25744, MPFR_RNDN);
        ;
        mpfr_set_d(r25747, v, MPFR_RNDN);
        mpfr_mul(r25748, r25741, r25747, MPFR_RNDN);
        mpfr_sub(r25749, r25740, r25748, MPFR_RNDN);
        mpfr_mul(r25750, r25746, r25749, MPFR_RNDN);
        mpfr_set_d(r25751, w, MPFR_RNDN);
        mpfr_mul(r25752, r25751, r25751, MPFR_RNDN);
        mpfr_mul(r25753, r25752, r25742, MPFR_RNDN);
        mpfr_mul(r25754, r25753, r25742, MPFR_RNDN);
        mpfr_mul(r25755, r25750, r25754, MPFR_RNDN);
        ;
        mpfr_sub(r25757, r25756, r25747, MPFR_RNDN);
        mpfr_div(r25758, r25755, r25757, MPFR_RNDN);
        mpfr_sub(r25759, r25745, r25758, MPFR_RNDN);
        ;
        mpfr_sub(r25761, r25759, r25760, MPFR_RNDN);
        return mpfr_get_d(r25761, MPFR_RNDN);
}

static mpfr_t r25762, r25763, r25764, r25765, r25766, r25767, r25768, r25769, r25770, r25771, r25772, r25773, r25774, r25775, r25776, r25777, r25778, r25779, r25780, r25781, r25782, r25783, r25784, r25785, r25786, r25787, r25788, r25789, r25790, r25791, r25792, r25793, r25794, r25795, r25796, r25797, r25798, r25799, r25800, r25801, r25802, r25803, r25804, r25805;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r25762);
        mpfr_init_set_str(r25763, "-6.703331811293588e+31", 10, MPFR_RNDN);
        mpfr_init(r25764);
        mpfr_init_set_str(r25765, "2", 10, MPFR_RNDN);
        mpfr_init(r25766);
        mpfr_init(r25767);
        mpfr_init(r25768);
        mpfr_init_set_str(r25769, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r25770, "4.5", 10, MPFR_RNDN);
        mpfr_init(r25771);
        mpfr_init(r25772);
        mpfr_init(r25773);
        mpfr_init(r25774);
        mpfr_init(r25775);
        mpfr_init_set_str(r25776, "0.25", 10, MPFR_RNDN);
        mpfr_init(r25777);
        mpfr_init(r25778);
        mpfr_init_set_str(r25779, "0.125", 10, MPFR_RNDN);
        mpfr_init(r25780);
        mpfr_init(r25781);
        mpfr_init(r25782);
        mpfr_init(r25783);
        mpfr_init(r25784);
        mpfr_init_set_str(r25785, "4.754640524038839e-19", 10, MPFR_RNDN);
        mpfr_init(r25786);
        mpfr_init(r25787);
        mpfr_init(r25788);
        mpfr_init(r25789);
        mpfr_init(r25790);
        mpfr_init(r25791);
        mpfr_init(r25792);
        mpfr_init_set_str(r25793, "1", 10, MPFR_RNDN);
        mpfr_init(r25794);
        mpfr_init(r25795);
        mpfr_init(r25796);
        mpfr_init(r25797);
        mpfr_init(r25798);
        mpfr_init(r25799);
        mpfr_init(r25800);
        mpfr_init(r25801);
        mpfr_init(r25802);
        mpfr_init(r25803);
        mpfr_init(r25804);
        mpfr_init(r25805);
}

double f_fm(double v, double w, double r) {
        mpfr_set_d(r25762, v, MPFR_RNDN);
        ;
        mpfr_set_si(r25764, mpfr_cmp(r25762, r25763) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r25766, r, MPFR_RNDN);
        mpfr_mul(r25767, r25766, r25766, MPFR_RNDN);
        mpfr_div(r25768, r25765, r25767, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r25771, r25769, r25770, MPFR_RNDN);
        mpfr_add(r25772, r25768, r25771, MPFR_RNDN);
        mpfr_set_d(r25773, w, MPFR_RNDN);
        mpfr_mul(r25774, r25773, r25766, MPFR_RNDN);
        mpfr_mul(r25775, r25774, r25774, MPFR_RNDN);
        ;
        mpfr_mul(r25777, r25775, r25776, MPFR_RNDN);
        mpfr_div(r25778, r25775, r25762, MPFR_RNDN);
        ;
        mpfr_div(r25780, r25779, r25762, MPFR_RNDN);
        mpfr_add(r25781, r25779, r25780, MPFR_RNDN);
        mpfr_mul(r25782, r25778, r25781, MPFR_RNDN);
        mpfr_sub(r25783, r25777, r25782, MPFR_RNDN);
        mpfr_sub(r25784, r25772, r25783, MPFR_RNDN);
        ;
        mpfr_set_si(r25786, mpfr_cmp(r25762, r25785) <= 0, MPFR_RNDN);
        mpfr_div(r25787, r25765, r25766, MPFR_RNDN);
        mpfr_div(r25788, r25787, r25766, MPFR_RNDN);
        mpfr_add(r25789, r25769, r25788, MPFR_RNDN);
        mpfr_mul(r25790, r25766, r25773, MPFR_RNDN);
        mpfr_mul(r25791, r25790, r25790, MPFR_RNDN);
        mpfr_mul(r25792, r25779, r25791, MPFR_RNDN);
        ;
        mpfr_mul(r25794, r25762, r25762, MPFR_RNDN);
        mpfr_sub(r25795, r25793, r25794, MPFR_RNDN);
        mpfr_add(r25796, r25762, r25762, MPFR_RNDN);
        mpfr_sub(r25797, r25769, r25796, MPFR_RNDN);
        mpfr_div(r25798, r25795, r25797, MPFR_RNDN);
        mpfr_div(r25799, r25792, r25798, MPFR_RNDN);
        mpfr_add(r25800, r25793, r25762, MPFR_RNDN);
        mpfr_mul(r25801, r25799, r25800, MPFR_RNDN);
        mpfr_sub(r25802, r25789, r25801, MPFR_RNDN);
        mpfr_sub(r25803, r25802, r25770, MPFR_RNDN);
        if (mpfr_get_si(r25786, MPFR_RNDN)) { mpfr_set(r25804, r25803, MPFR_RNDN); } else { mpfr_set(r25804, r25784, MPFR_RNDN); };
        if (mpfr_get_si(r25764, MPFR_RNDN)) { mpfr_set(r25805, r25784, MPFR_RNDN); } else { mpfr_set(r25805, r25804, MPFR_RNDN); };
        return mpfr_get_d(r25805, MPFR_RNDN);
}

static mpfr_t r25806, r25807, r25808, r25809, r25810, r25811, r25812, r25813, r25814, r25815, r25816, r25817, r25818, r25819, r25820, r25821, r25822, r25823, r25824, r25825, r25826, r25827, r25828, r25829, r25830, r25831, r25832, r25833, r25834, r25835, r25836, r25837, r25838, r25839, r25840, r25841, r25842, r25843, r25844, r25845, r25846, r25847, r25848, r25849;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r25806);
        mpfr_init_set_str(r25807, "-6.703331811293588e+31", 10, MPFR_RNDN);
        mpfr_init(r25808);
        mpfr_init_set_str(r25809, "2", 10, MPFR_RNDN);
        mpfr_init(r25810);
        mpfr_init(r25811);
        mpfr_init(r25812);
        mpfr_init_set_str(r25813, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r25814, "4.5", 10, MPFR_RNDN);
        mpfr_init(r25815);
        mpfr_init(r25816);
        mpfr_init(r25817);
        mpfr_init(r25818);
        mpfr_init(r25819);
        mpfr_init_set_str(r25820, "0.25", 10, MPFR_RNDN);
        mpfr_init(r25821);
        mpfr_init(r25822);
        mpfr_init_set_str(r25823, "0.125", 10, MPFR_RNDN);
        mpfr_init(r25824);
        mpfr_init(r25825);
        mpfr_init(r25826);
        mpfr_init(r25827);
        mpfr_init(r25828);
        mpfr_init_set_str(r25829, "4.754640524038839e-19", 10, MPFR_RNDN);
        mpfr_init(r25830);
        mpfr_init(r25831);
        mpfr_init(r25832);
        mpfr_init(r25833);
        mpfr_init(r25834);
        mpfr_init(r25835);
        mpfr_init(r25836);
        mpfr_init_set_str(r25837, "1", 10, MPFR_RNDN);
        mpfr_init(r25838);
        mpfr_init(r25839);
        mpfr_init(r25840);
        mpfr_init(r25841);
        mpfr_init(r25842);
        mpfr_init(r25843);
        mpfr_init(r25844);
        mpfr_init(r25845);
        mpfr_init(r25846);
        mpfr_init(r25847);
        mpfr_init(r25848);
        mpfr_init(r25849);
}

double f_dm(double v, double w, double r) {
        mpfr_set_d(r25806, v, MPFR_RNDN);
        ;
        mpfr_set_si(r25808, mpfr_cmp(r25806, r25807) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r25810, r, MPFR_RNDN);
        mpfr_mul(r25811, r25810, r25810, MPFR_RNDN);
        mpfr_div(r25812, r25809, r25811, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r25815, r25813, r25814, MPFR_RNDN);
        mpfr_add(r25816, r25812, r25815, MPFR_RNDN);
        mpfr_set_d(r25817, w, MPFR_RNDN);
        mpfr_mul(r25818, r25817, r25810, MPFR_RNDN);
        mpfr_mul(r25819, r25818, r25818, MPFR_RNDN);
        ;
        mpfr_mul(r25821, r25819, r25820, MPFR_RNDN);
        mpfr_div(r25822, r25819, r25806, MPFR_RNDN);
        ;
        mpfr_div(r25824, r25823, r25806, MPFR_RNDN);
        mpfr_add(r25825, r25823, r25824, MPFR_RNDN);
        mpfr_mul(r25826, r25822, r25825, MPFR_RNDN);
        mpfr_sub(r25827, r25821, r25826, MPFR_RNDN);
        mpfr_sub(r25828, r25816, r25827, MPFR_RNDN);
        ;
        mpfr_set_si(r25830, mpfr_cmp(r25806, r25829) <= 0, MPFR_RNDN);
        mpfr_div(r25831, r25809, r25810, MPFR_RNDN);
        mpfr_div(r25832, r25831, r25810, MPFR_RNDN);
        mpfr_add(r25833, r25813, r25832, MPFR_RNDN);
        mpfr_mul(r25834, r25810, r25817, MPFR_RNDN);
        mpfr_mul(r25835, r25834, r25834, MPFR_RNDN);
        mpfr_mul(r25836, r25823, r25835, MPFR_RNDN);
        ;
        mpfr_mul(r25838, r25806, r25806, MPFR_RNDN);
        mpfr_sub(r25839, r25837, r25838, MPFR_RNDN);
        mpfr_add(r25840, r25806, r25806, MPFR_RNDN);
        mpfr_sub(r25841, r25813, r25840, MPFR_RNDN);
        mpfr_div(r25842, r25839, r25841, MPFR_RNDN);
        mpfr_div(r25843, r25836, r25842, MPFR_RNDN);
        mpfr_add(r25844, r25837, r25806, MPFR_RNDN);
        mpfr_mul(r25845, r25843, r25844, MPFR_RNDN);
        mpfr_sub(r25846, r25833, r25845, MPFR_RNDN);
        mpfr_sub(r25847, r25846, r25814, MPFR_RNDN);
        if (mpfr_get_si(r25830, MPFR_RNDN)) { mpfr_set(r25848, r25847, MPFR_RNDN); } else { mpfr_set(r25848, r25828, MPFR_RNDN); };
        if (mpfr_get_si(r25808, MPFR_RNDN)) { mpfr_set(r25849, r25828, MPFR_RNDN); } else { mpfr_set(r25849, r25848, MPFR_RNDN); };
        return mpfr_get_d(r25849, MPFR_RNDN);
}

