#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 r8087 = b;
        float r8088 = 0;
        bool r8089 = r8087 >= r8088;
        float r8090 = 2;
        float r8091 = c;
        float r8092 = r8090 * r8091;
        float r8093 = -r8087;
        float r8094 = r8087 * r8087;
        float r8095 = 4;
        float r8096 = a;
        float r8097 = r8095 * r8096;
        float r8098 = r8097 * r8091;
        float r8099 = r8094 - r8098;
        float r8100 = sqrt(r8099);
        float r8101 = r8093 - r8100;
        float r8102 = r8092 / r8101;
        float r8103 = r8093 + r8100;
        float r8104 = r8090 * r8096;
        float r8105 = r8103 / r8104;
        float r8106 = r8089 ? r8102 : r8105;
        return r8106;
}

double f_id(double a, double b, double c) {
        double r8107 = b;
        double r8108 = 0;
        bool r8109 = r8107 >= r8108;
        double r8110 = 2;
        double r8111 = c;
        double r8112 = r8110 * r8111;
        double r8113 = -r8107;
        double r8114 = r8107 * r8107;
        double r8115 = 4;
        double r8116 = a;
        double r8117 = r8115 * r8116;
        double r8118 = r8117 * r8111;
        double r8119 = r8114 - r8118;
        double r8120 = sqrt(r8119);
        double r8121 = r8113 - r8120;
        double r8122 = r8112 / r8121;
        double r8123 = r8113 + r8120;
        double r8124 = r8110 * r8116;
        double r8125 = r8123 / r8124;
        double r8126 = r8109 ? r8122 : r8125;
        return r8126;
}


double f_of(float a, float b, float c) {
        float r8127 = b;
        float r8128 = -3.0925910797137313e+103;
        bool r8129 = r8127 <= r8128;
        float r8130 = 0;
        bool r8131 = r8127 >= r8130;
        float r8132 = 2;
        float r8133 = c;
        float r8134 = r8132 * r8133;
        float r8135 = -r8127;
        float r8136 = 4;
        float r8137 = -r8136;
        float r8138 = a;
        float r8139 = r8138 * r8133;
        float r8140 = r8127 * r8127;
        float r8141 = fma(r8137, r8139, r8140);
        float r8142 = sqrt(r8141);
        float r8143 = r8135 - r8142;
        float r8144 = r8134 / r8143;
        float r8145 = r8133 / r8127;
        float r8146 = r8127 / r8138;
        float r8147 = r8145 - r8146;
        float r8148 = r8131 ? r8144 : r8147;
        float r8149 = 6.959770719239994e+151;
        bool r8150 = r8127 <= r8149;
        float r8151 = r8138 * r8136;
        float r8152 = r8133 * r8151;
        float r8153 = r8140 - r8152;
        float r8154 = sqrt(r8153);
        float r8155 = r8135 - r8154;
        float r8156 = r8134 / r8155;
        float r8157 = cbrt(r8135);
        float r8158 = r8157 * r8157;
        float r8159 = fma(r8158, r8157, r8154);
        float r8160 = r8132 * r8138;
        float r8161 = r8159 / r8160;
        float r8162 = r8131 ? r8156 : r8161;
        float r8163 = r8138 / r8127;
        float r8164 = fma(r8133, r8163, r8135);
        float r8165 = r8133 / r8164;
        float r8166 = -r8133;
        float r8167 = fma(r8151, r8166, r8140);
        float r8168 = sqrt(r8167);
        float r8169 = r8168 - r8127;
        float r8170 = r8169 / r8160;
        float r8171 = r8131 ? r8165 : r8170;
        float r8172 = r8150 ? r8162 : r8171;
        float r8173 = r8129 ? r8148 : r8172;
        return r8173;
}

double f_od(double a, double b, double c) {
        double r8174 = b;
        double r8175 = -3.0925910797137313e+103;
        bool r8176 = r8174 <= r8175;
        double r8177 = 0;
        bool r8178 = r8174 >= r8177;
        double r8179 = 2;
        double r8180 = c;
        double r8181 = r8179 * r8180;
        double r8182 = -r8174;
        double r8183 = 4;
        double r8184 = -r8183;
        double r8185 = a;
        double r8186 = r8185 * r8180;
        double r8187 = r8174 * r8174;
        double r8188 = fma(r8184, r8186, r8187);
        double r8189 = sqrt(r8188);
        double r8190 = r8182 - r8189;
        double r8191 = r8181 / r8190;
        double r8192 = r8180 / r8174;
        double r8193 = r8174 / r8185;
        double r8194 = r8192 - r8193;
        double r8195 = r8178 ? r8191 : r8194;
        double r8196 = 6.959770719239994e+151;
        bool r8197 = r8174 <= r8196;
        double r8198 = r8185 * r8183;
        double r8199 = r8180 * r8198;
        double r8200 = r8187 - r8199;
        double r8201 = sqrt(r8200);
        double r8202 = r8182 - r8201;
        double r8203 = r8181 / r8202;
        double r8204 = cbrt(r8182);
        double r8205 = r8204 * r8204;
        double r8206 = fma(r8205, r8204, r8201);
        double r8207 = r8179 * r8185;
        double r8208 = r8206 / r8207;
        double r8209 = r8178 ? r8203 : r8208;
        double r8210 = r8185 / r8174;
        double r8211 = fma(r8180, r8210, r8182);
        double r8212 = r8180 / r8211;
        double r8213 = -r8180;
        double r8214 = fma(r8198, r8213, r8187);
        double r8215 = sqrt(r8214);
        double r8216 = r8215 - r8174;
        double r8217 = r8216 / r8207;
        double r8218 = r8178 ? r8212 : r8217;
        double r8219 = r8197 ? r8209 : r8218;
        double r8220 = r8176 ? r8195 : r8219;
        return r8220;
}

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 r8221, r8222, r8223, r8224, r8225, r8226, r8227, r8228, r8229, r8230, r8231, r8232, r8233, r8234, r8235, r8236, r8237, r8238, r8239, r8240;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r8221);
        mpfr_init_set_str(r8222, "0", 10, MPFR_RNDN);
        mpfr_init(r8223);
        mpfr_init_set_str(r8224, "2", 10, MPFR_RNDN);
        mpfr_init(r8225);
        mpfr_init(r8226);
        mpfr_init(r8227);
        mpfr_init(r8228);
        mpfr_init_set_str(r8229, "4", 10, MPFR_RNDN);
        mpfr_init(r8230);
        mpfr_init(r8231);
        mpfr_init(r8232);
        mpfr_init(r8233);
        mpfr_init(r8234);
        mpfr_init(r8235);
        mpfr_init(r8236);
        mpfr_init(r8237);
        mpfr_init(r8238);
        mpfr_init(r8239);
        mpfr_init(r8240);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r8221, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8223, mpfr_cmp(r8221, r8222) >= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r8225, c, MPFR_RNDN);
        mpfr_mul(r8226, r8224, r8225, MPFR_RNDN);
        mpfr_neg(r8227, r8221, MPFR_RNDN);
        mpfr_mul(r8228, r8221, r8221, MPFR_RNDN);
        ;
        mpfr_set_d(r8230, a, MPFR_RNDN);
        mpfr_mul(r8231, r8229, r8230, MPFR_RNDN);
        mpfr_mul(r8232, r8231, r8225, MPFR_RNDN);
        mpfr_sub(r8233, r8228, r8232, MPFR_RNDN);
        mpfr_sqrt(r8234, r8233, MPFR_RNDN);
        mpfr_sub(r8235, r8227, r8234, MPFR_RNDN);
        mpfr_div(r8236, r8226, r8235, MPFR_RNDN);
        mpfr_add(r8237, r8227, r8234, MPFR_RNDN);
        mpfr_mul(r8238, r8224, r8230, MPFR_RNDN);
        mpfr_div(r8239, r8237, r8238, MPFR_RNDN);
        if (mpfr_get_si(r8223, MPFR_RNDN)) { mpfr_set(r8240, r8236, MPFR_RNDN); } else { mpfr_set(r8240, r8239, MPFR_RNDN); };
        return mpfr_get_d(r8240, MPFR_RNDN);
}

static mpfr_t r8241, r8242, r8243, r8244, r8245, r8246, r8247, r8248, r8249, r8250, r8251, r8252, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8241);
        mpfr_init_set_str(r8242, "-3.0925910797137313e+103", 10, MPFR_RNDN);
        mpfr_init(r8243);
        mpfr_init_set_str(r8244, "0", 10, MPFR_RNDN);
        mpfr_init(r8245);
        mpfr_init_set_str(r8246, "2", 10, MPFR_RNDN);
        mpfr_init(r8247);
        mpfr_init(r8248);
        mpfr_init(r8249);
        mpfr_init_set_str(r8250, "4", 10, MPFR_RNDN);
        mpfr_init(r8251);
        mpfr_init(r8252);
        mpfr_init(r8253);
        mpfr_init(r8254);
        mpfr_init(r8255);
        mpfr_init(r8256);
        mpfr_init(r8257);
        mpfr_init(r8258);
        mpfr_init(r8259);
        mpfr_init(r8260);
        mpfr_init(r8261);
        mpfr_init(r8262);
        mpfr_init_set_str(r8263, "6.959770719239994e+151", 10, MPFR_RNDN);
        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(r8276);
        mpfr_init(r8277);
        mpfr_init(r8278);
        mpfr_init(r8279);
        mpfr_init(r8280);
        mpfr_init(r8281);
        mpfr_init(r8282);
        mpfr_init(r8283);
        mpfr_init(r8284);
        mpfr_init(r8285);
        mpfr_init(r8286);
        mpfr_init(r8287);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r8241, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8243, mpfr_cmp(r8241, r8242) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r8245, mpfr_cmp(r8241, r8244) >= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r8247, c, MPFR_RNDN);
        mpfr_mul(r8248, r8246, r8247, MPFR_RNDN);
        mpfr_neg(r8249, r8241, MPFR_RNDN);
        ;
        mpfr_neg(r8251, r8250, MPFR_RNDN);
        mpfr_set_d(r8252, a, MPFR_RNDN);
        mpfr_mul(r8253, r8252, r8247, MPFR_RNDN);
        mpfr_mul(r8254, r8241, r8241, MPFR_RNDN);
        mpfr_fma(r8255, r8251, r8253, r8254, MPFR_RNDN);
        mpfr_sqrt(r8256, r8255, MPFR_RNDN);
        mpfr_sub(r8257, r8249, r8256, MPFR_RNDN);
        mpfr_div(r8258, r8248, r8257, MPFR_RNDN);
        mpfr_div(r8259, r8247, r8241, MPFR_RNDN);
        mpfr_div(r8260, r8241, r8252, MPFR_RNDN);
        mpfr_sub(r8261, r8259, r8260, MPFR_RNDN);
        if (mpfr_get_si(r8245, MPFR_RNDN)) { mpfr_set(r8262, r8258, MPFR_RNDN); } else { mpfr_set(r8262, r8261, MPFR_RNDN); };
        ;
        mpfr_set_si(r8264, mpfr_cmp(r8241, r8263) <= 0, MPFR_RNDN);
        mpfr_mul(r8265, r8252, r8250, MPFR_RNDN);
        mpfr_mul(r8266, r8247, r8265, MPFR_RNDN);
        mpfr_sub(r8267, r8254, r8266, MPFR_RNDN);
        mpfr_sqrt(r8268, r8267, MPFR_RNDN);
        mpfr_sub(r8269, r8249, r8268, MPFR_RNDN);
        mpfr_div(r8270, r8248, r8269, MPFR_RNDN);
        mpfr_cbrt(r8271, r8249, MPFR_RNDN);
        mpfr_mul(r8272, r8271, r8271, MPFR_RNDN);
        mpfr_fma(r8273, r8272, r8271, r8268, MPFR_RNDN);
        mpfr_mul(r8274, r8246, r8252, MPFR_RNDN);
        mpfr_div(r8275, r8273, r8274, MPFR_RNDN);
        if (mpfr_get_si(r8245, MPFR_RNDN)) { mpfr_set(r8276, r8270, MPFR_RNDN); } else { mpfr_set(r8276, r8275, MPFR_RNDN); };
        mpfr_div(r8277, r8252, r8241, MPFR_RNDN);
        mpfr_fma(r8278, r8247, r8277, r8249, MPFR_RNDN);
        mpfr_div(r8279, r8247, r8278, MPFR_RNDN);
        mpfr_neg(r8280, r8247, MPFR_RNDN);
        mpfr_fma(r8281, r8265, r8280, r8254, MPFR_RNDN);
        mpfr_sqrt(r8282, r8281, MPFR_RNDN);
        mpfr_sub(r8283, r8282, r8241, MPFR_RNDN);
        mpfr_div(r8284, r8283, r8274, MPFR_RNDN);
        if (mpfr_get_si(r8245, MPFR_RNDN)) { mpfr_set(r8285, r8279, MPFR_RNDN); } else { mpfr_set(r8285, r8284, MPFR_RNDN); };
        if (mpfr_get_si(r8264, MPFR_RNDN)) { mpfr_set(r8286, r8276, MPFR_RNDN); } else { mpfr_set(r8286, r8285, MPFR_RNDN); };
        if (mpfr_get_si(r8243, MPFR_RNDN)) { mpfr_set(r8287, r8262, MPFR_RNDN); } else { mpfr_set(r8287, r8286, MPFR_RNDN); };
        return mpfr_get_d(r8287, MPFR_RNDN);
}

static mpfr_t r8288, r8289, r8290, r8291, r8292, r8293, r8294, r8295, r8296, r8297, r8298, r8299, r8300, r8301, r8302, r8303, r8304, r8305, r8306, r8307, r8308, r8309, r8310, r8311, r8312, r8313, r8314, r8315, r8316, r8317, r8318, r8319, r8320, r8321, r8322, r8323, r8324, r8325, r8326, r8327, r8328, r8329, r8330, r8331, r8332, r8333, r8334;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8288);
        mpfr_init_set_str(r8289, "-3.0925910797137313e+103", 10, MPFR_RNDN);
        mpfr_init(r8290);
        mpfr_init_set_str(r8291, "0", 10, MPFR_RNDN);
        mpfr_init(r8292);
        mpfr_init_set_str(r8293, "2", 10, MPFR_RNDN);
        mpfr_init(r8294);
        mpfr_init(r8295);
        mpfr_init(r8296);
        mpfr_init_set_str(r8297, "4", 10, MPFR_RNDN);
        mpfr_init(r8298);
        mpfr_init(r8299);
        mpfr_init(r8300);
        mpfr_init(r8301);
        mpfr_init(r8302);
        mpfr_init(r8303);
        mpfr_init(r8304);
        mpfr_init(r8305);
        mpfr_init(r8306);
        mpfr_init(r8307);
        mpfr_init(r8308);
        mpfr_init(r8309);
        mpfr_init_set_str(r8310, "6.959770719239994e+151", 10, MPFR_RNDN);
        mpfr_init(r8311);
        mpfr_init(r8312);
        mpfr_init(r8313);
        mpfr_init(r8314);
        mpfr_init(r8315);
        mpfr_init(r8316);
        mpfr_init(r8317);
        mpfr_init(r8318);
        mpfr_init(r8319);
        mpfr_init(r8320);
        mpfr_init(r8321);
        mpfr_init(r8322);
        mpfr_init(r8323);
        mpfr_init(r8324);
        mpfr_init(r8325);
        mpfr_init(r8326);
        mpfr_init(r8327);
        mpfr_init(r8328);
        mpfr_init(r8329);
        mpfr_init(r8330);
        mpfr_init(r8331);
        mpfr_init(r8332);
        mpfr_init(r8333);
        mpfr_init(r8334);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r8288, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8290, mpfr_cmp(r8288, r8289) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r8292, mpfr_cmp(r8288, r8291) >= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r8294, c, MPFR_RNDN);
        mpfr_mul(r8295, r8293, r8294, MPFR_RNDN);
        mpfr_neg(r8296, r8288, MPFR_RNDN);
        ;
        mpfr_neg(r8298, r8297, MPFR_RNDN);
        mpfr_set_d(r8299, a, MPFR_RNDN);
        mpfr_mul(r8300, r8299, r8294, MPFR_RNDN);
        mpfr_mul(r8301, r8288, r8288, MPFR_RNDN);
        mpfr_fma(r8302, r8298, r8300, r8301, MPFR_RNDN);
        mpfr_sqrt(r8303, r8302, MPFR_RNDN);
        mpfr_sub(r8304, r8296, r8303, MPFR_RNDN);
        mpfr_div(r8305, r8295, r8304, MPFR_RNDN);
        mpfr_div(r8306, r8294, r8288, MPFR_RNDN);
        mpfr_div(r8307, r8288, r8299, MPFR_RNDN);
        mpfr_sub(r8308, r8306, r8307, MPFR_RNDN);
        if (mpfr_get_si(r8292, MPFR_RNDN)) { mpfr_set(r8309, r8305, MPFR_RNDN); } else { mpfr_set(r8309, r8308, MPFR_RNDN); };
        ;
        mpfr_set_si(r8311, mpfr_cmp(r8288, r8310) <= 0, MPFR_RNDN);
        mpfr_mul(r8312, r8299, r8297, MPFR_RNDN);
        mpfr_mul(r8313, r8294, r8312, MPFR_RNDN);
        mpfr_sub(r8314, r8301, r8313, MPFR_RNDN);
        mpfr_sqrt(r8315, r8314, MPFR_RNDN);
        mpfr_sub(r8316, r8296, r8315, MPFR_RNDN);
        mpfr_div(r8317, r8295, r8316, MPFR_RNDN);
        mpfr_cbrt(r8318, r8296, MPFR_RNDN);
        mpfr_mul(r8319, r8318, r8318, MPFR_RNDN);
        mpfr_fma(r8320, r8319, r8318, r8315, MPFR_RNDN);
        mpfr_mul(r8321, r8293, r8299, MPFR_RNDN);
        mpfr_div(r8322, r8320, r8321, MPFR_RNDN);
        if (mpfr_get_si(r8292, MPFR_RNDN)) { mpfr_set(r8323, r8317, MPFR_RNDN); } else { mpfr_set(r8323, r8322, MPFR_RNDN); };
        mpfr_div(r8324, r8299, r8288, MPFR_RNDN);
        mpfr_fma(r8325, r8294, r8324, r8296, MPFR_RNDN);
        mpfr_div(r8326, r8294, r8325, MPFR_RNDN);
        mpfr_neg(r8327, r8294, MPFR_RNDN);
        mpfr_fma(r8328, r8312, r8327, r8301, MPFR_RNDN);
        mpfr_sqrt(r8329, r8328, MPFR_RNDN);
        mpfr_sub(r8330, r8329, r8288, MPFR_RNDN);
        mpfr_div(r8331, r8330, r8321, MPFR_RNDN);
        if (mpfr_get_si(r8292, MPFR_RNDN)) { mpfr_set(r8332, r8326, MPFR_RNDN); } else { mpfr_set(r8332, r8331, MPFR_RNDN); };
        if (mpfr_get_si(r8311, MPFR_RNDN)) { mpfr_set(r8333, r8323, MPFR_RNDN); } else { mpfr_set(r8333, r8332, MPFR_RNDN); };
        if (mpfr_get_si(r8290, MPFR_RNDN)) { mpfr_set(r8334, r8309, MPFR_RNDN); } else { mpfr_set(r8334, r8333, MPFR_RNDN); };
        return mpfr_get_d(r8334, MPFR_RNDN);
}

