#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 r27807 = b;
        float r27808 = -r27807;
        float r27809 = r27807 * r27807;
        float r27810 = 4;
        float r27811 = a;
        float r27812 = r27810 * r27811;
        float r27813 = c;
        float r27814 = r27812 * r27813;
        float r27815 = r27809 - r27814;
        float r27816 = sqrt(r27815);
        float r27817 = r27808 + r27816;
        float r27818 = 2;
        float r27819 = r27818 * r27811;
        float r27820 = r27817 / r27819;
        return r27820;
}

double f_id(double a, double b, double c) {
        double r27821 = b;
        double r27822 = -r27821;
        double r27823 = r27821 * r27821;
        double r27824 = 4;
        double r27825 = a;
        double r27826 = r27824 * r27825;
        double r27827 = c;
        double r27828 = r27826 * r27827;
        double r27829 = r27823 - r27828;
        double r27830 = sqrt(r27829);
        double r27831 = r27822 + r27830;
        double r27832 = 2;
        double r27833 = r27832 * r27825;
        double r27834 = r27831 / r27833;
        return r27834;
}


double f_of(float a, float b, float c) {
        float r27835 = b;
        float r27836 = -r27835;
        float r27837 = -5.606083790106066e+25;
        bool r27838 = r27836 <= r27837;
        float r27839 = c;
        float r27840 = a;
        float r27841 = 2;
        float r27842 = r27840 / r27841;
        float r27843 = 4;
        float r27844 = r27843 / r27840;
        float r27845 = r27842 * r27844;
        float r27846 = r27839 * r27845;
        float r27847 = r27835 / r27839;
        float r27848 = r27840 / r27847;
        float r27849 = r27836 - r27835;
        float r27850 = fma(r27848, r27841, r27849);
        float r27851 = r27846 / r27850;
        float r27852 = -2.671473252609305e-90;
        bool r27853 = r27836 <= r27852;
        float r27854 = 1;
        float r27855 = -r27843;
        float r27856 = r27839 * r27840;
        float r27857 = r27835 * r27835;
        float r27858 = fma(r27855, r27856, r27857);
        float r27859 = sqrt(r27858);
        float r27860 = r27835 + r27859;
        float r27861 = r27840 * r27841;
        float r27862 = r27861 / r27855;
        float r27863 = r27862 / r27856;
        float r27864 = r27860 * r27863;
        float r27865 = r27854 / r27864;
        float r27866 = 2.3427299165205038e+110;
        bool r27867 = r27836 <= r27866;
        float r27868 = r27859 - r27835;
        float r27869 = r27861 / r27868;
        float r27870 = r27854 / r27869;
        float r27871 = r27839 / r27835;
        float r27872 = r27835 + r27835;
        float r27873 = r27872 / r27861;
        float r27874 = r27871 - r27873;
        float r27875 = r27867 ? r27870 : r27874;
        float r27876 = r27853 ? r27865 : r27875;
        float r27877 = r27838 ? r27851 : r27876;
        return r27877;
}

double f_od(double a, double b, double c) {
        double r27878 = b;
        double r27879 = -r27878;
        double r27880 = -5.606083790106066e+25;
        bool r27881 = r27879 <= r27880;
        double r27882 = c;
        double r27883 = a;
        double r27884 = 2;
        double r27885 = r27883 / r27884;
        double r27886 = 4;
        double r27887 = r27886 / r27883;
        double r27888 = r27885 * r27887;
        double r27889 = r27882 * r27888;
        double r27890 = r27878 / r27882;
        double r27891 = r27883 / r27890;
        double r27892 = r27879 - r27878;
        double r27893 = fma(r27891, r27884, r27892);
        double r27894 = r27889 / r27893;
        double r27895 = -2.671473252609305e-90;
        bool r27896 = r27879 <= r27895;
        double r27897 = 1;
        double r27898 = -r27886;
        double r27899 = r27882 * r27883;
        double r27900 = r27878 * r27878;
        double r27901 = fma(r27898, r27899, r27900);
        double r27902 = sqrt(r27901);
        double r27903 = r27878 + r27902;
        double r27904 = r27883 * r27884;
        double r27905 = r27904 / r27898;
        double r27906 = r27905 / r27899;
        double r27907 = r27903 * r27906;
        double r27908 = r27897 / r27907;
        double r27909 = 2.3427299165205038e+110;
        bool r27910 = r27879 <= r27909;
        double r27911 = r27902 - r27878;
        double r27912 = r27904 / r27911;
        double r27913 = r27897 / r27912;
        double r27914 = r27882 / r27878;
        double r27915 = r27878 + r27878;
        double r27916 = r27915 / r27904;
        double r27917 = r27914 - r27916;
        double r27918 = r27910 ? r27913 : r27917;
        double r27919 = r27896 ? r27908 : r27918;
        double r27920 = r27881 ? r27894 : r27919;
        return r27920;
}

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 r27921, r27922, r27923, r27924, r27925, r27926, r27927, r27928, r27929, r27930, r27931, r27932, r27933, r27934;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r27921);
        mpfr_init(r27922);
        mpfr_init(r27923);
        mpfr_init_set_str(r27924, "4", 10, MPFR_RNDN);
        mpfr_init(r27925);
        mpfr_init(r27926);
        mpfr_init(r27927);
        mpfr_init(r27928);
        mpfr_init(r27929);
        mpfr_init(r27930);
        mpfr_init(r27931);
        mpfr_init_set_str(r27932, "2", 10, MPFR_RNDN);
        mpfr_init(r27933);
        mpfr_init(r27934);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r27921, b, MPFR_RNDN);
        mpfr_neg(r27922, r27921, MPFR_RNDN);
        mpfr_mul(r27923, r27921, r27921, MPFR_RNDN);
        ;
        mpfr_set_d(r27925, a, MPFR_RNDN);
        mpfr_mul(r27926, r27924, r27925, MPFR_RNDN);
        mpfr_set_d(r27927, c, MPFR_RNDN);
        mpfr_mul(r27928, r27926, r27927, MPFR_RNDN);
        mpfr_sub(r27929, r27923, r27928, MPFR_RNDN);
        mpfr_sqrt(r27930, r27929, MPFR_RNDN);
        mpfr_add(r27931, r27922, r27930, MPFR_RNDN);
        ;
        mpfr_mul(r27933, r27932, r27925, MPFR_RNDN);
        mpfr_div(r27934, r27931, r27933, MPFR_RNDN);
        return mpfr_get_d(r27934, MPFR_RNDN);
}

static mpfr_t r27935, r27936, r27937, r27938, r27939, r27940, r27941, r27942, r27943, r27944, r27945, r27946, r27947, r27948, r27949, r27950, r27951, r27952, r27953, r27954, r27955, r27956, r27957, r27958, r27959, r27960, r27961, r27962, r27963, r27964, r27965, r27966, r27967, r27968, r27969, r27970, r27971, r27972, r27973, r27974, r27975, r27976, r27977;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r27935);
        mpfr_init(r27936);
        mpfr_init_set_str(r27937, "-5.606083790106066e+25", 10, MPFR_RNDN);
        mpfr_init(r27938);
        mpfr_init(r27939);
        mpfr_init(r27940);
        mpfr_init_set_str(r27941, "2", 10, MPFR_RNDN);
        mpfr_init(r27942);
        mpfr_init_set_str(r27943, "4", 10, MPFR_RNDN);
        mpfr_init(r27944);
        mpfr_init(r27945);
        mpfr_init(r27946);
        mpfr_init(r27947);
        mpfr_init(r27948);
        mpfr_init(r27949);
        mpfr_init(r27950);
        mpfr_init(r27951);
        mpfr_init_set_str(r27952, "-2.671473252609305e-90", 10, MPFR_RNDN);
        mpfr_init(r27953);
        mpfr_init_set_str(r27954, "1", 10, MPFR_RNDN);
        mpfr_init(r27955);
        mpfr_init(r27956);
        mpfr_init(r27957);
        mpfr_init(r27958);
        mpfr_init(r27959);
        mpfr_init(r27960);
        mpfr_init(r27961);
        mpfr_init(r27962);
        mpfr_init(r27963);
        mpfr_init(r27964);
        mpfr_init(r27965);
        mpfr_init_set_str(r27966, "2.3427299165205038e+110", 10, MPFR_RNDN);
        mpfr_init(r27967);
        mpfr_init(r27968);
        mpfr_init(r27969);
        mpfr_init(r27970);
        mpfr_init(r27971);
        mpfr_init(r27972);
        mpfr_init(r27973);
        mpfr_init(r27974);
        mpfr_init(r27975);
        mpfr_init(r27976);
        mpfr_init(r27977);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r27935, b, MPFR_RNDN);
        mpfr_neg(r27936, r27935, MPFR_RNDN);
        ;
        mpfr_set_si(r27938, mpfr_cmp(r27936, r27937) <= 0, MPFR_RNDN);
        mpfr_set_d(r27939, c, MPFR_RNDN);
        mpfr_set_d(r27940, a, MPFR_RNDN);
        ;
        mpfr_div(r27942, r27940, r27941, MPFR_RNDN);
        ;
        mpfr_div(r27944, r27943, r27940, MPFR_RNDN);
        mpfr_mul(r27945, r27942, r27944, MPFR_RNDN);
        mpfr_mul(r27946, r27939, r27945, MPFR_RNDN);
        mpfr_div(r27947, r27935, r27939, MPFR_RNDN);
        mpfr_div(r27948, r27940, r27947, MPFR_RNDN);
        mpfr_sub(r27949, r27936, r27935, MPFR_RNDN);
        mpfr_fma(r27950, r27948, r27941, r27949, MPFR_RNDN);
        mpfr_div(r27951, r27946, r27950, MPFR_RNDN);
        ;
        mpfr_set_si(r27953, mpfr_cmp(r27936, r27952) <= 0, MPFR_RNDN);
        ;
        mpfr_neg(r27955, r27943, MPFR_RNDN);
        mpfr_mul(r27956, r27939, r27940, MPFR_RNDN);
        mpfr_mul(r27957, r27935, r27935, MPFR_RNDN);
        mpfr_fma(r27958, r27955, r27956, r27957, MPFR_RNDN);
        mpfr_sqrt(r27959, r27958, MPFR_RNDN);
        mpfr_add(r27960, r27935, r27959, MPFR_RNDN);
        mpfr_mul(r27961, r27940, r27941, MPFR_RNDN);
        mpfr_div(r27962, r27961, r27955, MPFR_RNDN);
        mpfr_div(r27963, r27962, r27956, MPFR_RNDN);
        mpfr_mul(r27964, r27960, r27963, MPFR_RNDN);
        mpfr_div(r27965, r27954, r27964, MPFR_RNDN);
        ;
        mpfr_set_si(r27967, mpfr_cmp(r27936, r27966) <= 0, MPFR_RNDN);
        mpfr_sub(r27968, r27959, r27935, MPFR_RNDN);
        mpfr_div(r27969, r27961, r27968, MPFR_RNDN);
        mpfr_div(r27970, r27954, r27969, MPFR_RNDN);
        mpfr_div(r27971, r27939, r27935, MPFR_RNDN);
        mpfr_add(r27972, r27935, r27935, MPFR_RNDN);
        mpfr_div(r27973, r27972, r27961, MPFR_RNDN);
        mpfr_sub(r27974, r27971, r27973, MPFR_RNDN);
        if (mpfr_get_si(r27967, MPFR_RNDN)) { mpfr_set(r27975, r27970, MPFR_RNDN); } else { mpfr_set(r27975, r27974, MPFR_RNDN); };
        if (mpfr_get_si(r27953, MPFR_RNDN)) { mpfr_set(r27976, r27965, MPFR_RNDN); } else { mpfr_set(r27976, r27975, MPFR_RNDN); };
        if (mpfr_get_si(r27938, MPFR_RNDN)) { mpfr_set(r27977, r27951, MPFR_RNDN); } else { mpfr_set(r27977, r27976, MPFR_RNDN); };
        return mpfr_get_d(r27977, MPFR_RNDN);
}

static mpfr_t r27978, r27979, r27980, r27981, r27982, r27983, r27984, r27985, r27986, r27987, r27988, r27989, r27990, r27991, r27992, r27993, r27994, r27995, r27996, r27997, r27998, r27999, r28000, r28001, r28002, r28003, r28004, r28005, r28006, r28007, r28008, r28009, r28010, r28011, r28012, r28013, r28014, r28015, r28016, r28017, r28018, r28019, r28020;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r27978);
        mpfr_init(r27979);
        mpfr_init_set_str(r27980, "-5.606083790106066e+25", 10, MPFR_RNDN);
        mpfr_init(r27981);
        mpfr_init(r27982);
        mpfr_init(r27983);
        mpfr_init_set_str(r27984, "2", 10, MPFR_RNDN);
        mpfr_init(r27985);
        mpfr_init_set_str(r27986, "4", 10, MPFR_RNDN);
        mpfr_init(r27987);
        mpfr_init(r27988);
        mpfr_init(r27989);
        mpfr_init(r27990);
        mpfr_init(r27991);
        mpfr_init(r27992);
        mpfr_init(r27993);
        mpfr_init(r27994);
        mpfr_init_set_str(r27995, "-2.671473252609305e-90", 10, MPFR_RNDN);
        mpfr_init(r27996);
        mpfr_init_set_str(r27997, "1", 10, MPFR_RNDN);
        mpfr_init(r27998);
        mpfr_init(r27999);
        mpfr_init(r28000);
        mpfr_init(r28001);
        mpfr_init(r28002);
        mpfr_init(r28003);
        mpfr_init(r28004);
        mpfr_init(r28005);
        mpfr_init(r28006);
        mpfr_init(r28007);
        mpfr_init(r28008);
        mpfr_init_set_str(r28009, "2.3427299165205038e+110", 10, MPFR_RNDN);
        mpfr_init(r28010);
        mpfr_init(r28011);
        mpfr_init(r28012);
        mpfr_init(r28013);
        mpfr_init(r28014);
        mpfr_init(r28015);
        mpfr_init(r28016);
        mpfr_init(r28017);
        mpfr_init(r28018);
        mpfr_init(r28019);
        mpfr_init(r28020);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r27978, b, MPFR_RNDN);
        mpfr_neg(r27979, r27978, MPFR_RNDN);
        ;
        mpfr_set_si(r27981, mpfr_cmp(r27979, r27980) <= 0, MPFR_RNDN);
        mpfr_set_d(r27982, c, MPFR_RNDN);
        mpfr_set_d(r27983, a, MPFR_RNDN);
        ;
        mpfr_div(r27985, r27983, r27984, MPFR_RNDN);
        ;
        mpfr_div(r27987, r27986, r27983, MPFR_RNDN);
        mpfr_mul(r27988, r27985, r27987, MPFR_RNDN);
        mpfr_mul(r27989, r27982, r27988, MPFR_RNDN);
        mpfr_div(r27990, r27978, r27982, MPFR_RNDN);
        mpfr_div(r27991, r27983, r27990, MPFR_RNDN);
        mpfr_sub(r27992, r27979, r27978, MPFR_RNDN);
        mpfr_fma(r27993, r27991, r27984, r27992, MPFR_RNDN);
        mpfr_div(r27994, r27989, r27993, MPFR_RNDN);
        ;
        mpfr_set_si(r27996, mpfr_cmp(r27979, r27995) <= 0, MPFR_RNDN);
        ;
        mpfr_neg(r27998, r27986, MPFR_RNDN);
        mpfr_mul(r27999, r27982, r27983, MPFR_RNDN);
        mpfr_mul(r28000, r27978, r27978, MPFR_RNDN);
        mpfr_fma(r28001, r27998, r27999, r28000, MPFR_RNDN);
        mpfr_sqrt(r28002, r28001, MPFR_RNDN);
        mpfr_add(r28003, r27978, r28002, MPFR_RNDN);
        mpfr_mul(r28004, r27983, r27984, MPFR_RNDN);
        mpfr_div(r28005, r28004, r27998, MPFR_RNDN);
        mpfr_div(r28006, r28005, r27999, MPFR_RNDN);
        mpfr_mul(r28007, r28003, r28006, MPFR_RNDN);
        mpfr_div(r28008, r27997, r28007, MPFR_RNDN);
        ;
        mpfr_set_si(r28010, mpfr_cmp(r27979, r28009) <= 0, MPFR_RNDN);
        mpfr_sub(r28011, r28002, r27978, MPFR_RNDN);
        mpfr_div(r28012, r28004, r28011, MPFR_RNDN);
        mpfr_div(r28013, r27997, r28012, MPFR_RNDN);
        mpfr_div(r28014, r27982, r27978, MPFR_RNDN);
        mpfr_add(r28015, r27978, r27978, MPFR_RNDN);
        mpfr_div(r28016, r28015, r28004, MPFR_RNDN);
        mpfr_sub(r28017, r28014, r28016, MPFR_RNDN);
        if (mpfr_get_si(r28010, MPFR_RNDN)) { mpfr_set(r28018, r28013, MPFR_RNDN); } else { mpfr_set(r28018, r28017, MPFR_RNDN); };
        if (mpfr_get_si(r27996, MPFR_RNDN)) { mpfr_set(r28019, r28008, MPFR_RNDN); } else { mpfr_set(r28019, r28018, MPFR_RNDN); };
        if (mpfr_get_si(r27981, MPFR_RNDN)) { mpfr_set(r28020, r27994, MPFR_RNDN); } else { mpfr_set(r28020, r28019, MPFR_RNDN); };
        return mpfr_get_d(r28020, MPFR_RNDN);
}

