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

char *name = "jeff quadratic root 1";

double f_if(float a, float b, float c) {
        float r18901 = b;
        float r18902 = 0.0f;
        bool r18903 = r18901 >= r18902;
        float r18904 = -r18901;
        float r18905 = r18901 * r18901;
        float r18906 = 4.0f;
        float r18907 = a;
        float r18908 = r18906 * r18907;
        float r18909 = c;
        float r18910 = r18908 * r18909;
        float r18911 = r18905 - r18910;
        float r18912 = sqrt(r18911);
        float r18913 = r18904 - r18912;
        float r18914 = 2.0f;
        float r18915 = r18914 * r18907;
        float r18916 = r18913 / r18915;
        float r18917 = r18914 * r18909;
        float r18918 = r18904 + r18912;
        float r18919 = r18917 / r18918;
        float r18920 = r18903 ? r18916 : r18919;
        return r18920;
}

double f_id(double a, double b, double c) {
        double r18921 = b;
        double r18922 = 0.0;
        bool r18923 = r18921 >= r18922;
        double r18924 = -r18921;
        double r18925 = r18921 * r18921;
        double r18926 = 4.0;
        double r18927 = a;
        double r18928 = r18926 * r18927;
        double r18929 = c;
        double r18930 = r18928 * r18929;
        double r18931 = r18925 - r18930;
        double r18932 = sqrt(r18931);
        double r18933 = r18924 - r18932;
        double r18934 = 2.0;
        double r18935 = r18934 * r18927;
        double r18936 = r18933 / r18935;
        double r18937 = r18934 * r18929;
        double r18938 = r18924 + r18932;
        double r18939 = r18937 / r18938;
        double r18940 = r18923 ? r18936 : r18939;
        return r18940;
}


double f_of(float a, float b, float c) {
        float r18941 = b;
        float r18942 = -6.810633232149731e+112f;
        bool r18943 = r18941 <= r18942;
        float r18944 = 0.0f;
        bool r18945 = r18941 >= r18944;
        float r18946 = -r18941;
        float r18947 = r18941 * r18941;
        float r18948 = 4.0f;
        float r18949 = a;
        float r18950 = c;
        float r18951 = r18949 * r18950;
        float r18952 = r18948 * r18951;
        float r18953 = r18947 - r18952;
        float r18954 = sqrt(r18953);
        float r18955 = r18946 - r18954;
        float r18956 = r18949 + r18949;
        float r18957 = r18955 / r18956;
        float r18958 = r18950 / r18941;
        float r18959 = r18949 * r18958;
        float r18960 = r18959 - r18941;
        float r18961 = r18950 / r18960;
        float r18962 = r18945 ? r18957 : r18961;
        float r18963 = 4.876491143107084e+155f;
        bool r18964 = r18941 <= r18963;
        float r18965 = r18941 * r18941;
        float r18966 = r18948 * r18949;
        float r18967 = r18966 * r18950;
        float r18968 = r18965 - r18967;
        float r18969 = sqrt(r18968);
        float r18970 = r18946 - r18969;
        float r18971 = 2.0f;
        float r18972 = r18971 * r18949;
        float r18973 = r18970 / r18972;
        float r18974 = r18971 * r18950;
        float r18975 = cbrt(r18969);
        float r18976 = r18975 * (r18975 * r18975);
        float r18977 = r18946 + r18976;
        float r18978 = r18974 / r18977;
        float r18979 = r18945 ? r18973 : r18978;
        float r18980 = r18941 / r18949;
        float r18981 = r18958 - r18980;
        float r18982 = r18950 + r18950;
        float r18983 = r18949 * r18948;
        float r18984 = r18983 * r18950;
        float r18985 = r18965 - r18984;
        float r18986 = sqrt(r18985);
        float r18987 = r18986 + r18946;
        float r18988 = r18982 / r18987;
        float r18989 = r18945 ? r18981 : r18988;
        float r18990 = r18964 ? r18979 : r18989;
        float r18991 = r18943 ? r18962 : r18990;
        return r18991;
}

double f_od(double a, double b, double c) {
        double r18992 = b;
        double r18993 = -6.810633232149731e+112;
        bool r18994 = r18992 <= r18993;
        double r18995 = 0.0;
        bool r18996 = r18992 >= r18995;
        double r18997 = -r18992;
        double r18998 = r18992 * r18992;
        double r18999 = 4.0;
        double r19000 = a;
        double r19001 = c;
        double r19002 = r19000 * r19001;
        double r19003 = r18999 * r19002;
        double r19004 = r18998 - r19003;
        double r19005 = sqrt(r19004);
        double r19006 = r18997 - r19005;
        double r19007 = r19000 + r19000;
        double r19008 = r19006 / r19007;
        double r19009 = r19001 / r18992;
        double r19010 = r19000 * r19009;
        double r19011 = r19010 - r18992;
        double r19012 = r19001 / r19011;
        double r19013 = r18996 ? r19008 : r19012;
        double r19014 = 4.876491143107084e+155;
        bool r19015 = r18992 <= r19014;
        double r19016 = r18992 * r18992;
        double r19017 = r18999 * r19000;
        double r19018 = r19017 * r19001;
        double r19019 = r19016 - r19018;
        double r19020 = sqrt(r19019);
        double r19021 = r18997 - r19020;
        double r19022 = 2.0;
        double r19023 = r19022 * r19000;
        double r19024 = r19021 / r19023;
        double r19025 = r19022 * r19001;
        double r19026 = cbrt(r19020);
        double r19027 = r19026 * (r19026 * r19026);
        double r19028 = r18997 + r19027;
        double r19029 = r19025 / r19028;
        double r19030 = r18996 ? r19024 : r19029;
        double r19031 = r18992 / r19000;
        double r19032 = r19009 - r19031;
        double r19033 = r19001 + r19001;
        double r19034 = r19000 * r18999;
        double r19035 = r19034 * r19001;
        double r19036 = r19016 - r19035;
        double r19037 = sqrt(r19036);
        double r19038 = r19037 + r18997;
        double r19039 = r19033 / r19038;
        double r19040 = r18996 ? r19032 : r19039;
        double r19041 = r19015 ? r19030 : r19040;
        double r19042 = r18994 ? r19013 : r19041;
        return r19042;
}

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 r19043, r19044, r19045, r19046, r19047, r19048, r19049, r19050, r19051, r19052, r19053, r19054, r19055, r19056, r19057, r19058, r19059, r19060, r19061, r19062;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r19043);
        mpfr_init_set_str(r19044, "0", 10, MPFR_RNDN);
        mpfr_init(r19045);
        mpfr_init(r19046);
        mpfr_init(r19047);
        mpfr_init_set_str(r19048, "4", 10, MPFR_RNDN);
        mpfr_init(r19049);
        mpfr_init(r19050);
        mpfr_init(r19051);
        mpfr_init(r19052);
        mpfr_init(r19053);
        mpfr_init(r19054);
        mpfr_init(r19055);
        mpfr_init_set_str(r19056, "2", 10, MPFR_RNDN);
        mpfr_init(r19057);
        mpfr_init(r19058);
        mpfr_init(r19059);
        mpfr_init(r19060);
        mpfr_init(r19061);
        mpfr_init(r19062);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r19043, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19045, mpfr_cmp(r19043, r19044) >= 0, MPFR_RNDN);
        mpfr_neg(r19046, r19043, MPFR_RNDN);
        mpfr_sqr(r19047, r19043, MPFR_RNDN);
        ;
        mpfr_set_d(r19049, a, MPFR_RNDN);
        mpfr_mul(r19050, r19048, r19049, MPFR_RNDN);
        mpfr_set_d(r19051, c, MPFR_RNDN);
        mpfr_mul(r19052, r19050, r19051, MPFR_RNDN);
        mpfr_sub(r19053, r19047, r19052, MPFR_RNDN);
        mpfr_sqrt(r19054, r19053, MPFR_RNDN);
        mpfr_sub(r19055, r19046, r19054, MPFR_RNDN);
        ;
        mpfr_mul(r19057, r19056, r19049, MPFR_RNDN);
        mpfr_div(r19058, r19055, r19057, MPFR_RNDN);
        mpfr_mul(r19059, r19056, r19051, MPFR_RNDN);
        mpfr_add(r19060, r19046, r19054, MPFR_RNDN);
        mpfr_div(r19061, r19059, r19060, MPFR_RNDN);
        if (mpfr_get_si(r19045, MPFR_RNDN)) { mpfr_set(r19062, r19058, MPFR_RNDN); } else { mpfr_set(r19062, r19061, MPFR_RNDN); };
        return mpfr_get_d(r19062, MPFR_RNDN);
}

static mpfr_t r19063, r19064, r19065, r19066, r19067, r19068, r19069, r19070, r19071, r19072, r19073, r19074, r19075, r19076, r19077, r19078, r19079, r19080, r19081, r19082, r19083, r19084, r19085, r19086, r19087, r19088, r19089, r19090, r19091, r19092, r19093, r19094, r19095, r19096, r19097, r19098, r19099, r19100, r19101, r19102, r19103, r19104, r19105, r19106, r19107, r19108, r19109, r19110, r19111, r19112, r19113;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r19063);
        mpfr_init_set_str(r19064, "-6.810633232149731e+112", 10, MPFR_RNDN);
        mpfr_init(r19065);
        mpfr_init_set_str(r19066, "0", 10, MPFR_RNDN);
        mpfr_init(r19067);
        mpfr_init(r19068);
        mpfr_init(r19069);
        mpfr_init_set_str(r19070, "4", 10, MPFR_RNDN);
        mpfr_init(r19071);
        mpfr_init(r19072);
        mpfr_init(r19073);
        mpfr_init(r19074);
        mpfr_init(r19075);
        mpfr_init(r19076);
        mpfr_init(r19077);
        mpfr_init(r19078);
        mpfr_init(r19079);
        mpfr_init(r19080);
        mpfr_init(r19081);
        mpfr_init(r19082);
        mpfr_init(r19083);
        mpfr_init(r19084);
        mpfr_init_set_str(r19085, "4.876491143107084e+155", 10, MPFR_RNDN);
        mpfr_init(r19086);
        mpfr_init(r19087);
        mpfr_init(r19088);
        mpfr_init(r19089);
        mpfr_init(r19090);
        mpfr_init(r19091);
        mpfr_init(r19092);
        mpfr_init_set_str(r19093, "2", 10, MPFR_RNDN);
        mpfr_init(r19094);
        mpfr_init(r19095);
        mpfr_init(r19096);
        mpfr_init(r19097);
        mpfr_init(r19098);
        mpfr_init(r19099);
        mpfr_init(r19100);
        mpfr_init(r19101);
        mpfr_init(r19102);
        mpfr_init(r19103);
        mpfr_init(r19104);
        mpfr_init(r19105);
        mpfr_init(r19106);
        mpfr_init(r19107);
        mpfr_init(r19108);
        mpfr_init(r19109);
        mpfr_init(r19110);
        mpfr_init(r19111);
        mpfr_init(r19112);
        mpfr_init(r19113);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r19063, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19065, mpfr_cmp(r19063, r19064) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r19067, mpfr_cmp(r19063, r19066) >= 0, MPFR_RNDN);
        mpfr_neg(r19068, r19063, MPFR_RNDN);
        mpfr_mul(r19069, r19063, r19063, MPFR_RNDN);
        ;
        mpfr_set_d(r19071, a, MPFR_RNDN);
        mpfr_set_d(r19072, c, MPFR_RNDN);
        mpfr_mul(r19073, r19071, r19072, MPFR_RNDN);
        mpfr_mul(r19074, r19070, r19073, MPFR_RNDN);
        mpfr_sub(r19075, r19069, r19074, MPFR_RNDN);
        mpfr_sqrt(r19076, r19075, MPFR_RNDN);
        mpfr_sub(r19077, r19068, r19076, MPFR_RNDN);
        mpfr_add(r19078, r19071, r19071, MPFR_RNDN);
        mpfr_div(r19079, r19077, r19078, MPFR_RNDN);
        mpfr_div(r19080, r19072, r19063, MPFR_RNDN);
        mpfr_mul(r19081, r19071, r19080, MPFR_RNDN);
        mpfr_sub(r19082, r19081, r19063, MPFR_RNDN);
        mpfr_div(r19083, r19072, r19082, MPFR_RNDN);
        if (mpfr_get_si(r19067, MPFR_RNDN)) { mpfr_set(r19084, r19079, MPFR_RNDN); } else { mpfr_set(r19084, r19083, MPFR_RNDN); };
        ;
        mpfr_set_si(r19086, mpfr_cmp(r19063, r19085) <= 0, MPFR_RNDN);
        mpfr_sqr(r19087, r19063, MPFR_RNDN);
        mpfr_mul(r19088, r19070, r19071, MPFR_RNDN);
        mpfr_mul(r19089, r19088, r19072, MPFR_RNDN);
        mpfr_sub(r19090, r19087, r19089, MPFR_RNDN);
        mpfr_sqrt(r19091, r19090, MPFR_RNDN);
        mpfr_sub(r19092, r19068, r19091, MPFR_RNDN);
        ;
        mpfr_mul(r19094, r19093, r19071, MPFR_RNDN);
        mpfr_div(r19095, r19092, r19094, MPFR_RNDN);
        mpfr_mul(r19096, r19093, r19072, MPFR_RNDN);
        mpfr_cbrt(r19097, r19091, MPFR_RNDN);
        mpfr_mul(r19098, r19097, r19097, MPFR_RNDN); mpfr_mul(r19098, r19098, r19097, MPFR_RNDN);
        mpfr_add(r19099, r19068, r19098, MPFR_RNDN);
        mpfr_div(r19100, r19096, r19099, MPFR_RNDN);
        if (mpfr_get_si(r19067, MPFR_RNDN)) { mpfr_set(r19101, r19095, MPFR_RNDN); } else { mpfr_set(r19101, r19100, MPFR_RNDN); };
        mpfr_div(r19102, r19063, r19071, MPFR_RNDN);
        mpfr_sub(r19103, r19080, r19102, MPFR_RNDN);
        mpfr_add(r19104, r19072, r19072, MPFR_RNDN);
        mpfr_mul(r19105, r19071, r19070, MPFR_RNDN);
        mpfr_mul(r19106, r19105, r19072, MPFR_RNDN);
        mpfr_sub(r19107, r19087, r19106, MPFR_RNDN);
        mpfr_sqrt(r19108, r19107, MPFR_RNDN);
        mpfr_add(r19109, r19108, r19068, MPFR_RNDN);
        mpfr_div(r19110, r19104, r19109, MPFR_RNDN);
        if (mpfr_get_si(r19067, MPFR_RNDN)) { mpfr_set(r19111, r19103, MPFR_RNDN); } else { mpfr_set(r19111, r19110, MPFR_RNDN); };
        if (mpfr_get_si(r19086, MPFR_RNDN)) { mpfr_set(r19112, r19101, MPFR_RNDN); } else { mpfr_set(r19112, r19111, MPFR_RNDN); };
        if (mpfr_get_si(r19065, MPFR_RNDN)) { mpfr_set(r19113, r19084, MPFR_RNDN); } else { mpfr_set(r19113, r19112, MPFR_RNDN); };
        return mpfr_get_d(r19113, MPFR_RNDN);
}

static mpfr_t r19114, r19115, r19116, r19117, r19118, r19119, r19120, r19121, r19122, r19123, r19124, r19125, r19126, r19127, r19128, r19129, r19130, r19131, r19132, r19133, r19134, r19135, r19136, r19137, r19138, r19139, r19140, r19141, r19142, r19143, r19144, r19145, r19146, r19147, r19148, r19149, r19150, r19151, r19152, r19153, r19154, r19155, r19156, r19157, r19158, r19159, r19160, r19161, r19162, r19163, r19164;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r19114);
        mpfr_init_set_str(r19115, "-6.810633232149731e+112", 10, MPFR_RNDN);
        mpfr_init(r19116);
        mpfr_init_set_str(r19117, "0", 10, MPFR_RNDN);
        mpfr_init(r19118);
        mpfr_init(r19119);
        mpfr_init(r19120);
        mpfr_init_set_str(r19121, "4", 10, MPFR_RNDN);
        mpfr_init(r19122);
        mpfr_init(r19123);
        mpfr_init(r19124);
        mpfr_init(r19125);
        mpfr_init(r19126);
        mpfr_init(r19127);
        mpfr_init(r19128);
        mpfr_init(r19129);
        mpfr_init(r19130);
        mpfr_init(r19131);
        mpfr_init(r19132);
        mpfr_init(r19133);
        mpfr_init(r19134);
        mpfr_init(r19135);
        mpfr_init_set_str(r19136, "4.876491143107084e+155", 10, MPFR_RNDN);
        mpfr_init(r19137);
        mpfr_init(r19138);
        mpfr_init(r19139);
        mpfr_init(r19140);
        mpfr_init(r19141);
        mpfr_init(r19142);
        mpfr_init(r19143);
        mpfr_init_set_str(r19144, "2", 10, MPFR_RNDN);
        mpfr_init(r19145);
        mpfr_init(r19146);
        mpfr_init(r19147);
        mpfr_init(r19148);
        mpfr_init(r19149);
        mpfr_init(r19150);
        mpfr_init(r19151);
        mpfr_init(r19152);
        mpfr_init(r19153);
        mpfr_init(r19154);
        mpfr_init(r19155);
        mpfr_init(r19156);
        mpfr_init(r19157);
        mpfr_init(r19158);
        mpfr_init(r19159);
        mpfr_init(r19160);
        mpfr_init(r19161);
        mpfr_init(r19162);
        mpfr_init(r19163);
        mpfr_init(r19164);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r19114, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19116, mpfr_cmp(r19114, r19115) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r19118, mpfr_cmp(r19114, r19117) >= 0, MPFR_RNDN);
        mpfr_neg(r19119, r19114, MPFR_RNDN);
        mpfr_mul(r19120, r19114, r19114, MPFR_RNDN);
        ;
        mpfr_set_d(r19122, a, MPFR_RNDN);
        mpfr_set_d(r19123, c, MPFR_RNDN);
        mpfr_mul(r19124, r19122, r19123, MPFR_RNDN);
        mpfr_mul(r19125, r19121, r19124, MPFR_RNDN);
        mpfr_sub(r19126, r19120, r19125, MPFR_RNDN);
        mpfr_sqrt(r19127, r19126, MPFR_RNDN);
        mpfr_sub(r19128, r19119, r19127, MPFR_RNDN);
        mpfr_add(r19129, r19122, r19122, MPFR_RNDN);
        mpfr_div(r19130, r19128, r19129, MPFR_RNDN);
        mpfr_div(r19131, r19123, r19114, MPFR_RNDN);
        mpfr_mul(r19132, r19122, r19131, MPFR_RNDN);
        mpfr_sub(r19133, r19132, r19114, MPFR_RNDN);
        mpfr_div(r19134, r19123, r19133, MPFR_RNDN);
        if (mpfr_get_si(r19118, MPFR_RNDN)) { mpfr_set(r19135, r19130, MPFR_RNDN); } else { mpfr_set(r19135, r19134, MPFR_RNDN); };
        ;
        mpfr_set_si(r19137, mpfr_cmp(r19114, r19136) <= 0, MPFR_RNDN);
        mpfr_sqr(r19138, r19114, MPFR_RNDN);
        mpfr_mul(r19139, r19121, r19122, MPFR_RNDN);
        mpfr_mul(r19140, r19139, r19123, MPFR_RNDN);
        mpfr_sub(r19141, r19138, r19140, MPFR_RNDN);
        mpfr_sqrt(r19142, r19141, MPFR_RNDN);
        mpfr_sub(r19143, r19119, r19142, MPFR_RNDN);
        ;
        mpfr_mul(r19145, r19144, r19122, MPFR_RNDN);
        mpfr_div(r19146, r19143, r19145, MPFR_RNDN);
        mpfr_mul(r19147, r19144, r19123, MPFR_RNDN);
        mpfr_cbrt(r19148, r19142, MPFR_RNDN);
        mpfr_mul(r19149, r19148, r19148, MPFR_RNDN); mpfr_mul(r19149, r19149, r19148, MPFR_RNDN);
        mpfr_add(r19150, r19119, r19149, MPFR_RNDN);
        mpfr_div(r19151, r19147, r19150, MPFR_RNDN);
        if (mpfr_get_si(r19118, MPFR_RNDN)) { mpfr_set(r19152, r19146, MPFR_RNDN); } else { mpfr_set(r19152, r19151, MPFR_RNDN); };
        mpfr_div(r19153, r19114, r19122, MPFR_RNDN);
        mpfr_sub(r19154, r19131, r19153, MPFR_RNDN);
        mpfr_add(r19155, r19123, r19123, MPFR_RNDN);
        mpfr_mul(r19156, r19122, r19121, MPFR_RNDN);
        mpfr_mul(r19157, r19156, r19123, MPFR_RNDN);
        mpfr_sub(r19158, r19138, r19157, MPFR_RNDN);
        mpfr_sqrt(r19159, r19158, MPFR_RNDN);
        mpfr_add(r19160, r19159, r19119, MPFR_RNDN);
        mpfr_div(r19161, r19155, r19160, MPFR_RNDN);
        if (mpfr_get_si(r19118, MPFR_RNDN)) { mpfr_set(r19162, r19154, MPFR_RNDN); } else { mpfr_set(r19162, r19161, MPFR_RNDN); };
        if (mpfr_get_si(r19137, MPFR_RNDN)) { mpfr_set(r19163, r19152, MPFR_RNDN); } else { mpfr_set(r19163, r19162, MPFR_RNDN); };
        if (mpfr_get_si(r19116, MPFR_RNDN)) { mpfr_set(r19164, r19135, MPFR_RNDN); } else { mpfr_set(r19164, r19163, MPFR_RNDN); };
        return mpfr_get_d(r19164, MPFR_RNDN);
}

