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

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

double f_if(float a, float b, float c) {
        float r25660 = b;
        float r25661 = -r25660;
        float r25662 = r25660 * r25660;
        float r25663 = 4;
        float r25664 = a;
        float r25665 = r25663 * r25664;
        float r25666 = c;
        float r25667 = r25665 * r25666;
        float r25668 = r25662 - r25667;
        float r25669 = sqrt(r25668);
        float r25670 = r25661 + r25669;
        float r25671 = 2;
        float r25672 = r25671 * r25664;
        float r25673 = r25670 / r25672;
        return r25673;
}

double f_id(double a, double b, double c) {
        double r25674 = b;
        double r25675 = -r25674;
        double r25676 = r25674 * r25674;
        double r25677 = 4;
        double r25678 = a;
        double r25679 = r25677 * r25678;
        double r25680 = c;
        double r25681 = r25679 * r25680;
        double r25682 = r25676 - r25681;
        double r25683 = sqrt(r25682);
        double r25684 = r25675 + r25683;
        double r25685 = 2;
        double r25686 = r25685 * r25678;
        double r25687 = r25684 / r25686;
        return r25687;
}


double f_of(float a, float b, float c) {
        float r25688 = b;
        float r25689 = -r25688;
        float r25690 = -8.158098959548989e+27;
        bool r25691 = r25689 <= r25690;
        float r25692 = c;
        float r25693 = -r25692;
        float r25694 = 1;
        float r25695 = r25688 / r25694;
        float r25696 = r25693 / r25695;
        float r25697 = -1.0995908853796e-144;
        bool r25698 = r25689 <= r25697;
        float r25699 = a;
        float r25700 = 4;
        float r25701 = r25699 * r25700;
        float r25702 = r25692 * r25701;
        float r25703 = r25688 * r25688;
        float r25704 = r25703 - r25702;
        float r25705 = sqrt(r25704);
        float r25706 = r25689 - r25705;
        float r25707 = r25702 / r25706;
        float r25708 = 2;
        float r25709 = r25699 * r25708;
        float r25710 = r25707 / r25709;
        float r25711 = 4.760127010700881e+19;
        bool r25712 = r25689 <= r25711;
        float r25713 = fma(r25701, r25693, r25703);
        float r25714 = sqrt(r25713);
        float r25715 = r25714 - r25688;
        float r25716 = r25715 / r25709;
        float r25717 = r25692 / r25688;
        float r25718 = r25688 + r25688;
        float r25719 = r25718 / r25709;
        float r25720 = r25717 - r25719;
        float r25721 = r25712 ? r25716 : r25720;
        float r25722 = r25698 ? r25710 : r25721;
        float r25723 = r25691 ? r25696 : r25722;
        return r25723;
}

double f_od(double a, double b, double c) {
        double r25724 = b;
        double r25725 = -r25724;
        double r25726 = -8.158098959548989e+27;
        bool r25727 = r25725 <= r25726;
        double r25728 = c;
        double r25729 = -r25728;
        double r25730 = 1;
        double r25731 = r25724 / r25730;
        double r25732 = r25729 / r25731;
        double r25733 = -1.0995908853796e-144;
        bool r25734 = r25725 <= r25733;
        double r25735 = a;
        double r25736 = 4;
        double r25737 = r25735 * r25736;
        double r25738 = r25728 * r25737;
        double r25739 = r25724 * r25724;
        double r25740 = r25739 - r25738;
        double r25741 = sqrt(r25740);
        double r25742 = r25725 - r25741;
        double r25743 = r25738 / r25742;
        double r25744 = 2;
        double r25745 = r25735 * r25744;
        double r25746 = r25743 / r25745;
        double r25747 = 4.760127010700881e+19;
        bool r25748 = r25725 <= r25747;
        double r25749 = fma(r25737, r25729, r25739);
        double r25750 = sqrt(r25749);
        double r25751 = r25750 - r25724;
        double r25752 = r25751 / r25745;
        double r25753 = r25728 / r25724;
        double r25754 = r25724 + r25724;
        double r25755 = r25754 / r25745;
        double r25756 = r25753 - r25755;
        double r25757 = r25748 ? r25752 : r25756;
        double r25758 = r25734 ? r25746 : r25757;
        double r25759 = r25727 ? r25732 : r25758;
        return r25759;
}

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 r25760, r25761, r25762, r25763, r25764, r25765, r25766, r25767, r25768, r25769, r25770, r25771, r25772, r25773;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r25760);
        mpfr_init(r25761);
        mpfr_init(r25762);
        mpfr_init_set_str(r25763, "4", 10, MPFR_RNDN);
        mpfr_init(r25764);
        mpfr_init(r25765);
        mpfr_init(r25766);
        mpfr_init(r25767);
        mpfr_init(r25768);
        mpfr_init(r25769);
        mpfr_init(r25770);
        mpfr_init_set_str(r25771, "2", 10, MPFR_RNDN);
        mpfr_init(r25772);
        mpfr_init(r25773);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r25760, b, MPFR_RNDN);
        mpfr_neg(r25761, r25760, MPFR_RNDN);
        mpfr_mul(r25762, r25760, r25760, MPFR_RNDN);
        ;
        mpfr_set_d(r25764, a, MPFR_RNDN);
        mpfr_mul(r25765, r25763, r25764, MPFR_RNDN);
        mpfr_set_d(r25766, c, MPFR_RNDN);
        mpfr_mul(r25767, r25765, r25766, MPFR_RNDN);
        mpfr_sub(r25768, r25762, r25767, MPFR_RNDN);
        mpfr_sqrt(r25769, r25768, MPFR_RNDN);
        mpfr_add(r25770, r25761, r25769, MPFR_RNDN);
        ;
        mpfr_mul(r25772, r25771, r25764, MPFR_RNDN);
        mpfr_div(r25773, r25770, r25772, MPFR_RNDN);
        return mpfr_get_d(r25773, MPFR_RNDN);
}

static mpfr_t 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, r25806, r25807, r25808, r25809;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r25774);
        mpfr_init(r25775);
        mpfr_init_set_str(r25776, "-8.158098959548989e+27", 10, MPFR_RNDN);
        mpfr_init(r25777);
        mpfr_init(r25778);
        mpfr_init(r25779);
        mpfr_init_set_str(r25780, "1", 10, MPFR_RNDN);
        mpfr_init(r25781);
        mpfr_init(r25782);
        mpfr_init_set_str(r25783, "-1.0995908853796e-144", 10, MPFR_RNDN);
        mpfr_init(r25784);
        mpfr_init(r25785);
        mpfr_init_set_str(r25786, "4", 10, MPFR_RNDN);
        mpfr_init(r25787);
        mpfr_init(r25788);
        mpfr_init(r25789);
        mpfr_init(r25790);
        mpfr_init(r25791);
        mpfr_init(r25792);
        mpfr_init(r25793);
        mpfr_init_set_str(r25794, "2", 10, MPFR_RNDN);
        mpfr_init(r25795);
        mpfr_init(r25796);
        mpfr_init_set_str(r25797, "4.760127010700881e+19", 10, MPFR_RNDN);
        mpfr_init(r25798);
        mpfr_init(r25799);
        mpfr_init(r25800);
        mpfr_init(r25801);
        mpfr_init(r25802);
        mpfr_init(r25803);
        mpfr_init(r25804);
        mpfr_init(r25805);
        mpfr_init(r25806);
        mpfr_init(r25807);
        mpfr_init(r25808);
        mpfr_init(r25809);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r25774, b, MPFR_RNDN);
        mpfr_neg(r25775, r25774, MPFR_RNDN);
        ;
        mpfr_set_si(r25777, mpfr_cmp(r25775, r25776) <= 0, MPFR_RNDN);
        mpfr_set_d(r25778, c, MPFR_RNDN);
        mpfr_neg(r25779, r25778, MPFR_RNDN);
        ;
        mpfr_div(r25781, r25774, r25780, MPFR_RNDN);
        mpfr_div(r25782, r25779, r25781, MPFR_RNDN);
        ;
        mpfr_set_si(r25784, mpfr_cmp(r25775, r25783) <= 0, MPFR_RNDN);
        mpfr_set_d(r25785, a, MPFR_RNDN);
        ;
        mpfr_mul(r25787, r25785, r25786, MPFR_RNDN);
        mpfr_mul(r25788, r25778, r25787, MPFR_RNDN);
        mpfr_mul(r25789, r25774, r25774, MPFR_RNDN);
        mpfr_sub(r25790, r25789, r25788, MPFR_RNDN);
        mpfr_sqrt(r25791, r25790, MPFR_RNDN);
        mpfr_sub(r25792, r25775, r25791, MPFR_RNDN);
        mpfr_div(r25793, r25788, r25792, MPFR_RNDN);
        ;
        mpfr_mul(r25795, r25785, r25794, MPFR_RNDN);
        mpfr_div(r25796, r25793, r25795, MPFR_RNDN);
        ;
        mpfr_set_si(r25798, mpfr_cmp(r25775, r25797) <= 0, MPFR_RNDN);
        mpfr_fma(r25799, r25787, r25779, r25789, MPFR_RNDN);
        mpfr_sqrt(r25800, r25799, MPFR_RNDN);
        mpfr_sub(r25801, r25800, r25774, MPFR_RNDN);
        mpfr_div(r25802, r25801, r25795, MPFR_RNDN);
        mpfr_div(r25803, r25778, r25774, MPFR_RNDN);
        mpfr_add(r25804, r25774, r25774, MPFR_RNDN);
        mpfr_div(r25805, r25804, r25795, MPFR_RNDN);
        mpfr_sub(r25806, r25803, r25805, MPFR_RNDN);
        if (mpfr_get_si(r25798, MPFR_RNDN)) { mpfr_set(r25807, r25802, MPFR_RNDN); } else { mpfr_set(r25807, r25806, MPFR_RNDN); };
        if (mpfr_get_si(r25784, MPFR_RNDN)) { mpfr_set(r25808, r25796, MPFR_RNDN); } else { mpfr_set(r25808, r25807, MPFR_RNDN); };
        if (mpfr_get_si(r25777, MPFR_RNDN)) { mpfr_set(r25809, r25782, MPFR_RNDN); } else { mpfr_set(r25809, r25808, MPFR_RNDN); };
        return mpfr_get_d(r25809, MPFR_RNDN);
}

static mpfr_t 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r25810);
        mpfr_init(r25811);
        mpfr_init_set_str(r25812, "-8.158098959548989e+27", 10, MPFR_RNDN);
        mpfr_init(r25813);
        mpfr_init(r25814);
        mpfr_init(r25815);
        mpfr_init_set_str(r25816, "1", 10, MPFR_RNDN);
        mpfr_init(r25817);
        mpfr_init(r25818);
        mpfr_init_set_str(r25819, "-1.0995908853796e-144", 10, MPFR_RNDN);
        mpfr_init(r25820);
        mpfr_init(r25821);
        mpfr_init_set_str(r25822, "4", 10, MPFR_RNDN);
        mpfr_init(r25823);
        mpfr_init(r25824);
        mpfr_init(r25825);
        mpfr_init(r25826);
        mpfr_init(r25827);
        mpfr_init(r25828);
        mpfr_init(r25829);
        mpfr_init_set_str(r25830, "2", 10, MPFR_RNDN);
        mpfr_init(r25831);
        mpfr_init(r25832);
        mpfr_init_set_str(r25833, "4.760127010700881e+19", 10, MPFR_RNDN);
        mpfr_init(r25834);
        mpfr_init(r25835);
        mpfr_init(r25836);
        mpfr_init(r25837);
        mpfr_init(r25838);
        mpfr_init(r25839);
        mpfr_init(r25840);
        mpfr_init(r25841);
        mpfr_init(r25842);
        mpfr_init(r25843);
        mpfr_init(r25844);
        mpfr_init(r25845);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r25810, b, MPFR_RNDN);
        mpfr_neg(r25811, r25810, MPFR_RNDN);
        ;
        mpfr_set_si(r25813, mpfr_cmp(r25811, r25812) <= 0, MPFR_RNDN);
        mpfr_set_d(r25814, c, MPFR_RNDN);
        mpfr_neg(r25815, r25814, MPFR_RNDN);
        ;
        mpfr_div(r25817, r25810, r25816, MPFR_RNDN);
        mpfr_div(r25818, r25815, r25817, MPFR_RNDN);
        ;
        mpfr_set_si(r25820, mpfr_cmp(r25811, r25819) <= 0, MPFR_RNDN);
        mpfr_set_d(r25821, a, MPFR_RNDN);
        ;
        mpfr_mul(r25823, r25821, r25822, MPFR_RNDN);
        mpfr_mul(r25824, r25814, r25823, MPFR_RNDN);
        mpfr_mul(r25825, r25810, r25810, MPFR_RNDN);
        mpfr_sub(r25826, r25825, r25824, MPFR_RNDN);
        mpfr_sqrt(r25827, r25826, MPFR_RNDN);
        mpfr_sub(r25828, r25811, r25827, MPFR_RNDN);
        mpfr_div(r25829, r25824, r25828, MPFR_RNDN);
        ;
        mpfr_mul(r25831, r25821, r25830, MPFR_RNDN);
        mpfr_div(r25832, r25829, r25831, MPFR_RNDN);
        ;
        mpfr_set_si(r25834, mpfr_cmp(r25811, r25833) <= 0, MPFR_RNDN);
        mpfr_fma(r25835, r25823, r25815, r25825, MPFR_RNDN);
        mpfr_sqrt(r25836, r25835, MPFR_RNDN);
        mpfr_sub(r25837, r25836, r25810, MPFR_RNDN);
        mpfr_div(r25838, r25837, r25831, MPFR_RNDN);
        mpfr_div(r25839, r25814, r25810, MPFR_RNDN);
        mpfr_add(r25840, r25810, r25810, MPFR_RNDN);
        mpfr_div(r25841, r25840, r25831, MPFR_RNDN);
        mpfr_sub(r25842, r25839, r25841, MPFR_RNDN);
        if (mpfr_get_si(r25834, MPFR_RNDN)) { mpfr_set(r25843, r25838, MPFR_RNDN); } else { mpfr_set(r25843, r25842, MPFR_RNDN); };
        if (mpfr_get_si(r25820, MPFR_RNDN)) { mpfr_set(r25844, r25832, MPFR_RNDN); } else { mpfr_set(r25844, r25843, MPFR_RNDN); };
        if (mpfr_get_si(r25813, MPFR_RNDN)) { mpfr_set(r25845, r25818, MPFR_RNDN); } else { mpfr_set(r25845, r25844, MPFR_RNDN); };
        return mpfr_get_d(r25845, MPFR_RNDN);
}

