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

char *name = "quadm (p42, negative)";

double f_if(float a, float b, float c) {
        float r9649 = b;
        float r9650 = -r9649;
        float r9651 = r9649 * r9649;
        float r9652 = 4.0f;
        float r9653 = a;
        float r9654 = c;
        float r9655 = r9653 * r9654;
        float r9656 = r9652 * r9655;
        float r9657 = r9651 - r9656;
        float r9658 = sqrt(r9657);
        float r9659 = r9650 - r9658;
        float r9660 = 2.0f;
        float r9661 = r9660 * r9653;
        float r9662 = r9659 / r9661;
        return r9662;
}

double f_id(double a, double b, double c) {
        double r9663 = b;
        double r9664 = -r9663;
        double r9665 = r9663 * r9663;
        double r9666 = 4.0;
        double r9667 = a;
        double r9668 = c;
        double r9669 = r9667 * r9668;
        double r9670 = r9666 * r9669;
        double r9671 = r9665 - r9670;
        double r9672 = sqrt(r9671);
        double r9673 = r9664 - r9672;
        double r9674 = 2.0;
        double r9675 = r9674 * r9667;
        double r9676 = r9673 / r9675;
        return r9676;
}


double f_of(float a, float b, float c) {
        float r9677 = b;
        float r9678 = -r9677;
        float r9679 = -9.670079395517677e+115f;
        bool r9680 = r9678 <= r9679;
        float r9681 = a;
        float r9682 = r9677 / r9681;
        float r9683 = -r9682;
        float r9684 = 1.094348108854397e-160f;
        bool r9685 = r9678 <= r9684;
        float r9686 = 4.0f;
        float r9687 = r9681 * r9686;
        float r9688 = c;
        float r9689 = -r9688;
        float r9690 = r9677 * r9677;
        float r9691 = fma(r9687, r9689, r9690);
        float r9692 = sqrt(r9691);
        float r9693 = r9678 - r9692;
        float r9694 = 2.0f;
        float r9695 = r9681 * r9694;
        float r9696 = r9693 / r9695;
        float r9697 = 1.2760553527866898e+132f;
        bool r9698 = r9678 <= r9697;
        float r9699 = r9686 * r9688;
        float r9700 = r9699 / r9694;
        float r9701 = cbrt(r9700);
        float r9702 = -r9686;
        float r9703 = r9681 * r9688;
        float r9704 = fma(r9702, r9703, r9690);
        float r9705 = sqrt(r9704);
        float r9706 = r9705 - r9677;
        float r9707 = r9701 / r9706;
        float r9708 = r9694 / r9688;
        float r9709 = r9686 / r9708;
        float r9710 = cbrt(r9709);
        float r9711 = r9710 * r9710;
        float r9712 = r9707 * r9711;
        float r9713 = r9703 / r9677;
        float r9714 = -2.0f;
        float r9715 = r9713 * r9714;
        float r9716 = r9715 / r9695;
        float r9717 = r9698 ? r9712 : r9716;
        float r9718 = r9685 ? r9696 : r9717;
        float r9719 = r9680 ? r9683 : r9718;
        return r9719;
}

double f_od(double a, double b, double c) {
        double r9720 = b;
        double r9721 = -r9720;
        double r9722 = -9.670079395517677e+115;
        bool r9723 = r9721 <= r9722;
        double r9724 = a;
        double r9725 = r9720 / r9724;
        double r9726 = -r9725;
        double r9727 = 1.094348108854397e-160;
        bool r9728 = r9721 <= r9727;
        double r9729 = 4.0;
        double r9730 = r9724 * r9729;
        double r9731 = c;
        double r9732 = -r9731;
        double r9733 = r9720 * r9720;
        double r9734 = fma(r9730, r9732, r9733);
        double r9735 = sqrt(r9734);
        double r9736 = r9721 - r9735;
        double r9737 = 2.0;
        double r9738 = r9724 * r9737;
        double r9739 = r9736 / r9738;
        double r9740 = 1.2760553527866898e+132;
        bool r9741 = r9721 <= r9740;
        double r9742 = r9729 * r9731;
        double r9743 = r9742 / r9737;
        double r9744 = cbrt(r9743);
        double r9745 = -r9729;
        double r9746 = r9724 * r9731;
        double r9747 = fma(r9745, r9746, r9733);
        double r9748 = sqrt(r9747);
        double r9749 = r9748 - r9720;
        double r9750 = r9744 / r9749;
        double r9751 = r9737 / r9731;
        double r9752 = r9729 / r9751;
        double r9753 = cbrt(r9752);
        double r9754 = r9753 * r9753;
        double r9755 = r9750 * r9754;
        double r9756 = r9746 / r9720;
        double r9757 = -2.0;
        double r9758 = r9756 * r9757;
        double r9759 = r9758 / r9738;
        double r9760 = r9741 ? r9755 : r9759;
        double r9761 = r9728 ? r9739 : r9760;
        double r9762 = r9723 ? r9726 : r9761;
        return r9762;
}

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 r9763, r9764, r9765, r9766, r9767, r9768, r9769, r9770, r9771, r9772, r9773, r9774, r9775, r9776;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9763);
        mpfr_init(r9764);
        mpfr_init(r9765);
        mpfr_init_set_str(r9766, "4", 10, MPFR_RNDN);
        mpfr_init(r9767);
        mpfr_init(r9768);
        mpfr_init(r9769);
        mpfr_init(r9770);
        mpfr_init(r9771);
        mpfr_init(r9772);
        mpfr_init(r9773);
        mpfr_init_set_str(r9774, "2", 10, MPFR_RNDN);
        mpfr_init(r9775);
        mpfr_init(r9776);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r9763, b, MPFR_RNDN);
        mpfr_neg(r9764, r9763, MPFR_RNDN);
        mpfr_mul(r9765, r9763, r9763, MPFR_RNDN);
        ;
        mpfr_set_d(r9767, a, MPFR_RNDN);
        mpfr_set_d(r9768, c, MPFR_RNDN);
        mpfr_mul(r9769, r9767, r9768, MPFR_RNDN);
        mpfr_mul(r9770, r9766, r9769, MPFR_RNDN);
        mpfr_sub(r9771, r9765, r9770, MPFR_RNDN);
        mpfr_sqrt(r9772, r9771, MPFR_RNDN);
        mpfr_sub(r9773, r9764, r9772, MPFR_RNDN);
        ;
        mpfr_mul(r9775, r9774, r9767, MPFR_RNDN);
        mpfr_div(r9776, r9773, r9775, MPFR_RNDN);
        return mpfr_get_d(r9776, MPFR_RNDN);
}

static mpfr_t r9777, r9778, r9779, r9780, r9781, r9782, r9783, r9784, r9785, r9786, r9787, r9788, r9789, r9790, r9791, r9792, r9793, r9794, r9795, r9796, r9797, r9798, r9799, r9800, r9801, r9802, r9803, r9804, r9805, r9806, r9807, r9808, r9809, r9810, r9811, r9812, r9813, r9814, r9815, r9816, r9817, r9818, r9819;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9777);
        mpfr_init(r9778);
        mpfr_init_set_str(r9779, "-9.670079395517677e+115", 10, MPFR_RNDN);
        mpfr_init(r9780);
        mpfr_init(r9781);
        mpfr_init(r9782);
        mpfr_init(r9783);
        mpfr_init_set_str(r9784, "1.094348108854397e-160", 10, MPFR_RNDN);
        mpfr_init(r9785);
        mpfr_init_set_str(r9786, "4", 10, MPFR_RNDN);
        mpfr_init(r9787);
        mpfr_init(r9788);
        mpfr_init(r9789);
        mpfr_init(r9790);
        mpfr_init(r9791);
        mpfr_init(r9792);
        mpfr_init(r9793);
        mpfr_init_set_str(r9794, "2", 10, MPFR_RNDN);
        mpfr_init(r9795);
        mpfr_init(r9796);
        mpfr_init_set_str(r9797, "1.2760553527866898e+132", 10, MPFR_RNDN);
        mpfr_init(r9798);
        mpfr_init(r9799);
        mpfr_init(r9800);
        mpfr_init(r9801);
        mpfr_init(r9802);
        mpfr_init(r9803);
        mpfr_init(r9804);
        mpfr_init(r9805);
        mpfr_init(r9806);
        mpfr_init(r9807);
        mpfr_init(r9808);
        mpfr_init(r9809);
        mpfr_init(r9810);
        mpfr_init(r9811);
        mpfr_init(r9812);
        mpfr_init(r9813);
        mpfr_init_set_str(r9814, "-2", 10, MPFR_RNDN);
        mpfr_init(r9815);
        mpfr_init(r9816);
        mpfr_init(r9817);
        mpfr_init(r9818);
        mpfr_init(r9819);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r9777, b, MPFR_RNDN);
        mpfr_neg(r9778, r9777, MPFR_RNDN);
        ;
        mpfr_set_si(r9780, mpfr_cmp(r9778, r9779) <= 0, MPFR_RNDN);
        mpfr_set_d(r9781, a, MPFR_RNDN);
        mpfr_div(r9782, r9777, r9781, MPFR_RNDN);
        mpfr_neg(r9783, r9782, MPFR_RNDN);
        ;
        mpfr_set_si(r9785, mpfr_cmp(r9778, r9784) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r9787, r9781, r9786, MPFR_RNDN);
        mpfr_set_d(r9788, c, MPFR_RNDN);
        mpfr_neg(r9789, r9788, MPFR_RNDN);
        mpfr_mul(r9790, r9777, r9777, MPFR_RNDN);
        mpfr_fma(r9791, r9787, r9789, r9790, MPFR_RNDN);
        mpfr_sqrt(r9792, r9791, MPFR_RNDN);
        mpfr_sub(r9793, r9778, r9792, MPFR_RNDN);
        ;
        mpfr_mul(r9795, r9781, r9794, MPFR_RNDN);
        mpfr_div(r9796, r9793, r9795, MPFR_RNDN);
        ;
        mpfr_set_si(r9798, mpfr_cmp(r9778, r9797) <= 0, MPFR_RNDN);
        mpfr_mul(r9799, r9786, r9788, MPFR_RNDN);
        mpfr_div(r9800, r9799, r9794, MPFR_RNDN);
        mpfr_cbrt(r9801, r9800, MPFR_RNDN);
        mpfr_neg(r9802, r9786, MPFR_RNDN);
        mpfr_mul(r9803, r9781, r9788, MPFR_RNDN);
        mpfr_fma(r9804, r9802, r9803, r9790, MPFR_RNDN);
        mpfr_sqrt(r9805, r9804, MPFR_RNDN);
        mpfr_sub(r9806, r9805, r9777, MPFR_RNDN);
        mpfr_div(r9807, r9801, r9806, MPFR_RNDN);
        mpfr_div(r9808, r9794, r9788, MPFR_RNDN);
        mpfr_div(r9809, r9786, r9808, MPFR_RNDN);
        mpfr_cbrt(r9810, r9809, MPFR_RNDN);
        mpfr_mul(r9811, r9810, r9810, MPFR_RNDN);
        mpfr_mul(r9812, r9807, r9811, MPFR_RNDN);
        mpfr_div(r9813, r9803, r9777, MPFR_RNDN);
        ;
        mpfr_mul(r9815, r9813, r9814, MPFR_RNDN);
        mpfr_div(r9816, r9815, r9795, MPFR_RNDN);
        if (mpfr_get_si(r9798, MPFR_RNDN)) { mpfr_set(r9817, r9812, MPFR_RNDN); } else { mpfr_set(r9817, r9816, MPFR_RNDN); };
        if (mpfr_get_si(r9785, MPFR_RNDN)) { mpfr_set(r9818, r9796, MPFR_RNDN); } else { mpfr_set(r9818, r9817, MPFR_RNDN); };
        if (mpfr_get_si(r9780, MPFR_RNDN)) { mpfr_set(r9819, r9783, MPFR_RNDN); } else { mpfr_set(r9819, r9818, MPFR_RNDN); };
        return mpfr_get_d(r9819, MPFR_RNDN);
}

static mpfr_t r9820, r9821, r9822, r9823, r9824, r9825, r9826, r9827, r9828, r9829, r9830, r9831, r9832, r9833, r9834, r9835, r9836, r9837, r9838, r9839, r9840, r9841, r9842, r9843, r9844, r9845, r9846, r9847, r9848, r9849, r9850, r9851, r9852, r9853, r9854, r9855, r9856, r9857, r9858, r9859, r9860, r9861, r9862;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9820);
        mpfr_init(r9821);
        mpfr_init_set_str(r9822, "-9.670079395517677e+115", 10, MPFR_RNDN);
        mpfr_init(r9823);
        mpfr_init(r9824);
        mpfr_init(r9825);
        mpfr_init(r9826);
        mpfr_init_set_str(r9827, "1.094348108854397e-160", 10, MPFR_RNDN);
        mpfr_init(r9828);
        mpfr_init_set_str(r9829, "4", 10, MPFR_RNDN);
        mpfr_init(r9830);
        mpfr_init(r9831);
        mpfr_init(r9832);
        mpfr_init(r9833);
        mpfr_init(r9834);
        mpfr_init(r9835);
        mpfr_init(r9836);
        mpfr_init_set_str(r9837, "2", 10, MPFR_RNDN);
        mpfr_init(r9838);
        mpfr_init(r9839);
        mpfr_init_set_str(r9840, "1.2760553527866898e+132", 10, MPFR_RNDN);
        mpfr_init(r9841);
        mpfr_init(r9842);
        mpfr_init(r9843);
        mpfr_init(r9844);
        mpfr_init(r9845);
        mpfr_init(r9846);
        mpfr_init(r9847);
        mpfr_init(r9848);
        mpfr_init(r9849);
        mpfr_init(r9850);
        mpfr_init(r9851);
        mpfr_init(r9852);
        mpfr_init(r9853);
        mpfr_init(r9854);
        mpfr_init(r9855);
        mpfr_init(r9856);
        mpfr_init_set_str(r9857, "-2", 10, MPFR_RNDN);
        mpfr_init(r9858);
        mpfr_init(r9859);
        mpfr_init(r9860);
        mpfr_init(r9861);
        mpfr_init(r9862);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r9820, b, MPFR_RNDN);
        mpfr_neg(r9821, r9820, MPFR_RNDN);
        ;
        mpfr_set_si(r9823, mpfr_cmp(r9821, r9822) <= 0, MPFR_RNDN);
        mpfr_set_d(r9824, a, MPFR_RNDN);
        mpfr_div(r9825, r9820, r9824, MPFR_RNDN);
        mpfr_neg(r9826, r9825, MPFR_RNDN);
        ;
        mpfr_set_si(r9828, mpfr_cmp(r9821, r9827) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r9830, r9824, r9829, MPFR_RNDN);
        mpfr_set_d(r9831, c, MPFR_RNDN);
        mpfr_neg(r9832, r9831, MPFR_RNDN);
        mpfr_mul(r9833, r9820, r9820, MPFR_RNDN);
        mpfr_fma(r9834, r9830, r9832, r9833, MPFR_RNDN);
        mpfr_sqrt(r9835, r9834, MPFR_RNDN);
        mpfr_sub(r9836, r9821, r9835, MPFR_RNDN);
        ;
        mpfr_mul(r9838, r9824, r9837, MPFR_RNDN);
        mpfr_div(r9839, r9836, r9838, MPFR_RNDN);
        ;
        mpfr_set_si(r9841, mpfr_cmp(r9821, r9840) <= 0, MPFR_RNDN);
        mpfr_mul(r9842, r9829, r9831, MPFR_RNDN);
        mpfr_div(r9843, r9842, r9837, MPFR_RNDN);
        mpfr_cbrt(r9844, r9843, MPFR_RNDN);
        mpfr_neg(r9845, r9829, MPFR_RNDN);
        mpfr_mul(r9846, r9824, r9831, MPFR_RNDN);
        mpfr_fma(r9847, r9845, r9846, r9833, MPFR_RNDN);
        mpfr_sqrt(r9848, r9847, MPFR_RNDN);
        mpfr_sub(r9849, r9848, r9820, MPFR_RNDN);
        mpfr_div(r9850, r9844, r9849, MPFR_RNDN);
        mpfr_div(r9851, r9837, r9831, MPFR_RNDN);
        mpfr_div(r9852, r9829, r9851, MPFR_RNDN);
        mpfr_cbrt(r9853, r9852, MPFR_RNDN);
        mpfr_mul(r9854, r9853, r9853, MPFR_RNDN);
        mpfr_mul(r9855, r9850, r9854, MPFR_RNDN);
        mpfr_div(r9856, r9846, r9820, MPFR_RNDN);
        ;
        mpfr_mul(r9858, r9856, r9857, MPFR_RNDN);
        mpfr_div(r9859, r9858, r9838, MPFR_RNDN);
        if (mpfr_get_si(r9841, MPFR_RNDN)) { mpfr_set(r9860, r9855, MPFR_RNDN); } else { mpfr_set(r9860, r9859, MPFR_RNDN); };
        if (mpfr_get_si(r9828, MPFR_RNDN)) { mpfr_set(r9861, r9839, MPFR_RNDN); } else { mpfr_set(r9861, r9860, MPFR_RNDN); };
        if (mpfr_get_si(r9823, MPFR_RNDN)) { mpfr_set(r9862, r9826, MPFR_RNDN); } else { mpfr_set(r9862, r9861, MPFR_RNDN); };
        return mpfr_get_d(r9862, MPFR_RNDN);
}

