#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 r8861 = b;
        float r8862 = -r8861;
        float r8863 = r8861 * r8861;
        float r8864 = 4.0f;
        float r8865 = a;
        float r8866 = r8864 * r8865;
        float r8867 = c;
        float r8868 = r8866 * r8867;
        float r8869 = r8863 - r8868;
        float r8870 = sqrt(r8869);
        float r8871 = r8862 + r8870;
        float r8872 = 2.0f;
        float r8873 = r8872 * r8865;
        float r8874 = r8871 / r8873;
        return r8874;
}

double f_id(double a, double b, double c) {
        double r8875 = b;
        double r8876 = -r8875;
        double r8877 = r8875 * r8875;
        double r8878 = 4.0;
        double r8879 = a;
        double r8880 = r8878 * r8879;
        double r8881 = c;
        double r8882 = r8880 * r8881;
        double r8883 = r8877 - r8882;
        double r8884 = sqrt(r8883);
        double r8885 = r8876 + r8884;
        double r8886 = 2.0;
        double r8887 = r8886 * r8879;
        double r8888 = r8885 / r8887;
        return r8888;
}


double f_of(float a, float b, float c) {
        float r8889 = b;
        float r8890 = -9.10200664688205e+153f;
        bool r8891 = r8889 <= r8890;
        float r8892 = a;
        float r8893 = r8889 / r8892;
        float r8894 = -r8893;
        float r8895 = 2.0290888757237997e-93f;
        bool r8896 = r8889 <= r8895;
        float r8897 = r8889 * r8889;
        float r8898 = 4.0f;
        float r8899 = r8892 * r8898;
        float r8900 = c;
        float r8901 = r8899 * r8900;
        float r8902 = r8897 - r8901;
        float r8903 = sqrt(r8902);
        float r8904 = -r8889;
        float r8905 = r8903 + r8904;
        float r8906 = 2.0f;
        float r8907 = r8906 * r8892;
        float r8908 = r8905 / r8907;
        float r8909 = 1.3007995014098738e+154f;
        bool r8910 = r8889 <= r8909;
        float r8911 = r8900 * r8892;
        float r8912 = r8911 * r8898;
        float r8913 = r8904 - r8903;
        float r8914 = r8907 * r8913;
        float r8915 = r8912 / r8914;
        float r8916 = r8911 / r8889;
        float r8917 = -2.0f;
        float r8918 = r8916 * r8917;
        float r8919 = r8918 / r8907;
        float r8920 = r8910 ? r8915 : r8919;
        float r8921 = r8896 ? r8908 : r8920;
        float r8922 = r8891 ? r8894 : r8921;
        return r8922;
}

double f_od(double a, double b, double c) {
        double r8923 = b;
        double r8924 = -9.10200664688205e+153;
        bool r8925 = r8923 <= r8924;
        double r8926 = a;
        double r8927 = r8923 / r8926;
        double r8928 = -r8927;
        double r8929 = 2.0290888757237997e-93;
        bool r8930 = r8923 <= r8929;
        double r8931 = r8923 * r8923;
        double r8932 = 4.0;
        double r8933 = r8926 * r8932;
        double r8934 = c;
        double r8935 = r8933 * r8934;
        double r8936 = r8931 - r8935;
        double r8937 = sqrt(r8936);
        double r8938 = -r8923;
        double r8939 = r8937 + r8938;
        double r8940 = 2.0;
        double r8941 = r8940 * r8926;
        double r8942 = r8939 / r8941;
        double r8943 = 1.3007995014098738e+154;
        bool r8944 = r8923 <= r8943;
        double r8945 = r8934 * r8926;
        double r8946 = r8945 * r8932;
        double r8947 = r8938 - r8937;
        double r8948 = r8941 * r8947;
        double r8949 = r8946 / r8948;
        double r8950 = r8945 / r8923;
        double r8951 = -2.0;
        double r8952 = r8950 * r8951;
        double r8953 = r8952 / r8941;
        double r8954 = r8944 ? r8949 : r8953;
        double r8955 = r8930 ? r8942 : r8954;
        double r8956 = r8925 ? r8928 : r8955;
        return r8956;
}

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 r8957, r8958, r8959, r8960, r8961, r8962, r8963, r8964, r8965, r8966, r8967, r8968, r8969, r8970;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3152);
        mpfr_init(r8957);
        mpfr_init(r8958);
        mpfr_init(r8959);
        mpfr_init_set_str(r8960, "4", 10, MPFR_RNDN);
        mpfr_init(r8961);
        mpfr_init(r8962);
        mpfr_init(r8963);
        mpfr_init(r8964);
        mpfr_init(r8965);
        mpfr_init(r8966);
        mpfr_init(r8967);
        mpfr_init_set_str(r8968, "2", 10, MPFR_RNDN);
        mpfr_init(r8969);
        mpfr_init(r8970);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r8957, b, MPFR_RNDN);
        mpfr_neg(r8958, r8957, MPFR_RNDN);
        mpfr_mul(r8959, r8957, r8957, MPFR_RNDN);
        ;
        mpfr_set_d(r8961, a, MPFR_RNDN);
        mpfr_mul(r8962, r8960, r8961, MPFR_RNDN);
        mpfr_set_d(r8963, c, MPFR_RNDN);
        mpfr_mul(r8964, r8962, r8963, MPFR_RNDN);
        mpfr_sub(r8965, r8959, r8964, MPFR_RNDN);
        mpfr_sqrt(r8966, r8965, MPFR_RNDN);
        mpfr_add(r8967, r8958, r8966, MPFR_RNDN);
        ;
        mpfr_mul(r8969, r8968, r8961, MPFR_RNDN);
        mpfr_div(r8970, r8967, r8969, MPFR_RNDN);
        return mpfr_get_d(r8970, MPFR_RNDN);
}

static mpfr_t r8971, r8972, r8973, r8974, r8975, r8976, r8977, r8978, r8979, r8980, r8981, r8982, r8983, r8984, r8985, r8986, r8987, r8988, r8989, r8990, r8991, r8992, r8993, r8994, r8995, r8996, r8997, r8998, r8999, r9000, r9001, r9002, r9003, r9004;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r8971);
        mpfr_init_set_str(r8972, "-9.10200664688205e+153", 10, MPFR_RNDN);
        mpfr_init(r8973);
        mpfr_init(r8974);
        mpfr_init(r8975);
        mpfr_init(r8976);
        mpfr_init_set_str(r8977, "2.0290888757237997e-93", 10, MPFR_RNDN);
        mpfr_init(r8978);
        mpfr_init(r8979);
        mpfr_init_set_str(r8980, "4", 10, MPFR_RNDN);
        mpfr_init(r8981);
        mpfr_init(r8982);
        mpfr_init(r8983);
        mpfr_init(r8984);
        mpfr_init(r8985);
        mpfr_init(r8986);
        mpfr_init(r8987);
        mpfr_init_set_str(r8988, "2", 10, MPFR_RNDN);
        mpfr_init(r8989);
        mpfr_init(r8990);
        mpfr_init_set_str(r8991, "1.3007995014098738e+154", 10, MPFR_RNDN);
        mpfr_init(r8992);
        mpfr_init(r8993);
        mpfr_init(r8994);
        mpfr_init(r8995);
        mpfr_init(r8996);
        mpfr_init(r8997);
        mpfr_init(r8998);
        mpfr_init_set_str(r8999, "-2", 10, MPFR_RNDN);
        mpfr_init(r9000);
        mpfr_init(r9001);
        mpfr_init(r9002);
        mpfr_init(r9003);
        mpfr_init(r9004);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r8971, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8973, mpfr_cmp(r8971, r8972) <= 0, MPFR_RNDN);
        mpfr_set_d(r8974, a, MPFR_RNDN);
        mpfr_div(r8975, r8971, r8974, MPFR_RNDN);
        mpfr_neg(r8976, r8975, MPFR_RNDN);
        ;
        mpfr_set_si(r8978, mpfr_cmp(r8971, r8977) <= 0, MPFR_RNDN);
        mpfr_mul(r8979, r8971, r8971, MPFR_RNDN);
        ;
        mpfr_mul(r8981, r8974, r8980, MPFR_RNDN);
        mpfr_set_d(r8982, c, MPFR_RNDN);
        mpfr_mul(r8983, r8981, r8982, MPFR_RNDN);
        mpfr_sub(r8984, r8979, r8983, MPFR_RNDN);
        mpfr_sqrt(r8985, r8984, MPFR_RNDN);
        mpfr_neg(r8986, r8971, MPFR_RNDN);
        mpfr_add(r8987, r8985, r8986, MPFR_RNDN);
        ;
        mpfr_mul(r8989, r8988, r8974, MPFR_RNDN);
        mpfr_div(r8990, r8987, r8989, MPFR_RNDN);
        ;
        mpfr_set_si(r8992, mpfr_cmp(r8971, r8991) <= 0, MPFR_RNDN);
        mpfr_mul(r8993, r8982, r8974, MPFR_RNDN);
        mpfr_mul(r8994, r8993, r8980, MPFR_RNDN);
        mpfr_sub(r8995, r8986, r8985, MPFR_RNDN);
        mpfr_mul(r8996, r8989, r8995, MPFR_RNDN);
        mpfr_div(r8997, r8994, r8996, MPFR_RNDN);
        mpfr_div(r8998, r8993, r8971, MPFR_RNDN);
        ;
        mpfr_mul(r9000, r8998, r8999, MPFR_RNDN);
        mpfr_div(r9001, r9000, r8989, MPFR_RNDN);
        if (mpfr_get_si(r8992, MPFR_RNDN)) { mpfr_set(r9002, r8997, MPFR_RNDN); } else { mpfr_set(r9002, r9001, MPFR_RNDN); };
        if (mpfr_get_si(r8978, MPFR_RNDN)) { mpfr_set(r9003, r8990, MPFR_RNDN); } else { mpfr_set(r9003, r9002, MPFR_RNDN); };
        if (mpfr_get_si(r8973, MPFR_RNDN)) { mpfr_set(r9004, r8976, MPFR_RNDN); } else { mpfr_set(r9004, r9003, MPFR_RNDN); };
        return mpfr_get_d(r9004, MPFR_RNDN);
}

static mpfr_t r9005, r9006, r9007, r9008, r9009, r9010, r9011, r9012, r9013, r9014, r9015, r9016, r9017, r9018, r9019, r9020, r9021, r9022, r9023, r9024, r9025, r9026, r9027, r9028, r9029, r9030, r9031, r9032, r9033, r9034, r9035, r9036, r9037, r9038;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r9005);
        mpfr_init_set_str(r9006, "-9.10200664688205e+153", 10, MPFR_RNDN);
        mpfr_init(r9007);
        mpfr_init(r9008);
        mpfr_init(r9009);
        mpfr_init(r9010);
        mpfr_init_set_str(r9011, "2.0290888757237997e-93", 10, MPFR_RNDN);
        mpfr_init(r9012);
        mpfr_init(r9013);
        mpfr_init_set_str(r9014, "4", 10, MPFR_RNDN);
        mpfr_init(r9015);
        mpfr_init(r9016);
        mpfr_init(r9017);
        mpfr_init(r9018);
        mpfr_init(r9019);
        mpfr_init(r9020);
        mpfr_init(r9021);
        mpfr_init_set_str(r9022, "2", 10, MPFR_RNDN);
        mpfr_init(r9023);
        mpfr_init(r9024);
        mpfr_init_set_str(r9025, "1.3007995014098738e+154", 10, MPFR_RNDN);
        mpfr_init(r9026);
        mpfr_init(r9027);
        mpfr_init(r9028);
        mpfr_init(r9029);
        mpfr_init(r9030);
        mpfr_init(r9031);
        mpfr_init(r9032);
        mpfr_init_set_str(r9033, "-2", 10, MPFR_RNDN);
        mpfr_init(r9034);
        mpfr_init(r9035);
        mpfr_init(r9036);
        mpfr_init(r9037);
        mpfr_init(r9038);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r9005, b, MPFR_RNDN);
        ;
        mpfr_set_si(r9007, mpfr_cmp(r9005, r9006) <= 0, MPFR_RNDN);
        mpfr_set_d(r9008, a, MPFR_RNDN);
        mpfr_div(r9009, r9005, r9008, MPFR_RNDN);
        mpfr_neg(r9010, r9009, MPFR_RNDN);
        ;
        mpfr_set_si(r9012, mpfr_cmp(r9005, r9011) <= 0, MPFR_RNDN);
        mpfr_mul(r9013, r9005, r9005, MPFR_RNDN);
        ;
        mpfr_mul(r9015, r9008, r9014, MPFR_RNDN);
        mpfr_set_d(r9016, c, MPFR_RNDN);
        mpfr_mul(r9017, r9015, r9016, MPFR_RNDN);
        mpfr_sub(r9018, r9013, r9017, MPFR_RNDN);
        mpfr_sqrt(r9019, r9018, MPFR_RNDN);
        mpfr_neg(r9020, r9005, MPFR_RNDN);
        mpfr_add(r9021, r9019, r9020, MPFR_RNDN);
        ;
        mpfr_mul(r9023, r9022, r9008, MPFR_RNDN);
        mpfr_div(r9024, r9021, r9023, MPFR_RNDN);
        ;
        mpfr_set_si(r9026, mpfr_cmp(r9005, r9025) <= 0, MPFR_RNDN);
        mpfr_mul(r9027, r9016, r9008, MPFR_RNDN);
        mpfr_mul(r9028, r9027, r9014, MPFR_RNDN);
        mpfr_sub(r9029, r9020, r9019, MPFR_RNDN);
        mpfr_mul(r9030, r9023, r9029, MPFR_RNDN);
        mpfr_div(r9031, r9028, r9030, MPFR_RNDN);
        mpfr_div(r9032, r9027, r9005, MPFR_RNDN);
        ;
        mpfr_mul(r9034, r9032, r9033, MPFR_RNDN);
        mpfr_div(r9035, r9034, r9023, MPFR_RNDN);
        if (mpfr_get_si(r9026, MPFR_RNDN)) { mpfr_set(r9036, r9031, MPFR_RNDN); } else { mpfr_set(r9036, r9035, MPFR_RNDN); };
        if (mpfr_get_si(r9012, MPFR_RNDN)) { mpfr_set(r9037, r9024, MPFR_RNDN); } else { mpfr_set(r9037, r9036, MPFR_RNDN); };
        if (mpfr_get_si(r9007, MPFR_RNDN)) { mpfr_set(r9038, r9010, MPFR_RNDN); } else { mpfr_set(r9038, r9037, MPFR_RNDN); };
        return mpfr_get_d(r9038, MPFR_RNDN);
}

