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

char *name = "quadm (p42, negative)";

double f_if(float a, float b, float c) {
        float r6215146 = b;
        float r6215147 = -r6215146;
        float r6215148 = r6215146 * r6215146;
        float r6215149 = 4;
        float r6215150 = a;
        float r6215151 = c;
        float r6215152 = r6215150 * r6215151;
        float r6215153 = r6215149 * r6215152;
        float r6215154 = r6215148 - r6215153;
        float r6215155 = sqrt(r6215154);
        float r6215156 = r6215147 - r6215155;
        float r6215157 = 2;
        float r6215158 = r6215157 * r6215150;
        float r6215159 = r6215156 / r6215158;
        return r6215159;
}

double f_id(double a, double b, double c) {
        double r6215160 = b;
        double r6215161 = -r6215160;
        double r6215162 = r6215160 * r6215160;
        double r6215163 = 4;
        double r6215164 = a;
        double r6215165 = c;
        double r6215166 = r6215164 * r6215165;
        double r6215167 = r6215163 * r6215166;
        double r6215168 = r6215162 - r6215167;
        double r6215169 = sqrt(r6215168);
        double r6215170 = r6215161 - r6215169;
        double r6215171 = 2;
        double r6215172 = r6215171 * r6215164;
        double r6215173 = r6215170 / r6215172;
        return r6215173;
}


double f_of(float a, float b, float c) {
        float r6215174 = b;
        float r6215175 = -1.8153117305948415e+64;
        bool r6215176 = r6215174 <= r6215175;
        float r6215177 = -r6215174;
        float r6215178 = r6215177 + r6215174;
        float r6215179 = a;
        float r6215180 = r6215179 + r6215179;
        float r6215181 = r6215178 / r6215180;
        float r6215182 = c;
        float r6215183 = r6215182 / r6215174;
        float r6215184 = r6215181 - r6215183;
        float r6215185 = -3.094295121454133e-56;
        bool r6215186 = r6215174 <= r6215185;
        float r6215187 = 4;
        float r6215188 = r6215182 * r6215179;
        float r6215189 = r6215187 * r6215188;
        float r6215190 = r6215189 / r6215180;
        float r6215191 = r6215174 * r6215174;
        float r6215192 = r6215191 - r6215189;
        float r6215193 = sqrt(r6215192);
        float r6215194 = r6215177 + r6215193;
        float r6215195 = r6215190 / r6215194;
        float r6215196 = -3.561741947451724e-87;
        bool r6215197 = r6215174 <= r6215196;
        float r6215198 = 6.484638702286054e+45;
        bool r6215199 = r6215174 <= r6215198;
        float r6215200 = r6215177 - r6215193;
        float r6215201 = r6215200 / r6215180;
        float r6215202 = r6215174 / r6215179;
        float r6215203 = r6215183 - r6215202;
        float r6215204 = r6215199 ? r6215201 : r6215203;
        float r6215205 = r6215197 ? r6215184 : r6215204;
        float r6215206 = r6215186 ? r6215195 : r6215205;
        float r6215207 = r6215176 ? r6215184 : r6215206;
        return r6215207;
}

double f_od(double a, double b, double c) {
        double r6215208 = b;
        double r6215209 = -1.8153117305948415e+64;
        bool r6215210 = r6215208 <= r6215209;
        double r6215211 = -r6215208;
        double r6215212 = r6215211 + r6215208;
        double r6215213 = a;
        double r6215214 = r6215213 + r6215213;
        double r6215215 = r6215212 / r6215214;
        double r6215216 = c;
        double r6215217 = r6215216 / r6215208;
        double r6215218 = r6215215 - r6215217;
        double r6215219 = -3.094295121454133e-56;
        bool r6215220 = r6215208 <= r6215219;
        double r6215221 = 4;
        double r6215222 = r6215216 * r6215213;
        double r6215223 = r6215221 * r6215222;
        double r6215224 = r6215223 / r6215214;
        double r6215225 = r6215208 * r6215208;
        double r6215226 = r6215225 - r6215223;
        double r6215227 = sqrt(r6215226);
        double r6215228 = r6215211 + r6215227;
        double r6215229 = r6215224 / r6215228;
        double r6215230 = -3.561741947451724e-87;
        bool r6215231 = r6215208 <= r6215230;
        double r6215232 = 6.484638702286054e+45;
        bool r6215233 = r6215208 <= r6215232;
        double r6215234 = r6215211 - r6215227;
        double r6215235 = r6215234 / r6215214;
        double r6215236 = r6215208 / r6215213;
        double r6215237 = r6215217 - r6215236;
        double r6215238 = r6215233 ? r6215235 : r6215237;
        double r6215239 = r6215231 ? r6215218 : r6215238;
        double r6215240 = r6215220 ? r6215229 : r6215239;
        double r6215241 = r6215210 ? r6215218 : r6215240;
        return r6215241;
}

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 r6215242, r6215243, r6215244, r6215245, r6215246, r6215247, r6215248, r6215249, r6215250, r6215251, r6215252, r6215253, r6215254, r6215255;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r6215242);
        mpfr_init(r6215243);
        mpfr_init(r6215244);
        mpfr_init_set_str(r6215245, "4", 10, MPFR_RNDN);
        mpfr_init(r6215246);
        mpfr_init(r6215247);
        mpfr_init(r6215248);
        mpfr_init(r6215249);
        mpfr_init(r6215250);
        mpfr_init(r6215251);
        mpfr_init(r6215252);
        mpfr_init_set_str(r6215253, "2", 10, MPFR_RNDN);
        mpfr_init(r6215254);
        mpfr_init(r6215255);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r6215242, b, MPFR_RNDN);
        mpfr_neg(r6215243, r6215242, MPFR_RNDN);
        mpfr_mul(r6215244, r6215242, r6215242, MPFR_RNDN);
        ;
        mpfr_set_d(r6215246, a, MPFR_RNDN);
        mpfr_set_d(r6215247, c, MPFR_RNDN);
        mpfr_mul(r6215248, r6215246, r6215247, MPFR_RNDN);
        mpfr_mul(r6215249, r6215245, r6215248, MPFR_RNDN);
        mpfr_sub(r6215250, r6215244, r6215249, MPFR_RNDN);
        mpfr_sqrt(r6215251, r6215250, MPFR_RNDN);
        mpfr_sub(r6215252, r6215243, r6215251, MPFR_RNDN);
        ;
        mpfr_mul(r6215254, r6215253, r6215246, MPFR_RNDN);
        mpfr_div(r6215255, r6215252, r6215254, MPFR_RNDN);
        return mpfr_get_d(r6215255, MPFR_RNDN);
}

static mpfr_t r6215256, r6215257, r6215258, r6215259, r6215260, r6215261, r6215262, r6215263, r6215264, r6215265, r6215266, r6215267, r6215268, r6215269, r6215270, r6215271, r6215272, r6215273, r6215274, r6215275, r6215276, r6215277, r6215278, r6215279, r6215280, r6215281, r6215282, r6215283, r6215284, r6215285, r6215286, r6215287, r6215288, r6215289;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r6215256);
        mpfr_init_set_str(r6215257, "-1.8153117305948415e+64", 10, MPFR_RNDN);
        mpfr_init(r6215258);
        mpfr_init(r6215259);
        mpfr_init(r6215260);
        mpfr_init(r6215261);
        mpfr_init(r6215262);
        mpfr_init(r6215263);
        mpfr_init(r6215264);
        mpfr_init(r6215265);
        mpfr_init(r6215266);
        mpfr_init_set_str(r6215267, "-3.094295121454133e-56", 10, MPFR_RNDN);
        mpfr_init(r6215268);
        mpfr_init_set_str(r6215269, "4", 10, MPFR_RNDN);
        mpfr_init(r6215270);
        mpfr_init(r6215271);
        mpfr_init(r6215272);
        mpfr_init(r6215273);
        mpfr_init(r6215274);
        mpfr_init(r6215275);
        mpfr_init(r6215276);
        mpfr_init(r6215277);
        mpfr_init_set_str(r6215278, "-3.561741947451724e-87", 10, MPFR_RNDN);
        mpfr_init(r6215279);
        mpfr_init_set_str(r6215280, "6.484638702286054e+45", 10, MPFR_RNDN);
        mpfr_init(r6215281);
        mpfr_init(r6215282);
        mpfr_init(r6215283);
        mpfr_init(r6215284);
        mpfr_init(r6215285);
        mpfr_init(r6215286);
        mpfr_init(r6215287);
        mpfr_init(r6215288);
        mpfr_init(r6215289);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r6215256, b, MPFR_RNDN);
        ;
        mpfr_set_si(r6215258, mpfr_cmp(r6215256, r6215257) <= 0, MPFR_RNDN);
        mpfr_neg(r6215259, r6215256, MPFR_RNDN);
        mpfr_add(r6215260, r6215259, r6215256, MPFR_RNDN);
        mpfr_set_d(r6215261, a, MPFR_RNDN);
        mpfr_add(r6215262, r6215261, r6215261, MPFR_RNDN);
        mpfr_div(r6215263, r6215260, r6215262, MPFR_RNDN);
        mpfr_set_d(r6215264, c, MPFR_RNDN);
        mpfr_div(r6215265, r6215264, r6215256, MPFR_RNDN);
        mpfr_sub(r6215266, r6215263, r6215265, MPFR_RNDN);
        ;
        mpfr_set_si(r6215268, mpfr_cmp(r6215256, r6215267) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r6215270, r6215264, r6215261, MPFR_RNDN);
        mpfr_mul(r6215271, r6215269, r6215270, MPFR_RNDN);
        mpfr_div(r6215272, r6215271, r6215262, MPFR_RNDN);
        mpfr_mul(r6215273, r6215256, r6215256, MPFR_RNDN);
        mpfr_sub(r6215274, r6215273, r6215271, MPFR_RNDN);
        mpfr_sqrt(r6215275, r6215274, MPFR_RNDN);
        mpfr_add(r6215276, r6215259, r6215275, MPFR_RNDN);
        mpfr_div(r6215277, r6215272, r6215276, MPFR_RNDN);
        ;
        mpfr_set_si(r6215279, mpfr_cmp(r6215256, r6215278) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r6215281, mpfr_cmp(r6215256, r6215280) <= 0, MPFR_RNDN);
        mpfr_sub(r6215282, r6215259, r6215275, MPFR_RNDN);
        mpfr_div(r6215283, r6215282, r6215262, MPFR_RNDN);
        mpfr_div(r6215284, r6215256, r6215261, MPFR_RNDN);
        mpfr_sub(r6215285, r6215265, r6215284, MPFR_RNDN);
        if (mpfr_get_si(r6215281, MPFR_RNDN)) { mpfr_set(r6215286, r6215283, MPFR_RNDN); } else { mpfr_set(r6215286, r6215285, MPFR_RNDN); };
        if (mpfr_get_si(r6215279, MPFR_RNDN)) { mpfr_set(r6215287, r6215266, MPFR_RNDN); } else { mpfr_set(r6215287, r6215286, MPFR_RNDN); };
        if (mpfr_get_si(r6215268, MPFR_RNDN)) { mpfr_set(r6215288, r6215277, MPFR_RNDN); } else { mpfr_set(r6215288, r6215287, MPFR_RNDN); };
        if (mpfr_get_si(r6215258, MPFR_RNDN)) { mpfr_set(r6215289, r6215266, MPFR_RNDN); } else { mpfr_set(r6215289, r6215288, MPFR_RNDN); };
        return mpfr_get_d(r6215289, MPFR_RNDN);
}

static mpfr_t r6215290, r6215291, r6215292, r6215293, r6215294, r6215295, r6215296, r6215297, r6215298, r6215299, r6215300, r6215301, r6215302, r6215303, r6215304, r6215305, r6215306, r6215307, r6215308, r6215309, r6215310, r6215311, r6215312, r6215313, r6215314, r6215315, r6215316, r6215317, r6215318, r6215319, r6215320, r6215321, r6215322, r6215323;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r6215290);
        mpfr_init_set_str(r6215291, "-1.8153117305948415e+64", 10, MPFR_RNDN);
        mpfr_init(r6215292);
        mpfr_init(r6215293);
        mpfr_init(r6215294);
        mpfr_init(r6215295);
        mpfr_init(r6215296);
        mpfr_init(r6215297);
        mpfr_init(r6215298);
        mpfr_init(r6215299);
        mpfr_init(r6215300);
        mpfr_init_set_str(r6215301, "-3.094295121454133e-56", 10, MPFR_RNDN);
        mpfr_init(r6215302);
        mpfr_init_set_str(r6215303, "4", 10, MPFR_RNDN);
        mpfr_init(r6215304);
        mpfr_init(r6215305);
        mpfr_init(r6215306);
        mpfr_init(r6215307);
        mpfr_init(r6215308);
        mpfr_init(r6215309);
        mpfr_init(r6215310);
        mpfr_init(r6215311);
        mpfr_init_set_str(r6215312, "-3.561741947451724e-87", 10, MPFR_RNDN);
        mpfr_init(r6215313);
        mpfr_init_set_str(r6215314, "6.484638702286054e+45", 10, MPFR_RNDN);
        mpfr_init(r6215315);
        mpfr_init(r6215316);
        mpfr_init(r6215317);
        mpfr_init(r6215318);
        mpfr_init(r6215319);
        mpfr_init(r6215320);
        mpfr_init(r6215321);
        mpfr_init(r6215322);
        mpfr_init(r6215323);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r6215290, b, MPFR_RNDN);
        ;
        mpfr_set_si(r6215292, mpfr_cmp(r6215290, r6215291) <= 0, MPFR_RNDN);
        mpfr_neg(r6215293, r6215290, MPFR_RNDN);
        mpfr_add(r6215294, r6215293, r6215290, MPFR_RNDN);
        mpfr_set_d(r6215295, a, MPFR_RNDN);
        mpfr_add(r6215296, r6215295, r6215295, MPFR_RNDN);
        mpfr_div(r6215297, r6215294, r6215296, MPFR_RNDN);
        mpfr_set_d(r6215298, c, MPFR_RNDN);
        mpfr_div(r6215299, r6215298, r6215290, MPFR_RNDN);
        mpfr_sub(r6215300, r6215297, r6215299, MPFR_RNDN);
        ;
        mpfr_set_si(r6215302, mpfr_cmp(r6215290, r6215301) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r6215304, r6215298, r6215295, MPFR_RNDN);
        mpfr_mul(r6215305, r6215303, r6215304, MPFR_RNDN);
        mpfr_div(r6215306, r6215305, r6215296, MPFR_RNDN);
        mpfr_mul(r6215307, r6215290, r6215290, MPFR_RNDN);
        mpfr_sub(r6215308, r6215307, r6215305, MPFR_RNDN);
        mpfr_sqrt(r6215309, r6215308, MPFR_RNDN);
        mpfr_add(r6215310, r6215293, r6215309, MPFR_RNDN);
        mpfr_div(r6215311, r6215306, r6215310, MPFR_RNDN);
        ;
        mpfr_set_si(r6215313, mpfr_cmp(r6215290, r6215312) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r6215315, mpfr_cmp(r6215290, r6215314) <= 0, MPFR_RNDN);
        mpfr_sub(r6215316, r6215293, r6215309, MPFR_RNDN);
        mpfr_div(r6215317, r6215316, r6215296, MPFR_RNDN);
        mpfr_div(r6215318, r6215290, r6215295, MPFR_RNDN);
        mpfr_sub(r6215319, r6215299, r6215318, MPFR_RNDN);
        if (mpfr_get_si(r6215315, MPFR_RNDN)) { mpfr_set(r6215320, r6215317, MPFR_RNDN); } else { mpfr_set(r6215320, r6215319, MPFR_RNDN); };
        if (mpfr_get_si(r6215313, MPFR_RNDN)) { mpfr_set(r6215321, r6215300, MPFR_RNDN); } else { mpfr_set(r6215321, r6215320, MPFR_RNDN); };
        if (mpfr_get_si(r6215302, MPFR_RNDN)) { mpfr_set(r6215322, r6215311, MPFR_RNDN); } else { mpfr_set(r6215322, r6215321, MPFR_RNDN); };
        if (mpfr_get_si(r6215292, MPFR_RNDN)) { mpfr_set(r6215323, r6215300, MPFR_RNDN); } else { mpfr_set(r6215323, r6215322, MPFR_RNDN); };
        return mpfr_get_d(r6215323, MPFR_RNDN);
}

