#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 r9645 = b;
        float r9646 = -r9645;
        float r9647 = r9645 * r9645;
        float r9648 = 4.0f;
        float r9649 = a;
        float r9650 = c;
        float r9651 = r9649 * r9650;
        float r9652 = r9648 * r9651;
        float r9653 = r9647 - r9652;
        float r9654 = sqrt(r9653);
        float r9655 = r9646 - r9654;
        float r9656 = 2.0f;
        float r9657 = r9656 * r9649;
        float r9658 = r9655 / r9657;
        return r9658;
}

double f_id(double a, double b, double c) {
        double r9659 = b;
        double r9660 = -r9659;
        double r9661 = r9659 * r9659;
        double r9662 = 4.0;
        double r9663 = a;
        double r9664 = c;
        double r9665 = r9663 * r9664;
        double r9666 = r9662 * r9665;
        double r9667 = r9661 - r9666;
        double r9668 = sqrt(r9667);
        double r9669 = r9660 - r9668;
        double r9670 = 2.0;
        double r9671 = r9670 * r9663;
        double r9672 = r9669 / r9671;
        return r9672;
}


double f_of(float a, float b, float c) {
        float r9673 = b;
        float r9674 = -1.338815475246526e+154f;
        bool r9675 = r9673 <= r9674;
        float r9676 = c;
        float r9677 = 2.0f;
        float r9678 = r9676 / r9677;
        float r9679 = 4.0f;
        float r9680 = a;
        float r9681 = r9676 * r9680;
        float r9682 = r9681 / r9673;
        float r9683 = r9677 * r9682;
        float r9684 = r9683 - r9673;
        float r9685 = r9684 - r9673;
        float r9686 = r9679 / r9685;
        float r9687 = r9678 * r9686;
        float r9688 = -1.09373698335034e-303f;
        bool r9689 = r9673 <= r9688;
        float r9690 = r9673 * r9673;
        float r9691 = r9679 * r9681;
        float r9692 = r9690 - r9691;
        float r9693 = sqrt(r9692);
        float r9694 = r9693 - r9673;
        float r9695 = r9679 / r9694;
        float r9696 = r9695 * r9678;
        float r9697 = 1.170080853887373e+54f;
        bool r9698 = r9673 <= r9697;
        float r9699 = -r9673;
        float r9700 = r9699 - r9693;
        float r9701 = r9680 * r9677;
        float r9702 = r9700 / r9701;
        float r9703 = r9673 / r9680;
        float r9704 = -r9703;
        float r9705 = r9698 ? r9702 : r9704;
        float r9706 = r9689 ? r9696 : r9705;
        float r9707 = r9675 ? r9687 : r9706;
        return r9707;
}

double f_od(double a, double b, double c) {
        double r9708 = b;
        double r9709 = -1.338815475246526e+154;
        bool r9710 = r9708 <= r9709;
        double r9711 = c;
        double r9712 = 2.0;
        double r9713 = r9711 / r9712;
        double r9714 = 4.0;
        double r9715 = a;
        double r9716 = r9711 * r9715;
        double r9717 = r9716 / r9708;
        double r9718 = r9712 * r9717;
        double r9719 = r9718 - r9708;
        double r9720 = r9719 - r9708;
        double r9721 = r9714 / r9720;
        double r9722 = r9713 * r9721;
        double r9723 = -1.09373698335034e-303;
        bool r9724 = r9708 <= r9723;
        double r9725 = r9708 * r9708;
        double r9726 = r9714 * r9716;
        double r9727 = r9725 - r9726;
        double r9728 = sqrt(r9727);
        double r9729 = r9728 - r9708;
        double r9730 = r9714 / r9729;
        double r9731 = r9730 * r9713;
        double r9732 = 1.170080853887373e+54;
        bool r9733 = r9708 <= r9732;
        double r9734 = -r9708;
        double r9735 = r9734 - r9728;
        double r9736 = r9715 * r9712;
        double r9737 = r9735 / r9736;
        double r9738 = r9708 / r9715;
        double r9739 = -r9738;
        double r9740 = r9733 ? r9737 : r9739;
        double r9741 = r9724 ? r9731 : r9740;
        double r9742 = r9710 ? r9722 : r9741;
        return r9742;
}

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 r9743, r9744, r9745, r9746, r9747, r9748, r9749, r9750, r9751, r9752, r9753, r9754, r9755, r9756;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9743);
        mpfr_init(r9744);
        mpfr_init(r9745);
        mpfr_init_set_str(r9746, "4", 10, MPFR_RNDN);
        mpfr_init(r9747);
        mpfr_init(r9748);
        mpfr_init(r9749);
        mpfr_init(r9750);
        mpfr_init(r9751);
        mpfr_init(r9752);
        mpfr_init(r9753);
        mpfr_init_set_str(r9754, "2", 10, MPFR_RNDN);
        mpfr_init(r9755);
        mpfr_init(r9756);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r9743, b, MPFR_RNDN);
        mpfr_neg(r9744, r9743, MPFR_RNDN);
        mpfr_mul(r9745, r9743, r9743, MPFR_RNDN);
        ;
        mpfr_set_d(r9747, a, MPFR_RNDN);
        mpfr_set_d(r9748, c, MPFR_RNDN);
        mpfr_mul(r9749, r9747, r9748, MPFR_RNDN);
        mpfr_mul(r9750, r9746, r9749, MPFR_RNDN);
        mpfr_sub(r9751, r9745, r9750, MPFR_RNDN);
        mpfr_sqrt(r9752, r9751, MPFR_RNDN);
        mpfr_sub(r9753, r9744, r9752, MPFR_RNDN);
        ;
        mpfr_mul(r9755, r9754, r9747, MPFR_RNDN);
        mpfr_div(r9756, r9753, r9755, MPFR_RNDN);
        return mpfr_get_d(r9756, MPFR_RNDN);
}

static mpfr_t r9757, r9758, r9759, r9760, r9761, r9762, r9763, r9764, r9765, r9766, r9767, r9768, r9769, r9770, r9771, r9772, r9773, r9774, r9775, r9776, r9777, r9778, r9779, r9780, r9781, r9782, r9783, r9784, r9785, r9786, r9787, r9788, r9789, r9790, r9791;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9757);
        mpfr_init_set_str(r9758, "-1.338815475246526e+154", 10, MPFR_RNDN);
        mpfr_init(r9759);
        mpfr_init(r9760);
        mpfr_init_set_str(r9761, "2", 10, MPFR_RNDN);
        mpfr_init(r9762);
        mpfr_init_set_str(r9763, "4", 10, MPFR_RNDN);
        mpfr_init(r9764);
        mpfr_init(r9765);
        mpfr_init(r9766);
        mpfr_init(r9767);
        mpfr_init(r9768);
        mpfr_init(r9769);
        mpfr_init(r9770);
        mpfr_init(r9771);
        mpfr_init_set_str(r9772, "-1.09373698335034e-303", 10, MPFR_RNDN);
        mpfr_init(r9773);
        mpfr_init(r9774);
        mpfr_init(r9775);
        mpfr_init(r9776);
        mpfr_init(r9777);
        mpfr_init(r9778);
        mpfr_init(r9779);
        mpfr_init(r9780);
        mpfr_init_set_str(r9781, "1.170080853887373e+54", 10, MPFR_RNDN);
        mpfr_init(r9782);
        mpfr_init(r9783);
        mpfr_init(r9784);
        mpfr_init(r9785);
        mpfr_init(r9786);
        mpfr_init(r9787);
        mpfr_init(r9788);
        mpfr_init(r9789);
        mpfr_init(r9790);
        mpfr_init(r9791);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r9757, b, MPFR_RNDN);
        ;
        mpfr_set_si(r9759, mpfr_cmp(r9757, r9758) <= 0, MPFR_RNDN);
        mpfr_set_d(r9760, c, MPFR_RNDN);
        ;
        mpfr_div(r9762, r9760, r9761, MPFR_RNDN);
        ;
        mpfr_set_d(r9764, a, MPFR_RNDN);
        mpfr_mul(r9765, r9760, r9764, MPFR_RNDN);
        mpfr_div(r9766, r9765, r9757, MPFR_RNDN);
        mpfr_mul(r9767, r9761, r9766, MPFR_RNDN);
        mpfr_sub(r9768, r9767, r9757, MPFR_RNDN);
        mpfr_sub(r9769, r9768, r9757, MPFR_RNDN);
        mpfr_div(r9770, r9763, r9769, MPFR_RNDN);
        mpfr_mul(r9771, r9762, r9770, MPFR_RNDN);
        ;
        mpfr_set_si(r9773, mpfr_cmp(r9757, r9772) <= 0, MPFR_RNDN);
        mpfr_mul(r9774, r9757, r9757, MPFR_RNDN);
        mpfr_mul(r9775, r9763, r9765, MPFR_RNDN);
        mpfr_sub(r9776, r9774, r9775, MPFR_RNDN);
        mpfr_sqrt(r9777, r9776, MPFR_RNDN);
        mpfr_sub(r9778, r9777, r9757, MPFR_RNDN);
        mpfr_div(r9779, r9763, r9778, MPFR_RNDN);
        mpfr_mul(r9780, r9779, r9762, MPFR_RNDN);
        ;
        mpfr_set_si(r9782, mpfr_cmp(r9757, r9781) <= 0, MPFR_RNDN);
        mpfr_neg(r9783, r9757, MPFR_RNDN);
        mpfr_sub(r9784, r9783, r9777, MPFR_RNDN);
        mpfr_mul(r9785, r9764, r9761, MPFR_RNDN);
        mpfr_div(r9786, r9784, r9785, MPFR_RNDN);
        mpfr_div(r9787, r9757, r9764, MPFR_RNDN);
        mpfr_neg(r9788, r9787, MPFR_RNDN);
        if (mpfr_get_si(r9782, MPFR_RNDN)) { mpfr_set(r9789, r9786, MPFR_RNDN); } else { mpfr_set(r9789, r9788, MPFR_RNDN); };
        if (mpfr_get_si(r9773, MPFR_RNDN)) { mpfr_set(r9790, r9780, MPFR_RNDN); } else { mpfr_set(r9790, r9789, MPFR_RNDN); };
        if (mpfr_get_si(r9759, MPFR_RNDN)) { mpfr_set(r9791, r9771, MPFR_RNDN); } else { mpfr_set(r9791, r9790, MPFR_RNDN); };
        return mpfr_get_d(r9791, MPFR_RNDN);
}

static mpfr_t 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, r9823, r9824, r9825, r9826;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9792);
        mpfr_init_set_str(r9793, "-1.338815475246526e+154", 10, MPFR_RNDN);
        mpfr_init(r9794);
        mpfr_init(r9795);
        mpfr_init_set_str(r9796, "2", 10, MPFR_RNDN);
        mpfr_init(r9797);
        mpfr_init_set_str(r9798, "4", 10, MPFR_RNDN);
        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_set_str(r9807, "-1.09373698335034e-303", 10, MPFR_RNDN);
        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_set_str(r9816, "1.170080853887373e+54", 10, MPFR_RNDN);
        mpfr_init(r9817);
        mpfr_init(r9818);
        mpfr_init(r9819);
        mpfr_init(r9820);
        mpfr_init(r9821);
        mpfr_init(r9822);
        mpfr_init(r9823);
        mpfr_init(r9824);
        mpfr_init(r9825);
        mpfr_init(r9826);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r9792, b, MPFR_RNDN);
        ;
        mpfr_set_si(r9794, mpfr_cmp(r9792, r9793) <= 0, MPFR_RNDN);
        mpfr_set_d(r9795, c, MPFR_RNDN);
        ;
        mpfr_div(r9797, r9795, r9796, MPFR_RNDN);
        ;
        mpfr_set_d(r9799, a, MPFR_RNDN);
        mpfr_mul(r9800, r9795, r9799, MPFR_RNDN);
        mpfr_div(r9801, r9800, r9792, MPFR_RNDN);
        mpfr_mul(r9802, r9796, r9801, MPFR_RNDN);
        mpfr_sub(r9803, r9802, r9792, MPFR_RNDN);
        mpfr_sub(r9804, r9803, r9792, MPFR_RNDN);
        mpfr_div(r9805, r9798, r9804, MPFR_RNDN);
        mpfr_mul(r9806, r9797, r9805, MPFR_RNDN);
        ;
        mpfr_set_si(r9808, mpfr_cmp(r9792, r9807) <= 0, MPFR_RNDN);
        mpfr_mul(r9809, r9792, r9792, MPFR_RNDN);
        mpfr_mul(r9810, r9798, r9800, MPFR_RNDN);
        mpfr_sub(r9811, r9809, r9810, MPFR_RNDN);
        mpfr_sqrt(r9812, r9811, MPFR_RNDN);
        mpfr_sub(r9813, r9812, r9792, MPFR_RNDN);
        mpfr_div(r9814, r9798, r9813, MPFR_RNDN);
        mpfr_mul(r9815, r9814, r9797, MPFR_RNDN);
        ;
        mpfr_set_si(r9817, mpfr_cmp(r9792, r9816) <= 0, MPFR_RNDN);
        mpfr_neg(r9818, r9792, MPFR_RNDN);
        mpfr_sub(r9819, r9818, r9812, MPFR_RNDN);
        mpfr_mul(r9820, r9799, r9796, MPFR_RNDN);
        mpfr_div(r9821, r9819, r9820, MPFR_RNDN);
        mpfr_div(r9822, r9792, r9799, MPFR_RNDN);
        mpfr_neg(r9823, r9822, MPFR_RNDN);
        if (mpfr_get_si(r9817, MPFR_RNDN)) { mpfr_set(r9824, r9821, MPFR_RNDN); } else { mpfr_set(r9824, r9823, MPFR_RNDN); };
        if (mpfr_get_si(r9808, MPFR_RNDN)) { mpfr_set(r9825, r9815, MPFR_RNDN); } else { mpfr_set(r9825, r9824, MPFR_RNDN); };
        if (mpfr_get_si(r9794, MPFR_RNDN)) { mpfr_set(r9826, r9806, MPFR_RNDN); } else { mpfr_set(r9826, r9825, MPFR_RNDN); };
        return mpfr_get_d(r9826, MPFR_RNDN);
}

