#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 r9652 = b;
        float r9653 = -r9652;
        float r9654 = r9652 * r9652;
        float r9655 = 4.0f;
        float r9656 = a;
        float r9657 = c;
        float r9658 = r9656 * r9657;
        float r9659 = r9655 * r9658;
        float r9660 = r9654 - r9659;
        float r9661 = sqrt(r9660);
        float r9662 = r9653 - r9661;
        float r9663 = 2.0f;
        float r9664 = r9663 * r9656;
        float r9665 = r9662 / r9664;
        return r9665;
}

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


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

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

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 r9766, r9767, r9768, r9769, r9770, r9771, r9772, r9773, r9774, r9775, r9776, r9777, r9778, r9779;

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

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

static mpfr_t 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, r9820, r9821, r9822;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9780);
        mpfr_init(r9781);
        mpfr_init_set_str(r9782, "-9.670079395517677e+115", 10, MPFR_RNDN);
        mpfr_init(r9783);
        mpfr_init(r9784);
        mpfr_init(r9785);
        mpfr_init(r9786);
        mpfr_init_set_str(r9787, "1.094348108854397e-160", 10, MPFR_RNDN);
        mpfr_init(r9788);
        mpfr_init_set_str(r9789, "4", 10, MPFR_RNDN);
        mpfr_init(r9790);
        mpfr_init(r9791);
        mpfr_init(r9792);
        mpfr_init(r9793);
        mpfr_init(r9794);
        mpfr_init(r9795);
        mpfr_init(r9796);
        mpfr_init_set_str(r9797, "2", 10, MPFR_RNDN);
        mpfr_init(r9798);
        mpfr_init(r9799);
        mpfr_init_set_str(r9800, "1.1057408524379529e+132", 10, MPFR_RNDN);
        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(r9814);
        mpfr_init(r9815);
        mpfr_init(r9816);
        mpfr_init_set_str(r9817, "-2", 10, MPFR_RNDN);
        mpfr_init(r9818);
        mpfr_init(r9819);
        mpfr_init(r9820);
        mpfr_init(r9821);
        mpfr_init(r9822);
}

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

static mpfr_t 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, r9863, r9864, r9865;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9823);
        mpfr_init(r9824);
        mpfr_init_set_str(r9825, "-9.670079395517677e+115", 10, MPFR_RNDN);
        mpfr_init(r9826);
        mpfr_init(r9827);
        mpfr_init(r9828);
        mpfr_init(r9829);
        mpfr_init_set_str(r9830, "1.094348108854397e-160", 10, MPFR_RNDN);
        mpfr_init(r9831);
        mpfr_init_set_str(r9832, "4", 10, MPFR_RNDN);
        mpfr_init(r9833);
        mpfr_init(r9834);
        mpfr_init(r9835);
        mpfr_init(r9836);
        mpfr_init(r9837);
        mpfr_init(r9838);
        mpfr_init(r9839);
        mpfr_init_set_str(r9840, "2", 10, MPFR_RNDN);
        mpfr_init(r9841);
        mpfr_init(r9842);
        mpfr_init_set_str(r9843, "1.1057408524379529e+132", 10, MPFR_RNDN);
        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(r9857);
        mpfr_init(r9858);
        mpfr_init(r9859);
        mpfr_init_set_str(r9860, "-2", 10, MPFR_RNDN);
        mpfr_init(r9861);
        mpfr_init(r9862);
        mpfr_init(r9863);
        mpfr_init(r9864);
        mpfr_init(r9865);
}

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

