#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 r27057 = b;
        float r27058 = -r27057;
        float r27059 = r27057 * r27057;
        float r27060 = 4;
        float r27061 = a;
        float r27062 = r27060 * r27061;
        float r27063 = c;
        float r27064 = r27062 * r27063;
        float r27065 = r27059 - r27064;
        float r27066 = sqrt(r27065);
        float r27067 = r27058 + r27066;
        float r27068 = 2;
        float r27069 = r27068 * r27061;
        float r27070 = r27067 / r27069;
        return r27070;
}

double f_id(double a, double b, double c) {
        double r27071 = b;
        double r27072 = -r27071;
        double r27073 = r27071 * r27071;
        double r27074 = 4;
        double r27075 = a;
        double r27076 = r27074 * r27075;
        double r27077 = c;
        double r27078 = r27076 * r27077;
        double r27079 = r27073 - r27078;
        double r27080 = sqrt(r27079);
        double r27081 = r27072 + r27080;
        double r27082 = 2;
        double r27083 = r27082 * r27075;
        double r27084 = r27081 / r27083;
        return r27084;
}


double f_of(float a, float b, float c) {
        float r27085 = 2;
        float r27086 = b;
        float r27087 = r27085 / r27086;
        float r27088 = -2.3714655000618715e-96;
        bool r27089 = r27087 <= r27088;
        float r27090 = r27086 * r27086;
        float r27091 = c;
        float r27092 = 4;
        float r27093 = r27091 * r27092;
        float r27094 = a;
        float r27095 = r27093 * r27094;
        float r27096 = r27090 - r27095;
        float r27097 = sqrt(r27096);
        float r27098 = r27097 - r27086;
        float r27099 = r27094 * r27085;
        float r27100 = r27098 / r27099;
        float r27101 = -3.411774524196207e-308;
        bool r27102 = r27087 <= r27101;
        float r27103 = r27091 / r27086;
        float r27104 = r27086 + r27086;
        float r27105 = r27104 / r27099;
        float r27106 = r27103 - r27105;
        float r27107 = 6.76428752235649e-23;
        bool r27108 = r27087 <= r27107;
        float r27109 = -r27092;
        float r27110 = r27109 / r27085;
        float r27111 = r27091 / r27085;
        float r27112 = r27110 * r27111;
        float r27113 = r27086 / r27094;
        float r27114 = r27091 / r27113;
        float r27115 = r27086 - r27114;
        float r27116 = r27112 / r27115;
        float r27117 = r27094 * r27091;
        float r27118 = r27117 * r27092;
        float r27119 = r27090 - r27118;
        float r27120 = sqrt(r27119);
        float r27121 = r27120 + r27086;
        float r27122 = r27091 / r27121;
        float r27123 = r27122 * r27110;
        float r27124 = r27108 ? r27116 : r27123;
        float r27125 = r27102 ? r27106 : r27124;
        float r27126 = r27089 ? r27100 : r27125;
        return r27126;
}

double f_od(double a, double b, double c) {
        double r27127 = 2;
        double r27128 = b;
        double r27129 = r27127 / r27128;
        double r27130 = -2.3714655000618715e-96;
        bool r27131 = r27129 <= r27130;
        double r27132 = r27128 * r27128;
        double r27133 = c;
        double r27134 = 4;
        double r27135 = r27133 * r27134;
        double r27136 = a;
        double r27137 = r27135 * r27136;
        double r27138 = r27132 - r27137;
        double r27139 = sqrt(r27138);
        double r27140 = r27139 - r27128;
        double r27141 = r27136 * r27127;
        double r27142 = r27140 / r27141;
        double r27143 = -3.411774524196207e-308;
        bool r27144 = r27129 <= r27143;
        double r27145 = r27133 / r27128;
        double r27146 = r27128 + r27128;
        double r27147 = r27146 / r27141;
        double r27148 = r27145 - r27147;
        double r27149 = 6.76428752235649e-23;
        bool r27150 = r27129 <= r27149;
        double r27151 = -r27134;
        double r27152 = r27151 / r27127;
        double r27153 = r27133 / r27127;
        double r27154 = r27152 * r27153;
        double r27155 = r27128 / r27136;
        double r27156 = r27133 / r27155;
        double r27157 = r27128 - r27156;
        double r27158 = r27154 / r27157;
        double r27159 = r27136 * r27133;
        double r27160 = r27159 * r27134;
        double r27161 = r27132 - r27160;
        double r27162 = sqrt(r27161);
        double r27163 = r27162 + r27128;
        double r27164 = r27133 / r27163;
        double r27165 = r27164 * r27152;
        double r27166 = r27150 ? r27158 : r27165;
        double r27167 = r27144 ? r27148 : r27166;
        double r27168 = r27131 ? r27142 : r27167;
        return r27168;
}

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 r27169, r27170, r27171, r27172, r27173, r27174, r27175, r27176, r27177, r27178, r27179, r27180, r27181, r27182;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r27169);
        mpfr_init(r27170);
        mpfr_init(r27171);
        mpfr_init_set_str(r27172, "4", 10, MPFR_RNDN);
        mpfr_init(r27173);
        mpfr_init(r27174);
        mpfr_init(r27175);
        mpfr_init(r27176);
        mpfr_init(r27177);
        mpfr_init(r27178);
        mpfr_init(r27179);
        mpfr_init_set_str(r27180, "2", 10, MPFR_RNDN);
        mpfr_init(r27181);
        mpfr_init(r27182);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r27169, b, MPFR_RNDN);
        mpfr_neg(r27170, r27169, MPFR_RNDN);
        mpfr_mul(r27171, r27169, r27169, MPFR_RNDN);
        ;
        mpfr_set_d(r27173, a, MPFR_RNDN);
        mpfr_mul(r27174, r27172, r27173, MPFR_RNDN);
        mpfr_set_d(r27175, c, MPFR_RNDN);
        mpfr_mul(r27176, r27174, r27175, MPFR_RNDN);
        mpfr_sub(r27177, r27171, r27176, MPFR_RNDN);
        mpfr_sqrt(r27178, r27177, MPFR_RNDN);
        mpfr_add(r27179, r27170, r27178, MPFR_RNDN);
        ;
        mpfr_mul(r27181, r27180, r27173, MPFR_RNDN);
        mpfr_div(r27182, r27179, r27181, MPFR_RNDN);
        return mpfr_get_d(r27182, MPFR_RNDN);
}

static mpfr_t r27183, r27184, r27185, r27186, r27187, r27188, r27189, r27190, r27191, r27192, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r27183, "2", 10, MPFR_RNDN);
        mpfr_init(r27184);
        mpfr_init(r27185);
        mpfr_init_set_str(r27186, "-2.3714655000618715e-96", 10, MPFR_RNDN);
        mpfr_init(r27187);
        mpfr_init(r27188);
        mpfr_init(r27189);
        mpfr_init_set_str(r27190, "4", 10, MPFR_RNDN);
        mpfr_init(r27191);
        mpfr_init(r27192);
        mpfr_init(r27193);
        mpfr_init(r27194);
        mpfr_init(r27195);
        mpfr_init(r27196);
        mpfr_init(r27197);
        mpfr_init(r27198);
        mpfr_init_set_str(r27199, "-3.411774524196207e-308", 10, MPFR_RNDN);
        mpfr_init(r27200);
        mpfr_init(r27201);
        mpfr_init(r27202);
        mpfr_init(r27203);
        mpfr_init(r27204);
        mpfr_init_set_str(r27205, "6.76428752235649e-23", 10, MPFR_RNDN);
        mpfr_init(r27206);
        mpfr_init(r27207);
        mpfr_init(r27208);
        mpfr_init(r27209);
        mpfr_init(r27210);
        mpfr_init(r27211);
        mpfr_init(r27212);
        mpfr_init(r27213);
        mpfr_init(r27214);
        mpfr_init(r27215);
        mpfr_init(r27216);
        mpfr_init(r27217);
        mpfr_init(r27218);
        mpfr_init(r27219);
        mpfr_init(r27220);
        mpfr_init(r27221);
        mpfr_init(r27222);
        mpfr_init(r27223);
        mpfr_init(r27224);
}

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

static mpfr_t r27225, r27226, 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, r27261, r27262, r27263, r27264, r27265, r27266;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r27225, "2", 10, MPFR_RNDN);
        mpfr_init(r27226);
        mpfr_init(r27227);
        mpfr_init_set_str(r27228, "-2.3714655000618715e-96", 10, MPFR_RNDN);
        mpfr_init(r27229);
        mpfr_init(r27230);
        mpfr_init(r27231);
        mpfr_init_set_str(r27232, "4", 10, MPFR_RNDN);
        mpfr_init(r27233);
        mpfr_init(r27234);
        mpfr_init(r27235);
        mpfr_init(r27236);
        mpfr_init(r27237);
        mpfr_init(r27238);
        mpfr_init(r27239);
        mpfr_init(r27240);
        mpfr_init_set_str(r27241, "-3.411774524196207e-308", 10, MPFR_RNDN);
        mpfr_init(r27242);
        mpfr_init(r27243);
        mpfr_init(r27244);
        mpfr_init(r27245);
        mpfr_init(r27246);
        mpfr_init_set_str(r27247, "6.76428752235649e-23", 10, MPFR_RNDN);
        mpfr_init(r27248);
        mpfr_init(r27249);
        mpfr_init(r27250);
        mpfr_init(r27251);
        mpfr_init(r27252);
        mpfr_init(r27253);
        mpfr_init(r27254);
        mpfr_init(r27255);
        mpfr_init(r27256);
        mpfr_init(r27257);
        mpfr_init(r27258);
        mpfr_init(r27259);
        mpfr_init(r27260);
        mpfr_init(r27261);
        mpfr_init(r27262);
        mpfr_init(r27263);
        mpfr_init(r27264);
        mpfr_init(r27265);
        mpfr_init(r27266);
}

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

