#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 r7126 = b;
        float r7127 = -r7126;
        float r7128 = r7126 * r7126;
        float r7129 = 4;
        float r7130 = a;
        float r7131 = r7129 * r7130;
        float r7132 = c;
        float r7133 = r7131 * r7132;
        float r7134 = r7128 - r7133;
        float r7135 = sqrt(r7134);
        float r7136 = r7127 + r7135;
        float r7137 = 2;
        float r7138 = r7137 * r7130;
        float r7139 = r7136 / r7138;
        return r7139;
}

double f_id(double a, double b, double c) {
        double r7140 = b;
        double r7141 = -r7140;
        double r7142 = r7140 * r7140;
        double r7143 = 4;
        double r7144 = a;
        double r7145 = r7143 * r7144;
        double r7146 = c;
        double r7147 = r7145 * r7146;
        double r7148 = r7142 - r7147;
        double r7149 = sqrt(r7148);
        double r7150 = r7141 + r7149;
        double r7151 = 2;
        double r7152 = r7151 * r7144;
        double r7153 = r7150 / r7152;
        return r7153;
}


double f_of(float a, float b, float c) {
        float r7154 = b;
        float r7155 = -7.623780782047697e+153;
        bool r7156 = r7154 <= r7155;
        float r7157 = a;
        float r7158 = c;
        float r7159 = r7154 / r7158;
        float r7160 = r7157 / r7159;
        float r7161 = r7160 - r7154;
        float r7162 = r7161 / r7157;
        float r7163 = 5.4809203653664925e-108;
        bool r7164 = r7154 <= r7163;
        float r7165 = 1;
        float r7166 = 2;
        float r7167 = r7166 * r7157;
        float r7168 = r7154 * r7154;
        float r7169 = 4;
        float r7170 = r7157 * r7158;
        float r7171 = r7169 * r7170;
        float r7172 = r7168 - r7171;
        float r7173 = sqrt(r7172);
        float r7174 = r7173 - r7154;
        float r7175 = r7167 / r7174;
        float r7176 = r7165 / r7175;
        float r7177 = 6.844885804288013e-56;
        bool r7178 = r7154 <= r7177;
        float r7179 = r7158 / r7154;
        float r7180 = -r7179;
        float r7181 = 2.345202142130803e-14;
        bool r7182 = r7154 <= r7181;
        float r7183 = -r7154;
        float r7184 = r7157 * r7169;
        float r7185 = r7158 * r7184;
        float r7186 = r7168 - r7185;
        float r7187 = sqrt(r7186);
        float r7188 = r7183 + r7187;
        float r7189 = r7188 / r7167;
        float r7190 = r7182 ? r7189 : r7180;
        float r7191 = r7178 ? r7180 : r7190;
        float r7192 = r7164 ? r7176 : r7191;
        float r7193 = r7156 ? r7162 : r7192;
        return r7193;
}

double f_od(double a, double b, double c) {
        double r7194 = b;
        double r7195 = -7.623780782047697e+153;
        bool r7196 = r7194 <= r7195;
        double r7197 = a;
        double r7198 = c;
        double r7199 = r7194 / r7198;
        double r7200 = r7197 / r7199;
        double r7201 = r7200 - r7194;
        double r7202 = r7201 / r7197;
        double r7203 = 5.4809203653664925e-108;
        bool r7204 = r7194 <= r7203;
        double r7205 = 1;
        double r7206 = 2;
        double r7207 = r7206 * r7197;
        double r7208 = r7194 * r7194;
        double r7209 = 4;
        double r7210 = r7197 * r7198;
        double r7211 = r7209 * r7210;
        double r7212 = r7208 - r7211;
        double r7213 = sqrt(r7212);
        double r7214 = r7213 - r7194;
        double r7215 = r7207 / r7214;
        double r7216 = r7205 / r7215;
        double r7217 = 6.844885804288013e-56;
        bool r7218 = r7194 <= r7217;
        double r7219 = r7198 / r7194;
        double r7220 = -r7219;
        double r7221 = 2.345202142130803e-14;
        bool r7222 = r7194 <= r7221;
        double r7223 = -r7194;
        double r7224 = r7197 * r7209;
        double r7225 = r7198 * r7224;
        double r7226 = r7208 - r7225;
        double r7227 = sqrt(r7226);
        double r7228 = r7223 + r7227;
        double r7229 = r7228 / r7207;
        double r7230 = r7222 ? r7229 : r7220;
        double r7231 = r7218 ? r7220 : r7230;
        double r7232 = r7204 ? r7216 : r7231;
        double r7233 = r7196 ? r7202 : r7232;
        return r7233;
}

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 r7234, r7235, r7236, r7237, r7238, r7239, r7240, r7241, r7242, r7243, r7244, r7245, r7246, r7247;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r7234);
        mpfr_init(r7235);
        mpfr_init(r7236);
        mpfr_init_set_str(r7237, "4", 10, MPFR_RNDN);
        mpfr_init(r7238);
        mpfr_init(r7239);
        mpfr_init(r7240);
        mpfr_init(r7241);
        mpfr_init(r7242);
        mpfr_init(r7243);
        mpfr_init(r7244);
        mpfr_init_set_str(r7245, "2", 10, MPFR_RNDN);
        mpfr_init(r7246);
        mpfr_init(r7247);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r7234, b, MPFR_RNDN);
        mpfr_neg(r7235, r7234, MPFR_RNDN);
        mpfr_mul(r7236, r7234, r7234, MPFR_RNDN);
        ;
        mpfr_set_d(r7238, a, MPFR_RNDN);
        mpfr_mul(r7239, r7237, r7238, MPFR_RNDN);
        mpfr_set_d(r7240, c, MPFR_RNDN);
        mpfr_mul(r7241, r7239, r7240, MPFR_RNDN);
        mpfr_sub(r7242, r7236, r7241, MPFR_RNDN);
        mpfr_sqrt(r7243, r7242, MPFR_RNDN);
        mpfr_add(r7244, r7235, r7243, MPFR_RNDN);
        ;
        mpfr_mul(r7246, r7245, r7238, MPFR_RNDN);
        mpfr_div(r7247, r7244, r7246, MPFR_RNDN);
        return mpfr_get_d(r7247, MPFR_RNDN);
}

static mpfr_t r7248, r7249, r7250, r7251, r7252, r7253, r7254, r7255, r7256, r7257, r7258, r7259, r7260, r7261, r7262, r7263, r7264, r7265, r7266, r7267, r7268, r7269, r7270, r7271, r7272, r7273, r7274, r7275, r7276, r7277, r7278, r7279, r7280, r7281, r7282, r7283, r7284, r7285, r7286, r7287;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r7248);
        mpfr_init_set_str(r7249, "-7.623780782047697e+153", 10, MPFR_RNDN);
        mpfr_init(r7250);
        mpfr_init(r7251);
        mpfr_init(r7252);
        mpfr_init(r7253);
        mpfr_init(r7254);
        mpfr_init(r7255);
        mpfr_init(r7256);
        mpfr_init_set_str(r7257, "5.4809203653664925e-108", 10, MPFR_RNDN);
        mpfr_init(r7258);
        mpfr_init_set_str(r7259, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r7260, "2", 10, MPFR_RNDN);
        mpfr_init(r7261);
        mpfr_init(r7262);
        mpfr_init_set_str(r7263, "4", 10, MPFR_RNDN);
        mpfr_init(r7264);
        mpfr_init(r7265);
        mpfr_init(r7266);
        mpfr_init(r7267);
        mpfr_init(r7268);
        mpfr_init(r7269);
        mpfr_init(r7270);
        mpfr_init_set_str(r7271, "6.844885804288013e-56", 10, MPFR_RNDN);
        mpfr_init(r7272);
        mpfr_init(r7273);
        mpfr_init(r7274);
        mpfr_init_set_str(r7275, "2.345202142130803e-14", 10, MPFR_RNDN);
        mpfr_init(r7276);
        mpfr_init(r7277);
        mpfr_init(r7278);
        mpfr_init(r7279);
        mpfr_init(r7280);
        mpfr_init(r7281);
        mpfr_init(r7282);
        mpfr_init(r7283);
        mpfr_init(r7284);
        mpfr_init(r7285);
        mpfr_init(r7286);
        mpfr_init(r7287);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r7248, b, MPFR_RNDN);
        ;
        mpfr_set_si(r7250, mpfr_cmp(r7248, r7249) <= 0, MPFR_RNDN);
        mpfr_set_d(r7251, a, MPFR_RNDN);
        mpfr_set_d(r7252, c, MPFR_RNDN);
        mpfr_div(r7253, r7248, r7252, MPFR_RNDN);
        mpfr_div(r7254, r7251, r7253, MPFR_RNDN);
        mpfr_sub(r7255, r7254, r7248, MPFR_RNDN);
        mpfr_div(r7256, r7255, r7251, MPFR_RNDN);
        ;
        mpfr_set_si(r7258, mpfr_cmp(r7248, r7257) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r7261, r7260, r7251, MPFR_RNDN);
        mpfr_mul(r7262, r7248, r7248, MPFR_RNDN);
        ;
        mpfr_mul(r7264, r7251, r7252, MPFR_RNDN);
        mpfr_mul(r7265, r7263, r7264, MPFR_RNDN);
        mpfr_sub(r7266, r7262, r7265, MPFR_RNDN);
        mpfr_sqrt(r7267, r7266, MPFR_RNDN);
        mpfr_sub(r7268, r7267, r7248, MPFR_RNDN);
        mpfr_div(r7269, r7261, r7268, MPFR_RNDN);
        mpfr_div(r7270, r7259, r7269, MPFR_RNDN);
        ;
        mpfr_set_si(r7272, mpfr_cmp(r7248, r7271) <= 0, MPFR_RNDN);
        mpfr_div(r7273, r7252, r7248, MPFR_RNDN);
        mpfr_neg(r7274, r7273, MPFR_RNDN);
        ;
        mpfr_set_si(r7276, mpfr_cmp(r7248, r7275) <= 0, MPFR_RNDN);
        mpfr_neg(r7277, r7248, MPFR_RNDN);
        mpfr_mul(r7278, r7251, r7263, MPFR_RNDN);
        mpfr_mul(r7279, r7252, r7278, MPFR_RNDN);
        mpfr_sub(r7280, r7262, r7279, MPFR_RNDN);
        mpfr_sqrt(r7281, r7280, MPFR_RNDN);
        mpfr_add(r7282, r7277, r7281, MPFR_RNDN);
        mpfr_div(r7283, r7282, r7261, MPFR_RNDN);
        if (mpfr_get_si(r7276, MPFR_RNDN)) { mpfr_set(r7284, r7283, MPFR_RNDN); } else { mpfr_set(r7284, r7274, MPFR_RNDN); };
        if (mpfr_get_si(r7272, MPFR_RNDN)) { mpfr_set(r7285, r7274, MPFR_RNDN); } else { mpfr_set(r7285, r7284, MPFR_RNDN); };
        if (mpfr_get_si(r7258, MPFR_RNDN)) { mpfr_set(r7286, r7270, MPFR_RNDN); } else { mpfr_set(r7286, r7285, MPFR_RNDN); };
        if (mpfr_get_si(r7250, MPFR_RNDN)) { mpfr_set(r7287, r7256, MPFR_RNDN); } else { mpfr_set(r7287, r7286, MPFR_RNDN); };
        return mpfr_get_d(r7287, MPFR_RNDN);
}

static mpfr_t r7288, r7289, r7290, r7291, r7292, r7293, r7294, r7295, r7296, r7297, r7298, r7299, r7300, r7301, r7302, r7303, r7304, r7305, r7306, r7307, r7308, r7309, r7310, r7311, r7312, r7313, r7314, r7315, r7316, r7317, r7318, r7319, r7320, r7321, r7322, r7323, r7324, r7325, r7326, r7327;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r7288);
        mpfr_init_set_str(r7289, "-7.623780782047697e+153", 10, MPFR_RNDN);
        mpfr_init(r7290);
        mpfr_init(r7291);
        mpfr_init(r7292);
        mpfr_init(r7293);
        mpfr_init(r7294);
        mpfr_init(r7295);
        mpfr_init(r7296);
        mpfr_init_set_str(r7297, "5.4809203653664925e-108", 10, MPFR_RNDN);
        mpfr_init(r7298);
        mpfr_init_set_str(r7299, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r7300, "2", 10, MPFR_RNDN);
        mpfr_init(r7301);
        mpfr_init(r7302);
        mpfr_init_set_str(r7303, "4", 10, MPFR_RNDN);
        mpfr_init(r7304);
        mpfr_init(r7305);
        mpfr_init(r7306);
        mpfr_init(r7307);
        mpfr_init(r7308);
        mpfr_init(r7309);
        mpfr_init(r7310);
        mpfr_init_set_str(r7311, "6.844885804288013e-56", 10, MPFR_RNDN);
        mpfr_init(r7312);
        mpfr_init(r7313);
        mpfr_init(r7314);
        mpfr_init_set_str(r7315, "2.345202142130803e-14", 10, MPFR_RNDN);
        mpfr_init(r7316);
        mpfr_init(r7317);
        mpfr_init(r7318);
        mpfr_init(r7319);
        mpfr_init(r7320);
        mpfr_init(r7321);
        mpfr_init(r7322);
        mpfr_init(r7323);
        mpfr_init(r7324);
        mpfr_init(r7325);
        mpfr_init(r7326);
        mpfr_init(r7327);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r7288, b, MPFR_RNDN);
        ;
        mpfr_set_si(r7290, mpfr_cmp(r7288, r7289) <= 0, MPFR_RNDN);
        mpfr_set_d(r7291, a, MPFR_RNDN);
        mpfr_set_d(r7292, c, MPFR_RNDN);
        mpfr_div(r7293, r7288, r7292, MPFR_RNDN);
        mpfr_div(r7294, r7291, r7293, MPFR_RNDN);
        mpfr_sub(r7295, r7294, r7288, MPFR_RNDN);
        mpfr_div(r7296, r7295, r7291, MPFR_RNDN);
        ;
        mpfr_set_si(r7298, mpfr_cmp(r7288, r7297) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r7301, r7300, r7291, MPFR_RNDN);
        mpfr_mul(r7302, r7288, r7288, MPFR_RNDN);
        ;
        mpfr_mul(r7304, r7291, r7292, MPFR_RNDN);
        mpfr_mul(r7305, r7303, r7304, MPFR_RNDN);
        mpfr_sub(r7306, r7302, r7305, MPFR_RNDN);
        mpfr_sqrt(r7307, r7306, MPFR_RNDN);
        mpfr_sub(r7308, r7307, r7288, MPFR_RNDN);
        mpfr_div(r7309, r7301, r7308, MPFR_RNDN);
        mpfr_div(r7310, r7299, r7309, MPFR_RNDN);
        ;
        mpfr_set_si(r7312, mpfr_cmp(r7288, r7311) <= 0, MPFR_RNDN);
        mpfr_div(r7313, r7292, r7288, MPFR_RNDN);
        mpfr_neg(r7314, r7313, MPFR_RNDN);
        ;
        mpfr_set_si(r7316, mpfr_cmp(r7288, r7315) <= 0, MPFR_RNDN);
        mpfr_neg(r7317, r7288, MPFR_RNDN);
        mpfr_mul(r7318, r7291, r7303, MPFR_RNDN);
        mpfr_mul(r7319, r7292, r7318, MPFR_RNDN);
        mpfr_sub(r7320, r7302, r7319, MPFR_RNDN);
        mpfr_sqrt(r7321, r7320, MPFR_RNDN);
        mpfr_add(r7322, r7317, r7321, MPFR_RNDN);
        mpfr_div(r7323, r7322, r7301, MPFR_RNDN);
        if (mpfr_get_si(r7316, MPFR_RNDN)) { mpfr_set(r7324, r7323, MPFR_RNDN); } else { mpfr_set(r7324, r7314, MPFR_RNDN); };
        if (mpfr_get_si(r7312, MPFR_RNDN)) { mpfr_set(r7325, r7314, MPFR_RNDN); } else { mpfr_set(r7325, r7324, MPFR_RNDN); };
        if (mpfr_get_si(r7298, MPFR_RNDN)) { mpfr_set(r7326, r7310, MPFR_RNDN); } else { mpfr_set(r7326, r7325, MPFR_RNDN); };
        if (mpfr_get_si(r7290, MPFR_RNDN)) { mpfr_set(r7327, r7296, MPFR_RNDN); } else { mpfr_set(r7327, r7326, MPFR_RNDN); };
        return mpfr_get_d(r7327, MPFR_RNDN);
}

