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

char *name = "jeff quadratic root 2";

double f_if(float a, float b, float c) {
        float r8067 = b;
        float r8068 = 0;
        bool r8069 = r8067 >= r8068;
        float r8070 = 2;
        float r8071 = c;
        float r8072 = r8070 * r8071;
        float r8073 = -r8067;
        float r8074 = r8067 * r8067;
        float r8075 = 4;
        float r8076 = a;
        float r8077 = r8075 * r8076;
        float r8078 = r8077 * r8071;
        float r8079 = r8074 - r8078;
        float r8080 = sqrt(r8079);
        float r8081 = r8073 - r8080;
        float r8082 = r8072 / r8081;
        float r8083 = r8073 + r8080;
        float r8084 = r8070 * r8076;
        float r8085 = r8083 / r8084;
        float r8086 = r8069 ? r8082 : r8085;
        return r8086;
}

double f_id(double a, double b, double c) {
        double r8087 = b;
        double r8088 = 0;
        bool r8089 = r8087 >= r8088;
        double r8090 = 2;
        double r8091 = c;
        double r8092 = r8090 * r8091;
        double r8093 = -r8087;
        double r8094 = r8087 * r8087;
        double r8095 = 4;
        double r8096 = a;
        double r8097 = r8095 * r8096;
        double r8098 = r8097 * r8091;
        double r8099 = r8094 - r8098;
        double r8100 = sqrt(r8099);
        double r8101 = r8093 - r8100;
        double r8102 = r8092 / r8101;
        double r8103 = r8093 + r8100;
        double r8104 = r8090 * r8096;
        double r8105 = r8103 / r8104;
        double r8106 = r8089 ? r8102 : r8105;
        return r8106;
}


double f_of(float a, float b, float c) {
        float r8107 = b;
        float r8108 = 0;
        bool r8109 = r8107 >= r8108;
        float r8110 = 2;
        float r8111 = c;
        float r8112 = r8110 * r8111;
        float r8113 = 4;
        float r8114 = a;
        float r8115 = r8111 * r8114;
        float r8116 = r8113 * r8115;
        float r8117 = -r8113;
        float r8118 = r8107 * r8107;
        float r8119 = fma(r8115, r8117, r8118);
        float r8120 = sqrt(r8119);
        float r8121 = r8120 - r8107;
        float r8122 = r8116 / r8121;
        float r8123 = r8112 / r8122;
        float r8124 = fma(r8117, r8115, r8118);
        float r8125 = sqrt(r8124);
        float r8126 = r8125 - r8107;
        float r8127 = r8110 * r8114;
        float r8128 = r8126 / r8127;
        float r8129 = r8109 ? r8123 : r8128;
        float r8130 = -4.3047340354700463e+306;
        bool r8131 = r8129 <= r8130;
        float r8132 = -r8107;
        float r8133 = r8132 - r8107;
        float r8134 = r8112 / r8133;
        float r8135 = -1/2;
        float r8136 = r8107 / r8114;
        float r8137 = r8135 * r8136;
        float r8138 = r8109 ? r8134 : r8137;
        float r8139 = 1.7800453673821206e+308;
        bool r8140 = r8129 <= r8139;
        float r8141 = cbrt(r8125);
        float r8142 = r8141 * r8141;
        float r8143 = r8142 * r8141;
        float r8144 = r8132 - r8143;
        float r8145 = r8112 / r8144;
        float r8146 = r8109 ? r8145 : r8128;
        float r8147 = r8140 ? r8146 : r8138;
        float r8148 = r8131 ? r8138 : r8147;
        return r8148;
}

double f_od(double a, double b, double c) {
        double r8149 = b;
        double r8150 = 0;
        bool r8151 = r8149 >= r8150;
        double r8152 = 2;
        double r8153 = c;
        double r8154 = r8152 * r8153;
        double r8155 = 4;
        double r8156 = a;
        double r8157 = r8153 * r8156;
        double r8158 = r8155 * r8157;
        double r8159 = -r8155;
        double r8160 = r8149 * r8149;
        double r8161 = fma(r8157, r8159, r8160);
        double r8162 = sqrt(r8161);
        double r8163 = r8162 - r8149;
        double r8164 = r8158 / r8163;
        double r8165 = r8154 / r8164;
        double r8166 = fma(r8159, r8157, r8160);
        double r8167 = sqrt(r8166);
        double r8168 = r8167 - r8149;
        double r8169 = r8152 * r8156;
        double r8170 = r8168 / r8169;
        double r8171 = r8151 ? r8165 : r8170;
        double r8172 = -4.3047340354700463e+306;
        bool r8173 = r8171 <= r8172;
        double r8174 = -r8149;
        double r8175 = r8174 - r8149;
        double r8176 = r8154 / r8175;
        double r8177 = -1/2;
        double r8178 = r8149 / r8156;
        double r8179 = r8177 * r8178;
        double r8180 = r8151 ? r8176 : r8179;
        double r8181 = 1.7800453673821206e+308;
        bool r8182 = r8171 <= r8181;
        double r8183 = cbrt(r8167);
        double r8184 = r8183 * r8183;
        double r8185 = r8184 * r8183;
        double r8186 = r8174 - r8185;
        double r8187 = r8154 / r8186;
        double r8188 = r8151 ? r8187 : r8170;
        double r8189 = r8182 ? r8188 : r8180;
        double r8190 = r8173 ? r8180 : r8189;
        return r8190;
}

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 r8191, r8192, r8193, r8194, r8195, r8196, r8197, r8198, r8199, r8200, r8201, r8202, r8203, r8204, r8205, r8206, r8207, r8208, r8209, r8210;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r8191);
        mpfr_init_set_str(r8192, "0", 10, MPFR_RNDN);
        mpfr_init(r8193);
        mpfr_init_set_str(r8194, "2", 10, MPFR_RNDN);
        mpfr_init(r8195);
        mpfr_init(r8196);
        mpfr_init(r8197);
        mpfr_init(r8198);
        mpfr_init_set_str(r8199, "4", 10, MPFR_RNDN);
        mpfr_init(r8200);
        mpfr_init(r8201);
        mpfr_init(r8202);
        mpfr_init(r8203);
        mpfr_init(r8204);
        mpfr_init(r8205);
        mpfr_init(r8206);
        mpfr_init(r8207);
        mpfr_init(r8208);
        mpfr_init(r8209);
        mpfr_init(r8210);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r8191, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8193, mpfr_cmp(r8191, r8192) >= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r8195, c, MPFR_RNDN);
        mpfr_mul(r8196, r8194, r8195, MPFR_RNDN);
        mpfr_neg(r8197, r8191, MPFR_RNDN);
        mpfr_mul(r8198, r8191, r8191, MPFR_RNDN);
        ;
        mpfr_set_d(r8200, a, MPFR_RNDN);
        mpfr_mul(r8201, r8199, r8200, MPFR_RNDN);
        mpfr_mul(r8202, r8201, r8195, MPFR_RNDN);
        mpfr_sub(r8203, r8198, r8202, MPFR_RNDN);
        mpfr_sqrt(r8204, r8203, MPFR_RNDN);
        mpfr_sub(r8205, r8197, r8204, MPFR_RNDN);
        mpfr_div(r8206, r8196, r8205, MPFR_RNDN);
        mpfr_add(r8207, r8197, r8204, MPFR_RNDN);
        mpfr_mul(r8208, r8194, r8200, MPFR_RNDN);
        mpfr_div(r8209, r8207, r8208, MPFR_RNDN);
        if (mpfr_get_si(r8193, MPFR_RNDN)) { mpfr_set(r8210, r8206, MPFR_RNDN); } else { mpfr_set(r8210, r8209, MPFR_RNDN); };
        return mpfr_get_d(r8210, MPFR_RNDN);
}

static mpfr_t r8211, r8212, r8213, r8214, r8215, r8216, r8217, r8218, r8219, r8220, r8221, r8222, r8223, r8224, r8225, r8226, r8227, r8228, r8229, r8230, r8231, r8232, r8233, r8234, r8235, r8236, r8237, r8238, r8239, r8240, r8241, r8242, r8243, r8244, r8245, r8246, r8247, r8248, r8249, r8250, r8251, r8252;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8211);
        mpfr_init_set_str(r8212, "0", 10, MPFR_RNDN);
        mpfr_init(r8213);
        mpfr_init_set_str(r8214, "2", 10, MPFR_RNDN);
        mpfr_init(r8215);
        mpfr_init(r8216);
        mpfr_init_set_str(r8217, "4", 10, MPFR_RNDN);
        mpfr_init(r8218);
        mpfr_init(r8219);
        mpfr_init(r8220);
        mpfr_init(r8221);
        mpfr_init(r8222);
        mpfr_init(r8223);
        mpfr_init(r8224);
        mpfr_init(r8225);
        mpfr_init(r8226);
        mpfr_init(r8227);
        mpfr_init(r8228);
        mpfr_init(r8229);
        mpfr_init(r8230);
        mpfr_init(r8231);
        mpfr_init(r8232);
        mpfr_init(r8233);
        mpfr_init_set_str(r8234, "-4.3047340354700463e+306", 10, MPFR_RNDN);
        mpfr_init(r8235);
        mpfr_init(r8236);
        mpfr_init(r8237);
        mpfr_init(r8238);
        mpfr_init_set_str(r8239, "-1/2", 10, MPFR_RNDN);
        mpfr_init(r8240);
        mpfr_init(r8241);
        mpfr_init(r8242);
        mpfr_init_set_str(r8243, "1.7800453673821206e+308", 10, MPFR_RNDN);
        mpfr_init(r8244);
        mpfr_init(r8245);
        mpfr_init(r8246);
        mpfr_init(r8247);
        mpfr_init(r8248);
        mpfr_init(r8249);
        mpfr_init(r8250);
        mpfr_init(r8251);
        mpfr_init(r8252);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r8211, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8213, mpfr_cmp(r8211, r8212) >= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r8215, c, MPFR_RNDN);
        mpfr_mul(r8216, r8214, r8215, MPFR_RNDN);
        ;
        mpfr_set_d(r8218, a, MPFR_RNDN);
        mpfr_mul(r8219, r8215, r8218, MPFR_RNDN);
        mpfr_mul(r8220, r8217, r8219, MPFR_RNDN);
        mpfr_neg(r8221, r8217, MPFR_RNDN);
        mpfr_mul(r8222, r8211, r8211, MPFR_RNDN);
        mpfr_fma(r8223, r8219, r8221, r8222, MPFR_RNDN);
        mpfr_sqrt(r8224, r8223, MPFR_RNDN);
        mpfr_sub(r8225, r8224, r8211, MPFR_RNDN);
        mpfr_div(r8226, r8220, r8225, MPFR_RNDN);
        mpfr_div(r8227, r8216, r8226, MPFR_RNDN);
        mpfr_fma(r8228, r8221, r8219, r8222, MPFR_RNDN);
        mpfr_sqrt(r8229, r8228, MPFR_RNDN);
        mpfr_sub(r8230, r8229, r8211, MPFR_RNDN);
        mpfr_mul(r8231, r8214, r8218, MPFR_RNDN);
        mpfr_div(r8232, r8230, r8231, MPFR_RNDN);
        if (mpfr_get_si(r8213, MPFR_RNDN)) { mpfr_set(r8233, r8227, MPFR_RNDN); } else { mpfr_set(r8233, r8232, MPFR_RNDN); };
        ;
        mpfr_set_si(r8235, mpfr_cmp(r8233, r8234) <= 0, MPFR_RNDN);
        mpfr_neg(r8236, r8211, MPFR_RNDN);
        mpfr_sub(r8237, r8236, r8211, MPFR_RNDN);
        mpfr_div(r8238, r8216, r8237, MPFR_RNDN);
        ;
        mpfr_div(r8240, r8211, r8218, MPFR_RNDN);
        mpfr_mul(r8241, r8239, r8240, MPFR_RNDN);
        if (mpfr_get_si(r8213, MPFR_RNDN)) { mpfr_set(r8242, r8238, MPFR_RNDN); } else { mpfr_set(r8242, r8241, MPFR_RNDN); };
        ;
        mpfr_set_si(r8244, mpfr_cmp(r8233, r8243) <= 0, MPFR_RNDN);
        mpfr_cbrt(r8245, r8229, MPFR_RNDN);
        mpfr_mul(r8246, r8245, r8245, MPFR_RNDN);
        mpfr_mul(r8247, r8246, r8245, MPFR_RNDN);
        mpfr_sub(r8248, r8236, r8247, MPFR_RNDN);
        mpfr_div(r8249, r8216, r8248, MPFR_RNDN);
        if (mpfr_get_si(r8213, MPFR_RNDN)) { mpfr_set(r8250, r8249, MPFR_RNDN); } else { mpfr_set(r8250, r8232, MPFR_RNDN); };
        if (mpfr_get_si(r8244, MPFR_RNDN)) { mpfr_set(r8251, r8250, MPFR_RNDN); } else { mpfr_set(r8251, r8242, MPFR_RNDN); };
        if (mpfr_get_si(r8235, MPFR_RNDN)) { mpfr_set(r8252, r8242, MPFR_RNDN); } else { mpfr_set(r8252, r8251, MPFR_RNDN); };
        return mpfr_get_d(r8252, MPFR_RNDN);
}

static mpfr_t r8253, r8254, r8255, r8256, r8257, r8258, r8259, r8260, r8261, r8262, r8263, r8264, r8265, r8266, r8267, r8268, r8269, r8270, r8271, r8272, r8273, r8274, r8275, r8276, r8277, r8278, r8279, r8280, r8281, r8282, r8283, r8284, r8285, r8286, r8287, r8288, r8289, r8290, r8291, r8292, r8293, r8294;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8253);
        mpfr_init_set_str(r8254, "0", 10, MPFR_RNDN);
        mpfr_init(r8255);
        mpfr_init_set_str(r8256, "2", 10, MPFR_RNDN);
        mpfr_init(r8257);
        mpfr_init(r8258);
        mpfr_init_set_str(r8259, "4", 10, MPFR_RNDN);
        mpfr_init(r8260);
        mpfr_init(r8261);
        mpfr_init(r8262);
        mpfr_init(r8263);
        mpfr_init(r8264);
        mpfr_init(r8265);
        mpfr_init(r8266);
        mpfr_init(r8267);
        mpfr_init(r8268);
        mpfr_init(r8269);
        mpfr_init(r8270);
        mpfr_init(r8271);
        mpfr_init(r8272);
        mpfr_init(r8273);
        mpfr_init(r8274);
        mpfr_init(r8275);
        mpfr_init_set_str(r8276, "-4.3047340354700463e+306", 10, MPFR_RNDN);
        mpfr_init(r8277);
        mpfr_init(r8278);
        mpfr_init(r8279);
        mpfr_init(r8280);
        mpfr_init_set_str(r8281, "-1/2", 10, MPFR_RNDN);
        mpfr_init(r8282);
        mpfr_init(r8283);
        mpfr_init(r8284);
        mpfr_init_set_str(r8285, "1.7800453673821206e+308", 10, MPFR_RNDN);
        mpfr_init(r8286);
        mpfr_init(r8287);
        mpfr_init(r8288);
        mpfr_init(r8289);
        mpfr_init(r8290);
        mpfr_init(r8291);
        mpfr_init(r8292);
        mpfr_init(r8293);
        mpfr_init(r8294);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r8253, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8255, mpfr_cmp(r8253, r8254) >= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r8257, c, MPFR_RNDN);
        mpfr_mul(r8258, r8256, r8257, MPFR_RNDN);
        ;
        mpfr_set_d(r8260, a, MPFR_RNDN);
        mpfr_mul(r8261, r8257, r8260, MPFR_RNDN);
        mpfr_mul(r8262, r8259, r8261, MPFR_RNDN);
        mpfr_neg(r8263, r8259, MPFR_RNDN);
        mpfr_mul(r8264, r8253, r8253, MPFR_RNDN);
        mpfr_fma(r8265, r8261, r8263, r8264, MPFR_RNDN);
        mpfr_sqrt(r8266, r8265, MPFR_RNDN);
        mpfr_sub(r8267, r8266, r8253, MPFR_RNDN);
        mpfr_div(r8268, r8262, r8267, MPFR_RNDN);
        mpfr_div(r8269, r8258, r8268, MPFR_RNDN);
        mpfr_fma(r8270, r8263, r8261, r8264, MPFR_RNDN);
        mpfr_sqrt(r8271, r8270, MPFR_RNDN);
        mpfr_sub(r8272, r8271, r8253, MPFR_RNDN);
        mpfr_mul(r8273, r8256, r8260, MPFR_RNDN);
        mpfr_div(r8274, r8272, r8273, MPFR_RNDN);
        if (mpfr_get_si(r8255, MPFR_RNDN)) { mpfr_set(r8275, r8269, MPFR_RNDN); } else { mpfr_set(r8275, r8274, MPFR_RNDN); };
        ;
        mpfr_set_si(r8277, mpfr_cmp(r8275, r8276) <= 0, MPFR_RNDN);
        mpfr_neg(r8278, r8253, MPFR_RNDN);
        mpfr_sub(r8279, r8278, r8253, MPFR_RNDN);
        mpfr_div(r8280, r8258, r8279, MPFR_RNDN);
        ;
        mpfr_div(r8282, r8253, r8260, MPFR_RNDN);
        mpfr_mul(r8283, r8281, r8282, MPFR_RNDN);
        if (mpfr_get_si(r8255, MPFR_RNDN)) { mpfr_set(r8284, r8280, MPFR_RNDN); } else { mpfr_set(r8284, r8283, MPFR_RNDN); };
        ;
        mpfr_set_si(r8286, mpfr_cmp(r8275, r8285) <= 0, MPFR_RNDN);
        mpfr_cbrt(r8287, r8271, MPFR_RNDN);
        mpfr_mul(r8288, r8287, r8287, MPFR_RNDN);
        mpfr_mul(r8289, r8288, r8287, MPFR_RNDN);
        mpfr_sub(r8290, r8278, r8289, MPFR_RNDN);
        mpfr_div(r8291, r8258, r8290, MPFR_RNDN);
        if (mpfr_get_si(r8255, MPFR_RNDN)) { mpfr_set(r8292, r8291, MPFR_RNDN); } else { mpfr_set(r8292, r8274, MPFR_RNDN); };
        if (mpfr_get_si(r8286, MPFR_RNDN)) { mpfr_set(r8293, r8292, MPFR_RNDN); } else { mpfr_set(r8293, r8284, MPFR_RNDN); };
        if (mpfr_get_si(r8277, MPFR_RNDN)) { mpfr_set(r8294, r8284, MPFR_RNDN); } else { mpfr_set(r8294, r8293, MPFR_RNDN); };
        return mpfr_get_d(r8294, MPFR_RNDN);
}

