#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 r25711 = b;
        float r25712 = -r25711;
        float r25713 = r25711 * r25711;
        float r25714 = 4;
        float r25715 = a;
        float r25716 = c;
        float r25717 = r25715 * r25716;
        float r25718 = r25714 * r25717;
        float r25719 = r25713 - r25718;
        float r25720 = sqrt(r25719);
        float r25721 = r25712 - r25720;
        float r25722 = 2;
        float r25723 = r25722 * r25715;
        float r25724 = r25721 / r25723;
        return r25724;
}

double f_id(double a, double b, double c) {
        double r25725 = b;
        double r25726 = -r25725;
        double r25727 = r25725 * r25725;
        double r25728 = 4;
        double r25729 = a;
        double r25730 = c;
        double r25731 = r25729 * r25730;
        double r25732 = r25728 * r25731;
        double r25733 = r25727 - r25732;
        double r25734 = sqrt(r25733);
        double r25735 = r25726 - r25734;
        double r25736 = 2;
        double r25737 = r25736 * r25729;
        double r25738 = r25735 / r25737;
        return r25738;
}


double f_of(float a, float b, float c) {
        float r25739 = b;
        float r25740 = -r25739;
        float r25741 = -2.2558475779903147e+76;
        bool r25742 = r25740 <= r25741;
        float r25743 = c;
        float r25744 = r25743 / r25739;
        float r25745 = a;
        float r25746 = r25739 / r25745;
        float r25747 = r25744 - r25746;
        float r25748 = 6.07119090972316e-184;
        bool r25749 = r25740 <= r25748;
        float r25750 = 1;
        float r25751 = 2;
        float r25752 = r25751 * r25745;
        float r25753 = r25739 * r25739;
        float r25754 = 4;
        float r25755 = r25745 * r25743;
        float r25756 = r25754 * r25755;
        float r25757 = r25753 - r25756;
        float r25758 = sqrt(r25757);
        float r25759 = r25740 - r25758;
        float r25760 = r25752 / r25759;
        float r25761 = r25750 / r25760;
        float r25762 = 2.5282880615562266e+91;
        bool r25763 = r25740 <= r25762;
        float r25764 = -r25754;
        float r25765 = fma(r25755, r25764, r25753);
        float r25766 = sqrt(r25765);
        float r25767 = r25766 - r25739;
        float r25768 = cbrt(r25767);
        float r25769 = r25750 / r25768;
        float r25770 = r25754 * r25743;
        float r25771 = fma(r25764, r25755, r25753);
        float r25772 = sqrt(r25771);
        float r25773 = r25772 - r25739;
        float r25774 = cbrt(r25773);
        float r25775 = r25774 * r25774;
        float r25776 = r25770 / r25775;
        float r25777 = r25776 / r25751;
        float r25778 = r25769 * r25777;
        float r25779 = -r25744;
        float r25780 = r25763 ? r25778 : r25779;
        float r25781 = r25749 ? r25761 : r25780;
        float r25782 = r25742 ? r25747 : r25781;
        return r25782;
}

double f_od(double a, double b, double c) {
        double r25783 = b;
        double r25784 = -r25783;
        double r25785 = -2.2558475779903147e+76;
        bool r25786 = r25784 <= r25785;
        double r25787 = c;
        double r25788 = r25787 / r25783;
        double r25789 = a;
        double r25790 = r25783 / r25789;
        double r25791 = r25788 - r25790;
        double r25792 = 6.07119090972316e-184;
        bool r25793 = r25784 <= r25792;
        double r25794 = 1;
        double r25795 = 2;
        double r25796 = r25795 * r25789;
        double r25797 = r25783 * r25783;
        double r25798 = 4;
        double r25799 = r25789 * r25787;
        double r25800 = r25798 * r25799;
        double r25801 = r25797 - r25800;
        double r25802 = sqrt(r25801);
        double r25803 = r25784 - r25802;
        double r25804 = r25796 / r25803;
        double r25805 = r25794 / r25804;
        double r25806 = 2.5282880615562266e+91;
        bool r25807 = r25784 <= r25806;
        double r25808 = -r25798;
        double r25809 = fma(r25799, r25808, r25797);
        double r25810 = sqrt(r25809);
        double r25811 = r25810 - r25783;
        double r25812 = cbrt(r25811);
        double r25813 = r25794 / r25812;
        double r25814 = r25798 * r25787;
        double r25815 = fma(r25808, r25799, r25797);
        double r25816 = sqrt(r25815);
        double r25817 = r25816 - r25783;
        double r25818 = cbrt(r25817);
        double r25819 = r25818 * r25818;
        double r25820 = r25814 / r25819;
        double r25821 = r25820 / r25795;
        double r25822 = r25813 * r25821;
        double r25823 = -r25788;
        double r25824 = r25807 ? r25822 : r25823;
        double r25825 = r25793 ? r25805 : r25824;
        double r25826 = r25786 ? r25791 : r25825;
        return r25826;
}

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 r25827, r25828, r25829, r25830, r25831, r25832, r25833, r25834, r25835, r25836, r25837, r25838, r25839, r25840;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25827);
        mpfr_init(r25828);
        mpfr_init(r25829);
        mpfr_init_set_str(r25830, "4", 10, MPFR_RNDN);
        mpfr_init(r25831);
        mpfr_init(r25832);
        mpfr_init(r25833);
        mpfr_init(r25834);
        mpfr_init(r25835);
        mpfr_init(r25836);
        mpfr_init(r25837);
        mpfr_init_set_str(r25838, "2", 10, MPFR_RNDN);
        mpfr_init(r25839);
        mpfr_init(r25840);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r25827, b, MPFR_RNDN);
        mpfr_neg(r25828, r25827, MPFR_RNDN);
        mpfr_mul(r25829, r25827, r25827, MPFR_RNDN);
        ;
        mpfr_set_d(r25831, a, MPFR_RNDN);
        mpfr_set_d(r25832, c, MPFR_RNDN);
        mpfr_mul(r25833, r25831, r25832, MPFR_RNDN);
        mpfr_mul(r25834, r25830, r25833, MPFR_RNDN);
        mpfr_sub(r25835, r25829, r25834, MPFR_RNDN);
        mpfr_sqrt(r25836, r25835, MPFR_RNDN);
        mpfr_sub(r25837, r25828, r25836, MPFR_RNDN);
        ;
        mpfr_mul(r25839, r25838, r25831, MPFR_RNDN);
        mpfr_div(r25840, r25837, r25839, MPFR_RNDN);
        return mpfr_get_d(r25840, MPFR_RNDN);
}

static mpfr_t r25841, r25842, r25843, r25844, r25845, r25846, r25847, r25848, r25849, r25850, r25851, r25852, r25853, r25854, r25855, r25856, r25857, r25858, r25859, r25860, r25861, r25862, r25863, r25864, r25865, r25866, r25867, r25868, r25869, r25870, r25871, r25872, r25873, r25874, r25875, r25876, r25877, r25878, r25879, r25880, r25881, r25882, r25883, r25884;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25841);
        mpfr_init(r25842);
        mpfr_init_set_str(r25843, "-2.2558475779903147e+76", 10, MPFR_RNDN);
        mpfr_init(r25844);
        mpfr_init(r25845);
        mpfr_init(r25846);
        mpfr_init(r25847);
        mpfr_init(r25848);
        mpfr_init(r25849);
        mpfr_init_set_str(r25850, "6.07119090972316e-184", 10, MPFR_RNDN);
        mpfr_init(r25851);
        mpfr_init_set_str(r25852, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r25853, "2", 10, MPFR_RNDN);
        mpfr_init(r25854);
        mpfr_init(r25855);
        mpfr_init_set_str(r25856, "4", 10, MPFR_RNDN);
        mpfr_init(r25857);
        mpfr_init(r25858);
        mpfr_init(r25859);
        mpfr_init(r25860);
        mpfr_init(r25861);
        mpfr_init(r25862);
        mpfr_init(r25863);
        mpfr_init_set_str(r25864, "2.5282880615562266e+91", 10, MPFR_RNDN);
        mpfr_init(r25865);
        mpfr_init(r25866);
        mpfr_init(r25867);
        mpfr_init(r25868);
        mpfr_init(r25869);
        mpfr_init(r25870);
        mpfr_init(r25871);
        mpfr_init(r25872);
        mpfr_init(r25873);
        mpfr_init(r25874);
        mpfr_init(r25875);
        mpfr_init(r25876);
        mpfr_init(r25877);
        mpfr_init(r25878);
        mpfr_init(r25879);
        mpfr_init(r25880);
        mpfr_init(r25881);
        mpfr_init(r25882);
        mpfr_init(r25883);
        mpfr_init(r25884);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r25841, b, MPFR_RNDN);
        mpfr_neg(r25842, r25841, MPFR_RNDN);
        ;
        mpfr_set_si(r25844, mpfr_cmp(r25842, r25843) <= 0, MPFR_RNDN);
        mpfr_set_d(r25845, c, MPFR_RNDN);
        mpfr_div(r25846, r25845, r25841, MPFR_RNDN);
        mpfr_set_d(r25847, a, MPFR_RNDN);
        mpfr_div(r25848, r25841, r25847, MPFR_RNDN);
        mpfr_sub(r25849, r25846, r25848, MPFR_RNDN);
        ;
        mpfr_set_si(r25851, mpfr_cmp(r25842, r25850) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r25854, r25853, r25847, MPFR_RNDN);
        mpfr_mul(r25855, r25841, r25841, MPFR_RNDN);
        ;
        mpfr_mul(r25857, r25847, r25845, MPFR_RNDN);
        mpfr_mul(r25858, r25856, r25857, MPFR_RNDN);
        mpfr_sub(r25859, r25855, r25858, MPFR_RNDN);
        mpfr_sqrt(r25860, r25859, MPFR_RNDN);
        mpfr_sub(r25861, r25842, r25860, MPFR_RNDN);
        mpfr_div(r25862, r25854, r25861, MPFR_RNDN);
        mpfr_div(r25863, r25852, r25862, MPFR_RNDN);
        ;
        mpfr_set_si(r25865, mpfr_cmp(r25842, r25864) <= 0, MPFR_RNDN);
        mpfr_neg(r25866, r25856, MPFR_RNDN);
        mpfr_fma(r25867, r25857, r25866, r25855, MPFR_RNDN);
        mpfr_sqrt(r25868, r25867, MPFR_RNDN);
        mpfr_sub(r25869, r25868, r25841, MPFR_RNDN);
        mpfr_cbrt(r25870, r25869, MPFR_RNDN);
        mpfr_div(r25871, r25852, r25870, MPFR_RNDN);
        mpfr_mul(r25872, r25856, r25845, MPFR_RNDN);
        mpfr_fma(r25873, r25866, r25857, r25855, MPFR_RNDN);
        mpfr_sqrt(r25874, r25873, MPFR_RNDN);
        mpfr_sub(r25875, r25874, r25841, MPFR_RNDN);
        mpfr_cbrt(r25876, r25875, MPFR_RNDN);
        mpfr_mul(r25877, r25876, r25876, MPFR_RNDN);
        mpfr_div(r25878, r25872, r25877, MPFR_RNDN);
        mpfr_div(r25879, r25878, r25853, MPFR_RNDN);
        mpfr_mul(r25880, r25871, r25879, MPFR_RNDN);
        mpfr_neg(r25881, r25846, MPFR_RNDN);
        if (mpfr_get_si(r25865, MPFR_RNDN)) { mpfr_set(r25882, r25880, MPFR_RNDN); } else { mpfr_set(r25882, r25881, MPFR_RNDN); };
        if (mpfr_get_si(r25851, MPFR_RNDN)) { mpfr_set(r25883, r25863, MPFR_RNDN); } else { mpfr_set(r25883, r25882, MPFR_RNDN); };
        if (mpfr_get_si(r25844, MPFR_RNDN)) { mpfr_set(r25884, r25849, MPFR_RNDN); } else { mpfr_set(r25884, r25883, MPFR_RNDN); };
        return mpfr_get_d(r25884, MPFR_RNDN);
}

static mpfr_t r25885, r25886, r25887, r25888, r25889, r25890, r25891, r25892, r25893, r25894, r25895, r25896, r25897, r25898, r25899, r25900, r25901, r25902, r25903, r25904, r25905, r25906, r25907, r25908, r25909, r25910, r25911, r25912, r25913, r25914, r25915, r25916, r25917, r25918, r25919, r25920, r25921, r25922, r25923, r25924, r25925, r25926, r25927, r25928;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25885);
        mpfr_init(r25886);
        mpfr_init_set_str(r25887, "-2.2558475779903147e+76", 10, MPFR_RNDN);
        mpfr_init(r25888);
        mpfr_init(r25889);
        mpfr_init(r25890);
        mpfr_init(r25891);
        mpfr_init(r25892);
        mpfr_init(r25893);
        mpfr_init_set_str(r25894, "6.07119090972316e-184", 10, MPFR_RNDN);
        mpfr_init(r25895);
        mpfr_init_set_str(r25896, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r25897, "2", 10, MPFR_RNDN);
        mpfr_init(r25898);
        mpfr_init(r25899);
        mpfr_init_set_str(r25900, "4", 10, MPFR_RNDN);
        mpfr_init(r25901);
        mpfr_init(r25902);
        mpfr_init(r25903);
        mpfr_init(r25904);
        mpfr_init(r25905);
        mpfr_init(r25906);
        mpfr_init(r25907);
        mpfr_init_set_str(r25908, "2.5282880615562266e+91", 10, MPFR_RNDN);
        mpfr_init(r25909);
        mpfr_init(r25910);
        mpfr_init(r25911);
        mpfr_init(r25912);
        mpfr_init(r25913);
        mpfr_init(r25914);
        mpfr_init(r25915);
        mpfr_init(r25916);
        mpfr_init(r25917);
        mpfr_init(r25918);
        mpfr_init(r25919);
        mpfr_init(r25920);
        mpfr_init(r25921);
        mpfr_init(r25922);
        mpfr_init(r25923);
        mpfr_init(r25924);
        mpfr_init(r25925);
        mpfr_init(r25926);
        mpfr_init(r25927);
        mpfr_init(r25928);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r25885, b, MPFR_RNDN);
        mpfr_neg(r25886, r25885, MPFR_RNDN);
        ;
        mpfr_set_si(r25888, mpfr_cmp(r25886, r25887) <= 0, MPFR_RNDN);
        mpfr_set_d(r25889, c, MPFR_RNDN);
        mpfr_div(r25890, r25889, r25885, MPFR_RNDN);
        mpfr_set_d(r25891, a, MPFR_RNDN);
        mpfr_div(r25892, r25885, r25891, MPFR_RNDN);
        mpfr_sub(r25893, r25890, r25892, MPFR_RNDN);
        ;
        mpfr_set_si(r25895, mpfr_cmp(r25886, r25894) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r25898, r25897, r25891, MPFR_RNDN);
        mpfr_mul(r25899, r25885, r25885, MPFR_RNDN);
        ;
        mpfr_mul(r25901, r25891, r25889, MPFR_RNDN);
        mpfr_mul(r25902, r25900, r25901, MPFR_RNDN);
        mpfr_sub(r25903, r25899, r25902, MPFR_RNDN);
        mpfr_sqrt(r25904, r25903, MPFR_RNDN);
        mpfr_sub(r25905, r25886, r25904, MPFR_RNDN);
        mpfr_div(r25906, r25898, r25905, MPFR_RNDN);
        mpfr_div(r25907, r25896, r25906, MPFR_RNDN);
        ;
        mpfr_set_si(r25909, mpfr_cmp(r25886, r25908) <= 0, MPFR_RNDN);
        mpfr_neg(r25910, r25900, MPFR_RNDN);
        mpfr_fma(r25911, r25901, r25910, r25899, MPFR_RNDN);
        mpfr_sqrt(r25912, r25911, MPFR_RNDN);
        mpfr_sub(r25913, r25912, r25885, MPFR_RNDN);
        mpfr_cbrt(r25914, r25913, MPFR_RNDN);
        mpfr_div(r25915, r25896, r25914, MPFR_RNDN);
        mpfr_mul(r25916, r25900, r25889, MPFR_RNDN);
        mpfr_fma(r25917, r25910, r25901, r25899, MPFR_RNDN);
        mpfr_sqrt(r25918, r25917, MPFR_RNDN);
        mpfr_sub(r25919, r25918, r25885, MPFR_RNDN);
        mpfr_cbrt(r25920, r25919, MPFR_RNDN);
        mpfr_mul(r25921, r25920, r25920, MPFR_RNDN);
        mpfr_div(r25922, r25916, r25921, MPFR_RNDN);
        mpfr_div(r25923, r25922, r25897, MPFR_RNDN);
        mpfr_mul(r25924, r25915, r25923, MPFR_RNDN);
        mpfr_neg(r25925, r25890, MPFR_RNDN);
        if (mpfr_get_si(r25909, MPFR_RNDN)) { mpfr_set(r25926, r25924, MPFR_RNDN); } else { mpfr_set(r25926, r25925, MPFR_RNDN); };
        if (mpfr_get_si(r25895, MPFR_RNDN)) { mpfr_set(r25927, r25907, MPFR_RNDN); } else { mpfr_set(r25927, r25926, MPFR_RNDN); };
        if (mpfr_get_si(r25888, MPFR_RNDN)) { mpfr_set(r25928, r25893, MPFR_RNDN); } else { mpfr_set(r25928, r25927, MPFR_RNDN); };
        return mpfr_get_d(r25928, MPFR_RNDN);
}

