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

char *name = "The quadratic formula (r2)";

double f_if(float a, float b, float c) {
        float r8679 = b;
        float r8680 = -r8679;
        float r8681 = r8679 * r8679;
        float r8682 = 4.0f;
        float r8683 = a;
        float r8684 = c;
        float r8685 = r8683 * r8684;
        float r8686 = r8682 * r8685;
        float r8687 = r8681 - r8686;
        float r8688 = sqrt(r8687);
        float r8689 = r8680 - r8688;
        float r8690 = 2.0f;
        float r8691 = r8690 * r8683;
        float r8692 = r8689 / r8691;
        return r8692;
}

double f_id(double a, double b, double c) {
        double r8693 = b;
        double r8694 = -r8693;
        double r8695 = r8693 * r8693;
        double r8696 = 4.0;
        double r8697 = a;
        double r8698 = c;
        double r8699 = r8697 * r8698;
        double r8700 = r8696 * r8699;
        double r8701 = r8695 - r8700;
        double r8702 = sqrt(r8701);
        double r8703 = r8694 - r8702;
        double r8704 = 2.0;
        double r8705 = r8704 * r8697;
        double r8706 = r8703 / r8705;
        return r8706;
}


double f_of(float a, float b, float c) {
        float r8707 = b;
        float r8708 = -1.338815475246526e+154f;
        bool r8709 = r8707 <= r8708;
        float r8710 = c;
        float r8711 = 2.0f;
        float r8712 = r8710 / r8711;
        float r8713 = 4.0f;
        float r8714 = a;
        float r8715 = r8710 * r8714;
        float r8716 = r8715 / r8707;
        float r8717 = r8711 * r8716;
        float r8718 = r8717 - r8707;
        float r8719 = r8718 - r8707;
        float r8720 = r8713 / r8719;
        float r8721 = r8712 * r8720;
        float r8722 = -1.1965740506185076e-303f;
        bool r8723 = r8707 <= r8722;
        float r8724 = r8707 * r8707;
        float r8725 = r8713 * r8715;
        float r8726 = r8724 - r8725;
        float r8727 = sqrt(r8726);
        float r8728 = r8727 - r8707;
        float r8729 = r8713 / r8728;
        float r8730 = r8729 * r8712;
        float r8731 = 1.170080853887373e+54f;
        bool r8732 = r8707 <= r8731;
        float r8733 = -r8707;
        float r8734 = r8733 - r8727;
        float r8735 = r8714 * r8711;
        float r8736 = r8734 / r8735;
        float r8737 = r8707 / r8714;
        float r8738 = -r8737;
        float r8739 = r8732 ? r8736 : r8738;
        float r8740 = r8723 ? r8730 : r8739;
        float r8741 = r8709 ? r8721 : r8740;
        return r8741;
}

double f_od(double a, double b, double c) {
        double r8742 = b;
        double r8743 = -1.338815475246526e+154;
        bool r8744 = r8742 <= r8743;
        double r8745 = c;
        double r8746 = 2.0;
        double r8747 = r8745 / r8746;
        double r8748 = 4.0;
        double r8749 = a;
        double r8750 = r8745 * r8749;
        double r8751 = r8750 / r8742;
        double r8752 = r8746 * r8751;
        double r8753 = r8752 - r8742;
        double r8754 = r8753 - r8742;
        double r8755 = r8748 / r8754;
        double r8756 = r8747 * r8755;
        double r8757 = -1.1965740506185076e-303;
        bool r8758 = r8742 <= r8757;
        double r8759 = r8742 * r8742;
        double r8760 = r8748 * r8750;
        double r8761 = r8759 - r8760;
        double r8762 = sqrt(r8761);
        double r8763 = r8762 - r8742;
        double r8764 = r8748 / r8763;
        double r8765 = r8764 * r8747;
        double r8766 = 1.170080853887373e+54;
        bool r8767 = r8742 <= r8766;
        double r8768 = -r8742;
        double r8769 = r8768 - r8762;
        double r8770 = r8749 * r8746;
        double r8771 = r8769 / r8770;
        double r8772 = r8742 / r8749;
        double r8773 = -r8772;
        double r8774 = r8767 ? r8771 : r8773;
        double r8775 = r8758 ? r8765 : r8774;
        double r8776 = r8744 ? r8756 : r8775;
        return r8776;
}

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 r8777, r8778, r8779, r8780, r8781, r8782, r8783, r8784, r8785, r8786, r8787, r8788, r8789, r8790;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r8777);
        mpfr_init(r8778);
        mpfr_init(r8779);
        mpfr_init_set_str(r8780, "4", 10, MPFR_RNDN);
        mpfr_init(r8781);
        mpfr_init(r8782);
        mpfr_init(r8783);
        mpfr_init(r8784);
        mpfr_init(r8785);
        mpfr_init(r8786);
        mpfr_init(r8787);
        mpfr_init_set_str(r8788, "2", 10, MPFR_RNDN);
        mpfr_init(r8789);
        mpfr_init(r8790);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r8777, b, MPFR_RNDN);
        mpfr_neg(r8778, r8777, MPFR_RNDN);
        mpfr_mul(r8779, r8777, r8777, MPFR_RNDN);
        ;
        mpfr_set_d(r8781, a, MPFR_RNDN);
        mpfr_set_d(r8782, c, MPFR_RNDN);
        mpfr_mul(r8783, r8781, r8782, MPFR_RNDN);
        mpfr_mul(r8784, r8780, r8783, MPFR_RNDN);
        mpfr_sub(r8785, r8779, r8784, MPFR_RNDN);
        mpfr_sqrt(r8786, r8785, MPFR_RNDN);
        mpfr_sub(r8787, r8778, r8786, MPFR_RNDN);
        ;
        mpfr_mul(r8789, r8788, r8781, MPFR_RNDN);
        mpfr_div(r8790, r8787, r8789, MPFR_RNDN);
        return mpfr_get_d(r8790, MPFR_RNDN);
}

static mpfr_t r8791, r8792, r8793, r8794, r8795, r8796, r8797, r8798, r8799, r8800, r8801, r8802, r8803, r8804, r8805, r8806, r8807, r8808, r8809, r8810, r8811, r8812, r8813, r8814, r8815, r8816, r8817, r8818, r8819, r8820, r8821, r8822, r8823, r8824, r8825;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r8791);
        mpfr_init_set_str(r8792, "-1.338815475246526e+154", 10, MPFR_RNDN);
        mpfr_init(r8793);
        mpfr_init(r8794);
        mpfr_init_set_str(r8795, "2", 10, MPFR_RNDN);
        mpfr_init(r8796);
        mpfr_init_set_str(r8797, "4", 10, MPFR_RNDN);
        mpfr_init(r8798);
        mpfr_init(r8799);
        mpfr_init(r8800);
        mpfr_init(r8801);
        mpfr_init(r8802);
        mpfr_init(r8803);
        mpfr_init(r8804);
        mpfr_init(r8805);
        mpfr_init_set_str(r8806, "-1.1965740506185076e-303", 10, MPFR_RNDN);
        mpfr_init(r8807);
        mpfr_init(r8808);
        mpfr_init(r8809);
        mpfr_init(r8810);
        mpfr_init(r8811);
        mpfr_init(r8812);
        mpfr_init(r8813);
        mpfr_init(r8814);
        mpfr_init_set_str(r8815, "1.170080853887373e+54", 10, MPFR_RNDN);
        mpfr_init(r8816);
        mpfr_init(r8817);
        mpfr_init(r8818);
        mpfr_init(r8819);
        mpfr_init(r8820);
        mpfr_init(r8821);
        mpfr_init(r8822);
        mpfr_init(r8823);
        mpfr_init(r8824);
        mpfr_init(r8825);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r8791, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8793, mpfr_cmp(r8791, r8792) <= 0, MPFR_RNDN);
        mpfr_set_d(r8794, c, MPFR_RNDN);
        ;
        mpfr_div(r8796, r8794, r8795, MPFR_RNDN);
        ;
        mpfr_set_d(r8798, a, MPFR_RNDN);
        mpfr_mul(r8799, r8794, r8798, MPFR_RNDN);
        mpfr_div(r8800, r8799, r8791, MPFR_RNDN);
        mpfr_mul(r8801, r8795, r8800, MPFR_RNDN);
        mpfr_sub(r8802, r8801, r8791, MPFR_RNDN);
        mpfr_sub(r8803, r8802, r8791, MPFR_RNDN);
        mpfr_div(r8804, r8797, r8803, MPFR_RNDN);
        mpfr_mul(r8805, r8796, r8804, MPFR_RNDN);
        ;
        mpfr_set_si(r8807, mpfr_cmp(r8791, r8806) <= 0, MPFR_RNDN);
        mpfr_mul(r8808, r8791, r8791, MPFR_RNDN);
        mpfr_mul(r8809, r8797, r8799, MPFR_RNDN);
        mpfr_sub(r8810, r8808, r8809, MPFR_RNDN);
        mpfr_sqrt(r8811, r8810, MPFR_RNDN);
        mpfr_sub(r8812, r8811, r8791, MPFR_RNDN);
        mpfr_div(r8813, r8797, r8812, MPFR_RNDN);
        mpfr_mul(r8814, r8813, r8796, MPFR_RNDN);
        ;
        mpfr_set_si(r8816, mpfr_cmp(r8791, r8815) <= 0, MPFR_RNDN);
        mpfr_neg(r8817, r8791, MPFR_RNDN);
        mpfr_sub(r8818, r8817, r8811, MPFR_RNDN);
        mpfr_mul(r8819, r8798, r8795, MPFR_RNDN);
        mpfr_div(r8820, r8818, r8819, MPFR_RNDN);
        mpfr_div(r8821, r8791, r8798, MPFR_RNDN);
        mpfr_neg(r8822, r8821, MPFR_RNDN);
        if (mpfr_get_si(r8816, MPFR_RNDN)) { mpfr_set(r8823, r8820, MPFR_RNDN); } else { mpfr_set(r8823, r8822, MPFR_RNDN); };
        if (mpfr_get_si(r8807, MPFR_RNDN)) { mpfr_set(r8824, r8814, MPFR_RNDN); } else { mpfr_set(r8824, r8823, MPFR_RNDN); };
        if (mpfr_get_si(r8793, MPFR_RNDN)) { mpfr_set(r8825, r8805, MPFR_RNDN); } else { mpfr_set(r8825, r8824, MPFR_RNDN); };
        return mpfr_get_d(r8825, MPFR_RNDN);
}

static mpfr_t r8826, r8827, r8828, r8829, r8830, r8831, r8832, r8833, r8834, r8835, r8836, r8837, r8838, r8839, r8840, r8841, r8842, r8843, r8844, r8845, r8846, r8847, r8848, r8849, r8850, r8851, r8852, r8853, r8854, r8855, r8856, r8857, r8858, r8859, r8860;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r8826);
        mpfr_init_set_str(r8827, "-1.338815475246526e+154", 10, MPFR_RNDN);
        mpfr_init(r8828);
        mpfr_init(r8829);
        mpfr_init_set_str(r8830, "2", 10, MPFR_RNDN);
        mpfr_init(r8831);
        mpfr_init_set_str(r8832, "4", 10, MPFR_RNDN);
        mpfr_init(r8833);
        mpfr_init(r8834);
        mpfr_init(r8835);
        mpfr_init(r8836);
        mpfr_init(r8837);
        mpfr_init(r8838);
        mpfr_init(r8839);
        mpfr_init(r8840);
        mpfr_init_set_str(r8841, "-1.1965740506185076e-303", 10, MPFR_RNDN);
        mpfr_init(r8842);
        mpfr_init(r8843);
        mpfr_init(r8844);
        mpfr_init(r8845);
        mpfr_init(r8846);
        mpfr_init(r8847);
        mpfr_init(r8848);
        mpfr_init(r8849);
        mpfr_init_set_str(r8850, "1.170080853887373e+54", 10, MPFR_RNDN);
        mpfr_init(r8851);
        mpfr_init(r8852);
        mpfr_init(r8853);
        mpfr_init(r8854);
        mpfr_init(r8855);
        mpfr_init(r8856);
        mpfr_init(r8857);
        mpfr_init(r8858);
        mpfr_init(r8859);
        mpfr_init(r8860);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r8826, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8828, mpfr_cmp(r8826, r8827) <= 0, MPFR_RNDN);
        mpfr_set_d(r8829, c, MPFR_RNDN);
        ;
        mpfr_div(r8831, r8829, r8830, MPFR_RNDN);
        ;
        mpfr_set_d(r8833, a, MPFR_RNDN);
        mpfr_mul(r8834, r8829, r8833, MPFR_RNDN);
        mpfr_div(r8835, r8834, r8826, MPFR_RNDN);
        mpfr_mul(r8836, r8830, r8835, MPFR_RNDN);
        mpfr_sub(r8837, r8836, r8826, MPFR_RNDN);
        mpfr_sub(r8838, r8837, r8826, MPFR_RNDN);
        mpfr_div(r8839, r8832, r8838, MPFR_RNDN);
        mpfr_mul(r8840, r8831, r8839, MPFR_RNDN);
        ;
        mpfr_set_si(r8842, mpfr_cmp(r8826, r8841) <= 0, MPFR_RNDN);
        mpfr_mul(r8843, r8826, r8826, MPFR_RNDN);
        mpfr_mul(r8844, r8832, r8834, MPFR_RNDN);
        mpfr_sub(r8845, r8843, r8844, MPFR_RNDN);
        mpfr_sqrt(r8846, r8845, MPFR_RNDN);
        mpfr_sub(r8847, r8846, r8826, MPFR_RNDN);
        mpfr_div(r8848, r8832, r8847, MPFR_RNDN);
        mpfr_mul(r8849, r8848, r8831, MPFR_RNDN);
        ;
        mpfr_set_si(r8851, mpfr_cmp(r8826, r8850) <= 0, MPFR_RNDN);
        mpfr_neg(r8852, r8826, MPFR_RNDN);
        mpfr_sub(r8853, r8852, r8846, MPFR_RNDN);
        mpfr_mul(r8854, r8833, r8830, MPFR_RNDN);
        mpfr_div(r8855, r8853, r8854, MPFR_RNDN);
        mpfr_div(r8856, r8826, r8833, MPFR_RNDN);
        mpfr_neg(r8857, r8856, MPFR_RNDN);
        if (mpfr_get_si(r8851, MPFR_RNDN)) { mpfr_set(r8858, r8855, MPFR_RNDN); } else { mpfr_set(r8858, r8857, MPFR_RNDN); };
        if (mpfr_get_si(r8842, MPFR_RNDN)) { mpfr_set(r8859, r8849, MPFR_RNDN); } else { mpfr_set(r8859, r8858, MPFR_RNDN); };
        if (mpfr_get_si(r8828, MPFR_RNDN)) { mpfr_set(r8860, r8840, MPFR_RNDN); } else { mpfr_set(r8860, r8859, MPFR_RNDN); };
        return mpfr_get_d(r8860, MPFR_RNDN);
}

