#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 r27819 = b;
        float r27820 = -r27819;
        float r27821 = r27819 * r27819;
        float r27822 = 4;
        float r27823 = a;
        float r27824 = r27822 * r27823;
        float r27825 = c;
        float r27826 = r27824 * r27825;
        float r27827 = r27821 - r27826;
        float r27828 = sqrt(r27827);
        float r27829 = r27820 + r27828;
        float r27830 = 2;
        float r27831 = r27830 * r27823;
        float r27832 = r27829 / r27831;
        return r27832;
}

double f_id(double a, double b, double c) {
        double r27833 = b;
        double r27834 = -r27833;
        double r27835 = r27833 * r27833;
        double r27836 = 4;
        double r27837 = a;
        double r27838 = r27836 * r27837;
        double r27839 = c;
        double r27840 = r27838 * r27839;
        double r27841 = r27835 - r27840;
        double r27842 = sqrt(r27841);
        double r27843 = r27834 + r27842;
        double r27844 = 2;
        double r27845 = r27844 * r27837;
        double r27846 = r27843 / r27845;
        return r27846;
}


double f_of(float a, float b, float c) {
        float r27847 = b;
        float r27848 = 2;
        float r27849 = pow(r27847, r27848);
        float r27850 = 4;
        float r27851 = c;
        float r27852 = a;
        float r27853 = r27851 * r27852;
        float r27854 = r27850 * r27853;
        float r27855 = r27849 - r27854;
        float r27856 = sqrt(r27855);
        float r27857 = r27856 - r27847;
        float r27858 = r27848 * r27852;
        float r27859 = r27857 / r27858;
        float r27860 = -3.893813382866839e+302;
        bool r27861 = r27859 <= r27860;
        float r27862 = r27851 / r27848;
        float r27863 = -r27850;
        float r27864 = r27862 * r27863;
        float r27865 = r27847 + r27847;
        float r27866 = r27864 / r27865;
        float r27867 = -2.279763752477715e-233;
        bool r27868 = r27859 <= r27867;
        float r27869 = 9.990245652938313e-103;
        bool r27870 = r27859 <= r27869;
        float r27871 = r27852 * r27851;
        float r27872 = r27847 * r27847;
        float r27873 = fma(r27871, r27863, r27872);
        float r27874 = sqrt(r27873);
        float r27875 = r27874 + r27847;
        float r27876 = r27864 / r27875;
        float r27877 = 7.314979115890435e+294;
        bool r27878 = r27859 <= r27877;
        float r27879 = r27878 ? r27859 : r27866;
        float r27880 = r27870 ? r27876 : r27879;
        float r27881 = r27868 ? r27859 : r27880;
        float r27882 = r27861 ? r27866 : r27881;
        return r27882;
}

double f_od(double a, double b, double c) {
        double r27883 = b;
        double r27884 = 2;
        double r27885 = pow(r27883, r27884);
        double r27886 = 4;
        double r27887 = c;
        double r27888 = a;
        double r27889 = r27887 * r27888;
        double r27890 = r27886 * r27889;
        double r27891 = r27885 - r27890;
        double r27892 = sqrt(r27891);
        double r27893 = r27892 - r27883;
        double r27894 = r27884 * r27888;
        double r27895 = r27893 / r27894;
        double r27896 = -3.893813382866839e+302;
        bool r27897 = r27895 <= r27896;
        double r27898 = r27887 / r27884;
        double r27899 = -r27886;
        double r27900 = r27898 * r27899;
        double r27901 = r27883 + r27883;
        double r27902 = r27900 / r27901;
        double r27903 = -2.279763752477715e-233;
        bool r27904 = r27895 <= r27903;
        double r27905 = 9.990245652938313e-103;
        bool r27906 = r27895 <= r27905;
        double r27907 = r27888 * r27887;
        double r27908 = r27883 * r27883;
        double r27909 = fma(r27907, r27899, r27908);
        double r27910 = sqrt(r27909);
        double r27911 = r27910 + r27883;
        double r27912 = r27900 / r27911;
        double r27913 = 7.314979115890435e+294;
        bool r27914 = r27895 <= r27913;
        double r27915 = r27914 ? r27895 : r27902;
        double r27916 = r27906 ? r27912 : r27915;
        double r27917 = r27904 ? r27895 : r27916;
        double r27918 = r27897 ? r27902 : r27917;
        return r27918;
}

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

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

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

static mpfr_t r27933, r27934, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r27933);
        mpfr_init_set_str(r27934, "2", 10, MPFR_RNDN);
        mpfr_init(r27935);
        mpfr_init_set_str(r27936, "4", 10, MPFR_RNDN);
        mpfr_init(r27937);
        mpfr_init(r27938);
        mpfr_init(r27939);
        mpfr_init(r27940);
        mpfr_init(r27941);
        mpfr_init(r27942);
        mpfr_init(r27943);
        mpfr_init(r27944);
        mpfr_init(r27945);
        mpfr_init_set_str(r27946, "-3.893813382866839e+302", 10, MPFR_RNDN);
        mpfr_init(r27947);
        mpfr_init(r27948);
        mpfr_init(r27949);
        mpfr_init(r27950);
        mpfr_init(r27951);
        mpfr_init(r27952);
        mpfr_init_set_str(r27953, "-2.279763752477715e-233", 10, MPFR_RNDN);
        mpfr_init(r27954);
        mpfr_init_set_str(r27955, "9.990245652938313e-103", 10, MPFR_RNDN);
        mpfr_init(r27956);
        mpfr_init(r27957);
        mpfr_init(r27958);
        mpfr_init(r27959);
        mpfr_init(r27960);
        mpfr_init(r27961);
        mpfr_init(r27962);
        mpfr_init_set_str(r27963, "7.314979115890435e+294", 10, MPFR_RNDN);
        mpfr_init(r27964);
        mpfr_init(r27965);
        mpfr_init(r27966);
        mpfr_init(r27967);
        mpfr_init(r27968);
}

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

static mpfr_t r27969, r27970, r27971, r27972, r27973, r27974, r27975, r27976, r27977, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r27969);
        mpfr_init_set_str(r27970, "2", 10, MPFR_RNDN);
        mpfr_init(r27971);
        mpfr_init_set_str(r27972, "4", 10, MPFR_RNDN);
        mpfr_init(r27973);
        mpfr_init(r27974);
        mpfr_init(r27975);
        mpfr_init(r27976);
        mpfr_init(r27977);
        mpfr_init(r27978);
        mpfr_init(r27979);
        mpfr_init(r27980);
        mpfr_init(r27981);
        mpfr_init_set_str(r27982, "-3.893813382866839e+302", 10, MPFR_RNDN);
        mpfr_init(r27983);
        mpfr_init(r27984);
        mpfr_init(r27985);
        mpfr_init(r27986);
        mpfr_init(r27987);
        mpfr_init(r27988);
        mpfr_init_set_str(r27989, "-2.279763752477715e-233", 10, MPFR_RNDN);
        mpfr_init(r27990);
        mpfr_init_set_str(r27991, "9.990245652938313e-103", 10, MPFR_RNDN);
        mpfr_init(r27992);
        mpfr_init(r27993);
        mpfr_init(r27994);
        mpfr_init(r27995);
        mpfr_init(r27996);
        mpfr_init(r27997);
        mpfr_init(r27998);
        mpfr_init_set_str(r27999, "7.314979115890435e+294", 10, MPFR_RNDN);
        mpfr_init(r28000);
        mpfr_init(r28001);
        mpfr_init(r28002);
        mpfr_init(r28003);
        mpfr_init(r28004);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r27969, b, MPFR_RNDN);
        ;
        mpfr_pow(r27971, r27969, r27970, MPFR_RNDN);
        ;
        mpfr_set_d(r27973, c, MPFR_RNDN);
        mpfr_set_d(r27974, a, MPFR_RNDN);
        mpfr_mul(r27975, r27973, r27974, MPFR_RNDN);
        mpfr_mul(r27976, r27972, r27975, MPFR_RNDN);
        mpfr_sub(r27977, r27971, r27976, MPFR_RNDN);
        mpfr_sqrt(r27978, r27977, MPFR_RNDN);
        mpfr_sub(r27979, r27978, r27969, MPFR_RNDN);
        mpfr_mul(r27980, r27970, r27974, MPFR_RNDN);
        mpfr_div(r27981, r27979, r27980, MPFR_RNDN);
        ;
        mpfr_set_si(r27983, mpfr_cmp(r27981, r27982) <= 0, MPFR_RNDN);
        mpfr_div(r27984, r27973, r27970, MPFR_RNDN);
        mpfr_neg(r27985, r27972, MPFR_RNDN);
        mpfr_mul(r27986, r27984, r27985, MPFR_RNDN);
        mpfr_add(r27987, r27969, r27969, MPFR_RNDN);
        mpfr_div(r27988, r27986, r27987, MPFR_RNDN);
        ;
        mpfr_set_si(r27990, mpfr_cmp(r27981, r27989) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r27992, mpfr_cmp(r27981, r27991) <= 0, MPFR_RNDN);
        mpfr_mul(r27993, r27974, r27973, MPFR_RNDN);
        mpfr_mul(r27994, r27969, r27969, MPFR_RNDN);
        mpfr_fma(r27995, r27993, r27985, r27994, MPFR_RNDN);
        mpfr_sqrt(r27996, r27995, MPFR_RNDN);
        mpfr_add(r27997, r27996, r27969, MPFR_RNDN);
        mpfr_div(r27998, r27986, r27997, MPFR_RNDN);
        ;
        mpfr_set_si(r28000, mpfr_cmp(r27981, r27999) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r28000, MPFR_RNDN)) { mpfr_set(r28001, r27981, MPFR_RNDN); } else { mpfr_set(r28001, r27988, MPFR_RNDN); };
        if (mpfr_get_si(r27992, MPFR_RNDN)) { mpfr_set(r28002, r27998, MPFR_RNDN); } else { mpfr_set(r28002, r28001, MPFR_RNDN); };
        if (mpfr_get_si(r27990, MPFR_RNDN)) { mpfr_set(r28003, r27981, MPFR_RNDN); } else { mpfr_set(r28003, r28002, MPFR_RNDN); };
        if (mpfr_get_si(r27983, MPFR_RNDN)) { mpfr_set(r28004, r27988, MPFR_RNDN); } else { mpfr_set(r28004, r28003, MPFR_RNDN); };
        return mpfr_get_d(r28004, MPFR_RNDN);
}

