#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 r27083 = b;
        float r27084 = -r27083;
        float r27085 = r27083 * r27083;
        float r27086 = 4;
        float r27087 = a;
        float r27088 = r27086 * r27087;
        float r27089 = c;
        float r27090 = r27088 * r27089;
        float r27091 = r27085 - r27090;
        float r27092 = sqrt(r27091);
        float r27093 = r27084 + r27092;
        float r27094 = 2;
        float r27095 = r27094 * r27087;
        float r27096 = r27093 / r27095;
        return r27096;
}

double f_id(double a, double b, double c) {
        double r27097 = b;
        double r27098 = -r27097;
        double r27099 = r27097 * r27097;
        double r27100 = 4;
        double r27101 = a;
        double r27102 = r27100 * r27101;
        double r27103 = c;
        double r27104 = r27102 * r27103;
        double r27105 = r27099 - r27104;
        double r27106 = sqrt(r27105);
        double r27107 = r27098 + r27106;
        double r27108 = 2;
        double r27109 = r27108 * r27101;
        double r27110 = r27107 / r27109;
        return r27110;
}


double f_of(float a, float b, float c) {
        float r27111 = 4;
        float r27112 = a;
        float r27113 = r27111 * r27112;
        float r27114 = c;
        float r27115 = -r27114;
        float r27116 = b;
        float r27117 = r27116 * r27116;
        float r27118 = fma(r27113, r27115, r27117);
        float r27119 = sqrt(r27118);
        float r27120 = r27119 - r27116;
        float r27121 = sqrt(r27120);
        float r27122 = 2;
        float r27123 = r27121 / r27122;
        float r27124 = r27121 / r27112;
        float r27125 = r27123 * r27124;
        float r27126 = -4.7404706670867886e+278;
        bool r27127 = r27125 <= r27126;
        float r27128 = -r27111;
        float r27129 = r27128 / r27122;
        float r27130 = r27116 + r27116;
        float r27131 = r27114 / r27130;
        float r27132 = r27129 * r27131;
        float r27133 = -6.406169797089137e-301;
        bool r27134 = r27125 <= r27133;
        float r27135 = r27122 * r27112;
        float r27136 = r27120 / r27135;
        float r27137 = 5.872269164248595e-297;
        bool r27138 = r27125 <= r27137;
        float r27139 = 4.2251753098721266e+287;
        bool r27140 = r27125 <= r27139;
        float r27141 = r27140 ? r27136 : r27132;
        float r27142 = r27138 ? r27132 : r27141;
        float r27143 = r27134 ? r27136 : r27142;
        float r27144 = r27127 ? r27132 : r27143;
        return r27144;
}

double f_od(double a, double b, double c) {
        double r27145 = 4;
        double r27146 = a;
        double r27147 = r27145 * r27146;
        double r27148 = c;
        double r27149 = -r27148;
        double r27150 = b;
        double r27151 = r27150 * r27150;
        double r27152 = fma(r27147, r27149, r27151);
        double r27153 = sqrt(r27152);
        double r27154 = r27153 - r27150;
        double r27155 = sqrt(r27154);
        double r27156 = 2;
        double r27157 = r27155 / r27156;
        double r27158 = r27155 / r27146;
        double r27159 = r27157 * r27158;
        double r27160 = -4.7404706670867886e+278;
        bool r27161 = r27159 <= r27160;
        double r27162 = -r27145;
        double r27163 = r27162 / r27156;
        double r27164 = r27150 + r27150;
        double r27165 = r27148 / r27164;
        double r27166 = r27163 * r27165;
        double r27167 = -6.406169797089137e-301;
        bool r27168 = r27159 <= r27167;
        double r27169 = r27156 * r27146;
        double r27170 = r27154 / r27169;
        double r27171 = 5.872269164248595e-297;
        bool r27172 = r27159 <= r27171;
        double r27173 = 4.2251753098721266e+287;
        bool r27174 = r27159 <= r27173;
        double r27175 = r27174 ? r27170 : r27166;
        double r27176 = r27172 ? r27166 : r27175;
        double r27177 = r27168 ? r27170 : r27176;
        double r27178 = r27161 ? r27166 : r27177;
        return r27178;
}

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 r27179, r27180, r27181, r27182, r27183, r27184, r27185, r27186, r27187, r27188, r27189, r27190, r27191, r27192;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r27179);
        mpfr_init(r27180);
        mpfr_init(r27181);
        mpfr_init_set_str(r27182, "4", 10, MPFR_RNDN);
        mpfr_init(r27183);
        mpfr_init(r27184);
        mpfr_init(r27185);
        mpfr_init(r27186);
        mpfr_init(r27187);
        mpfr_init(r27188);
        mpfr_init(r27189);
        mpfr_init_set_str(r27190, "2", 10, MPFR_RNDN);
        mpfr_init(r27191);
        mpfr_init(r27192);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r27179, b, MPFR_RNDN);
        mpfr_neg(r27180, r27179, MPFR_RNDN);
        mpfr_mul(r27181, r27179, r27179, MPFR_RNDN);
        ;
        mpfr_set_d(r27183, a, MPFR_RNDN);
        mpfr_mul(r27184, r27182, r27183, MPFR_RNDN);
        mpfr_set_d(r27185, c, MPFR_RNDN);
        mpfr_mul(r27186, r27184, r27185, MPFR_RNDN);
        mpfr_sub(r27187, r27181, r27186, MPFR_RNDN);
        mpfr_sqrt(r27188, r27187, MPFR_RNDN);
        mpfr_add(r27189, r27180, r27188, MPFR_RNDN);
        ;
        mpfr_mul(r27191, r27190, r27183, MPFR_RNDN);
        mpfr_div(r27192, r27189, r27191, MPFR_RNDN);
        return mpfr_get_d(r27192, MPFR_RNDN);
}

static mpfr_t r27193, r27194, r27195, r27196, r27197, r27198, r27199, r27200, r27201, r27202, r27203, r27204, r27205, r27206, r27207, r27208, r27209, r27210, r27211, r27212, r27213, r27214, r27215, r27216, r27217, r27218, r27219, r27220, r27221, r27222, r27223, r27224, r27225, r27226;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r27193, "4", 10, MPFR_RNDN);
        mpfr_init(r27194);
        mpfr_init(r27195);
        mpfr_init(r27196);
        mpfr_init(r27197);
        mpfr_init(r27198);
        mpfr_init(r27199);
        mpfr_init(r27200);
        mpfr_init(r27201);
        mpfr_init(r27202);
        mpfr_init(r27203);
        mpfr_init_set_str(r27204, "2", 10, MPFR_RNDN);
        mpfr_init(r27205);
        mpfr_init(r27206);
        mpfr_init(r27207);
        mpfr_init_set_str(r27208, "-4.7404706670867886e+278", 10, MPFR_RNDN);
        mpfr_init(r27209);
        mpfr_init(r27210);
        mpfr_init(r27211);
        mpfr_init(r27212);
        mpfr_init(r27213);
        mpfr_init(r27214);
        mpfr_init_set_str(r27215, "-6.406169797089137e-301", 10, MPFR_RNDN);
        mpfr_init(r27216);
        mpfr_init(r27217);
        mpfr_init(r27218);
        mpfr_init_set_str(r27219, "5.872269164248595e-297", 10, MPFR_RNDN);
        mpfr_init(r27220);
        mpfr_init_set_str(r27221, "4.2251753098721266e+287", 10, MPFR_RNDN);
        mpfr_init(r27222);
        mpfr_init(r27223);
        mpfr_init(r27224);
        mpfr_init(r27225);
        mpfr_init(r27226);
}

double f_fm(double a, double b, double c) {
        ;
        mpfr_set_d(r27194, a, MPFR_RNDN);
        mpfr_mul(r27195, r27193, r27194, MPFR_RNDN);
        mpfr_set_d(r27196, c, MPFR_RNDN);
        mpfr_neg(r27197, r27196, MPFR_RNDN);
        mpfr_set_d(r27198, b, MPFR_RNDN);
        mpfr_mul(r27199, r27198, r27198, MPFR_RNDN);
        mpfr_fma(r27200, r27195, r27197, r27199, MPFR_RNDN);
        mpfr_sqrt(r27201, r27200, MPFR_RNDN);
        mpfr_sub(r27202, r27201, r27198, MPFR_RNDN);
        mpfr_sqrt(r27203, r27202, MPFR_RNDN);
        ;
        mpfr_div(r27205, r27203, r27204, MPFR_RNDN);
        mpfr_div(r27206, r27203, r27194, MPFR_RNDN);
        mpfr_mul(r27207, r27205, r27206, MPFR_RNDN);
        ;
        mpfr_set_si(r27209, mpfr_cmp(r27207, r27208) <= 0, MPFR_RNDN);
        mpfr_neg(r27210, r27193, MPFR_RNDN);
        mpfr_div(r27211, r27210, r27204, MPFR_RNDN);
        mpfr_add(r27212, r27198, r27198, MPFR_RNDN);
        mpfr_div(r27213, r27196, r27212, MPFR_RNDN);
        mpfr_mul(r27214, r27211, r27213, MPFR_RNDN);
        ;
        mpfr_set_si(r27216, mpfr_cmp(r27207, r27215) <= 0, MPFR_RNDN);
        mpfr_mul(r27217, r27204, r27194, MPFR_RNDN);
        mpfr_div(r27218, r27202, r27217, MPFR_RNDN);
        ;
        mpfr_set_si(r27220, mpfr_cmp(r27207, r27219) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r27222, mpfr_cmp(r27207, r27221) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r27222, MPFR_RNDN)) { mpfr_set(r27223, r27218, MPFR_RNDN); } else { mpfr_set(r27223, r27214, MPFR_RNDN); };
        if (mpfr_get_si(r27220, MPFR_RNDN)) { mpfr_set(r27224, r27214, MPFR_RNDN); } else { mpfr_set(r27224, r27223, MPFR_RNDN); };
        if (mpfr_get_si(r27216, MPFR_RNDN)) { mpfr_set(r27225, r27218, MPFR_RNDN); } else { mpfr_set(r27225, r27224, MPFR_RNDN); };
        if (mpfr_get_si(r27209, MPFR_RNDN)) { mpfr_set(r27226, r27214, MPFR_RNDN); } else { mpfr_set(r27226, r27225, MPFR_RNDN); };
        return mpfr_get_d(r27226, MPFR_RNDN);
}

static mpfr_t r27227, r27228, r27229, r27230, r27231, r27232, r27233, r27234, r27235, r27236, r27237, r27238, r27239, r27240, r27241, r27242, r27243, r27244, r27245, r27246, r27247, r27248, r27249, r27250, r27251, r27252, r27253, r27254, r27255, r27256, r27257, r27258, r27259, r27260;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r27227, "4", 10, MPFR_RNDN);
        mpfr_init(r27228);
        mpfr_init(r27229);
        mpfr_init(r27230);
        mpfr_init(r27231);
        mpfr_init(r27232);
        mpfr_init(r27233);
        mpfr_init(r27234);
        mpfr_init(r27235);
        mpfr_init(r27236);
        mpfr_init(r27237);
        mpfr_init_set_str(r27238, "2", 10, MPFR_RNDN);
        mpfr_init(r27239);
        mpfr_init(r27240);
        mpfr_init(r27241);
        mpfr_init_set_str(r27242, "-4.7404706670867886e+278", 10, MPFR_RNDN);
        mpfr_init(r27243);
        mpfr_init(r27244);
        mpfr_init(r27245);
        mpfr_init(r27246);
        mpfr_init(r27247);
        mpfr_init(r27248);
        mpfr_init_set_str(r27249, "-6.406169797089137e-301", 10, MPFR_RNDN);
        mpfr_init(r27250);
        mpfr_init(r27251);
        mpfr_init(r27252);
        mpfr_init_set_str(r27253, "5.872269164248595e-297", 10, MPFR_RNDN);
        mpfr_init(r27254);
        mpfr_init_set_str(r27255, "4.2251753098721266e+287", 10, MPFR_RNDN);
        mpfr_init(r27256);
        mpfr_init(r27257);
        mpfr_init(r27258);
        mpfr_init(r27259);
        mpfr_init(r27260);
}

double f_dm(double a, double b, double c) {
        ;
        mpfr_set_d(r27228, a, MPFR_RNDN);
        mpfr_mul(r27229, r27227, r27228, MPFR_RNDN);
        mpfr_set_d(r27230, c, MPFR_RNDN);
        mpfr_neg(r27231, r27230, MPFR_RNDN);
        mpfr_set_d(r27232, b, MPFR_RNDN);
        mpfr_mul(r27233, r27232, r27232, MPFR_RNDN);
        mpfr_fma(r27234, r27229, r27231, r27233, MPFR_RNDN);
        mpfr_sqrt(r27235, r27234, MPFR_RNDN);
        mpfr_sub(r27236, r27235, r27232, MPFR_RNDN);
        mpfr_sqrt(r27237, r27236, MPFR_RNDN);
        ;
        mpfr_div(r27239, r27237, r27238, MPFR_RNDN);
        mpfr_div(r27240, r27237, r27228, MPFR_RNDN);
        mpfr_mul(r27241, r27239, r27240, MPFR_RNDN);
        ;
        mpfr_set_si(r27243, mpfr_cmp(r27241, r27242) <= 0, MPFR_RNDN);
        mpfr_neg(r27244, r27227, MPFR_RNDN);
        mpfr_div(r27245, r27244, r27238, MPFR_RNDN);
        mpfr_add(r27246, r27232, r27232, MPFR_RNDN);
        mpfr_div(r27247, r27230, r27246, MPFR_RNDN);
        mpfr_mul(r27248, r27245, r27247, MPFR_RNDN);
        ;
        mpfr_set_si(r27250, mpfr_cmp(r27241, r27249) <= 0, MPFR_RNDN);
        mpfr_mul(r27251, r27238, r27228, MPFR_RNDN);
        mpfr_div(r27252, r27236, r27251, MPFR_RNDN);
        ;
        mpfr_set_si(r27254, mpfr_cmp(r27241, r27253) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r27256, mpfr_cmp(r27241, r27255) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r27256, MPFR_RNDN)) { mpfr_set(r27257, r27252, MPFR_RNDN); } else { mpfr_set(r27257, r27248, MPFR_RNDN); };
        if (mpfr_get_si(r27254, MPFR_RNDN)) { mpfr_set(r27258, r27248, MPFR_RNDN); } else { mpfr_set(r27258, r27257, MPFR_RNDN); };
        if (mpfr_get_si(r27250, MPFR_RNDN)) { mpfr_set(r27259, r27252, MPFR_RNDN); } else { mpfr_set(r27259, r27258, MPFR_RNDN); };
        if (mpfr_get_si(r27243, MPFR_RNDN)) { mpfr_set(r27260, r27248, MPFR_RNDN); } else { mpfr_set(r27260, r27259, MPFR_RNDN); };
        return mpfr_get_d(r27260, MPFR_RNDN);
}

