#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 r5181140 = b;
        float r5181141 = -r5181140;
        float r5181142 = r5181140 * r5181140;
        float r5181143 = 4.0f;
        float r5181144 = a;
        float r5181145 = c;
        float r5181146 = r5181144 * r5181145;
        float r5181147 = r5181143 * r5181146;
        float r5181148 = r5181142 - r5181147;
        float r5181149 = sqrt(r5181148);
        float r5181150 = r5181141 - r5181149;
        float r5181151 = 2.0f;
        float r5181152 = r5181151 * r5181144;
        float r5181153 = r5181150 / r5181152;
        return r5181153;
}

double f_id(double a, double b, double c) {
        double r5181154 = b;
        double r5181155 = -r5181154;
        double r5181156 = r5181154 * r5181154;
        double r5181157 = 4.0;
        double r5181158 = a;
        double r5181159 = c;
        double r5181160 = r5181158 * r5181159;
        double r5181161 = r5181157 * r5181160;
        double r5181162 = r5181156 - r5181161;
        double r5181163 = sqrt(r5181162);
        double r5181164 = r5181155 - r5181163;
        double r5181165 = 2.0;
        double r5181166 = r5181165 * r5181158;
        double r5181167 = r5181164 / r5181166;
        return r5181167;
}


double f_of(float a, float b, float c) {
        float r5181168 = b;
        float r5181169 = -2.4297612505128895e+125f;
        bool r5181170 = r5181168 <= r5181169;
        float r5181171 = c;
        float r5181172 = 2.0f;
        float r5181173 = r5181171 / r5181172;
        float r5181174 = 4.0f;
        float r5181175 = r5181173 * r5181174;
        float r5181176 = r5181171 + r5181171;
        float r5181177 = a;
        float r5181178 = r5181168 / r5181177;
        float r5181179 = r5181176 / r5181178;
        float r5181180 = -r5181168;
        float r5181181 = r5181168 - r5181180;
        float r5181182 = r5181179 - r5181181;
        float r5181183 = r5181175 / r5181182;
        float r5181184 = 7.873756563569149e-300f;
        bool r5181185 = r5181168 <= r5181184;
        float r5181186 = r5181174 / r5181172;
        float r5181187 = r5181168 * r5181168;
        float r5181188 = r5181171 * r5181174;
        float r5181189 = r5181177 * r5181188;
        float r5181190 = r5181187 - r5181189;
        float r5181191 = sqrt(r5181190);
        float r5181192 = r5181180 + r5181191;
        float r5181193 = r5181171 / r5181192;
        float r5181194 = r5181186 * r5181193;
        float r5181195 = 1.5428617303718363e+108f;
        bool r5181196 = r5181168 <= r5181195;
        float r5181197 = r5181168 * r5181168;
        float r5181198 = r5181177 * r5181171;
        float r5181199 = r5181174 * r5181198;
        float r5181200 = r5181197 - r5181199;
        float r5181201 = sqrt(r5181200);
        float r5181202 = r5181180 - r5181201;
        float r5181203 = 1.0f;
        float r5181204 = r5181172 * r5181177;
        float r5181205 = r5181203 / r5181204;
        float r5181206 = r5181202 * r5181205;
        float r5181207 = r5181180 / r5181177;
        float r5181208 = r5181196 ? r5181206 : r5181207;
        float r5181209 = r5181185 ? r5181194 : r5181208;
        float r5181210 = r5181170 ? r5181183 : r5181209;
        return r5181210;
}

double f_od(double a, double b, double c) {
        double r5181211 = b;
        double r5181212 = -2.4297612505128895e+125;
        bool r5181213 = r5181211 <= r5181212;
        double r5181214 = c;
        double r5181215 = 2.0;
        double r5181216 = r5181214 / r5181215;
        double r5181217 = 4.0;
        double r5181218 = r5181216 * r5181217;
        double r5181219 = r5181214 + r5181214;
        double r5181220 = a;
        double r5181221 = r5181211 / r5181220;
        double r5181222 = r5181219 / r5181221;
        double r5181223 = -r5181211;
        double r5181224 = r5181211 - r5181223;
        double r5181225 = r5181222 - r5181224;
        double r5181226 = r5181218 / r5181225;
        double r5181227 = 7.873756563569149e-300;
        bool r5181228 = r5181211 <= r5181227;
        double r5181229 = r5181217 / r5181215;
        double r5181230 = r5181211 * r5181211;
        double r5181231 = r5181214 * r5181217;
        double r5181232 = r5181220 * r5181231;
        double r5181233 = r5181230 - r5181232;
        double r5181234 = sqrt(r5181233);
        double r5181235 = r5181223 + r5181234;
        double r5181236 = r5181214 / r5181235;
        double r5181237 = r5181229 * r5181236;
        double r5181238 = 1.5428617303718363e+108;
        bool r5181239 = r5181211 <= r5181238;
        double r5181240 = r5181211 * r5181211;
        double r5181241 = r5181220 * r5181214;
        double r5181242 = r5181217 * r5181241;
        double r5181243 = r5181240 - r5181242;
        double r5181244 = sqrt(r5181243);
        double r5181245 = r5181223 - r5181244;
        double r5181246 = 1.0;
        double r5181247 = r5181215 * r5181220;
        double r5181248 = r5181246 / r5181247;
        double r5181249 = r5181245 * r5181248;
        double r5181250 = r5181223 / r5181220;
        double r5181251 = r5181239 ? r5181249 : r5181250;
        double r5181252 = r5181228 ? r5181237 : r5181251;
        double r5181253 = r5181213 ? r5181226 : r5181252;
        return r5181253;
}

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 r5181254, r5181255, r5181256, r5181257, r5181258, r5181259, r5181260, r5181261, r5181262, r5181263, r5181264, r5181265, r5181266, r5181267;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2960);
        mpfr_init(r5181254);
        mpfr_init(r5181255);
        mpfr_init(r5181256);
        mpfr_init_set_str(r5181257, "4", 10, MPFR_RNDN);
        mpfr_init(r5181258);
        mpfr_init(r5181259);
        mpfr_init(r5181260);
        mpfr_init(r5181261);
        mpfr_init(r5181262);
        mpfr_init(r5181263);
        mpfr_init(r5181264);
        mpfr_init_set_str(r5181265, "2", 10, MPFR_RNDN);
        mpfr_init(r5181266);
        mpfr_init(r5181267);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r5181254, b, MPFR_RNDN);
        mpfr_neg(r5181255, r5181254, MPFR_RNDN);
        mpfr_sqr(r5181256, r5181254, MPFR_RNDN);
        ;
        mpfr_set_d(r5181258, a, MPFR_RNDN);
        mpfr_set_d(r5181259, c, MPFR_RNDN);
        mpfr_mul(r5181260, r5181258, r5181259, MPFR_RNDN);
        mpfr_mul(r5181261, r5181257, r5181260, MPFR_RNDN);
        mpfr_sub(r5181262, r5181256, r5181261, MPFR_RNDN);
        mpfr_sqrt(r5181263, r5181262, MPFR_RNDN);
        mpfr_sub(r5181264, r5181255, r5181263, MPFR_RNDN);
        ;
        mpfr_mul(r5181266, r5181265, r5181258, MPFR_RNDN);
        mpfr_div(r5181267, r5181264, r5181266, MPFR_RNDN);
        return mpfr_get_d(r5181267, MPFR_RNDN);
}

static mpfr_t r5181268, r5181269, r5181270, r5181271, r5181272, r5181273, r5181274, r5181275, r5181276, r5181277, r5181278, r5181279, r5181280, r5181281, r5181282, r5181283, r5181284, r5181285, r5181286, r5181287, r5181288, r5181289, r5181290, r5181291, r5181292, r5181293, r5181294, r5181295, r5181296, r5181297, r5181298, r5181299, r5181300, r5181301, r5181302, r5181303, r5181304, r5181305, r5181306, r5181307, r5181308, r5181309, r5181310;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r5181268);
        mpfr_init_set_str(r5181269, "-2.4297612505128895e+125", 10, MPFR_RNDN);
        mpfr_init(r5181270);
        mpfr_init(r5181271);
        mpfr_init_set_str(r5181272, "2", 10, MPFR_RNDN);
        mpfr_init(r5181273);
        mpfr_init_set_str(r5181274, "4", 10, MPFR_RNDN);
        mpfr_init(r5181275);
        mpfr_init(r5181276);
        mpfr_init(r5181277);
        mpfr_init(r5181278);
        mpfr_init(r5181279);
        mpfr_init(r5181280);
        mpfr_init(r5181281);
        mpfr_init(r5181282);
        mpfr_init(r5181283);
        mpfr_init_set_str(r5181284, "7.873756563569149e-300", 10, MPFR_RNDN);
        mpfr_init(r5181285);
        mpfr_init(r5181286);
        mpfr_init(r5181287);
        mpfr_init(r5181288);
        mpfr_init(r5181289);
        mpfr_init(r5181290);
        mpfr_init(r5181291);
        mpfr_init(r5181292);
        mpfr_init(r5181293);
        mpfr_init(r5181294);
        mpfr_init_set_str(r5181295, "1.5428617303718363e+108", 10, MPFR_RNDN);
        mpfr_init(r5181296);
        mpfr_init(r5181297);
        mpfr_init(r5181298);
        mpfr_init(r5181299);
        mpfr_init(r5181300);
        mpfr_init(r5181301);
        mpfr_init(r5181302);
        mpfr_init_set_str(r5181303, "1", 10, MPFR_RNDN);
        mpfr_init(r5181304);
        mpfr_init(r5181305);
        mpfr_init(r5181306);
        mpfr_init(r5181307);
        mpfr_init(r5181308);
        mpfr_init(r5181309);
        mpfr_init(r5181310);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r5181268, b, MPFR_RNDN);
        ;
        mpfr_set_si(r5181270, mpfr_cmp(r5181268, r5181269) <= 0, MPFR_RNDN);
        mpfr_set_d(r5181271, c, MPFR_RNDN);
        ;
        mpfr_div(r5181273, r5181271, r5181272, MPFR_RNDN);
        ;
        mpfr_mul(r5181275, r5181273, r5181274, MPFR_RNDN);
        mpfr_add(r5181276, r5181271, r5181271, MPFR_RNDN);
        mpfr_set_d(r5181277, a, MPFR_RNDN);
        mpfr_div(r5181278, r5181268, r5181277, MPFR_RNDN);
        mpfr_div(r5181279, r5181276, r5181278, MPFR_RNDN);
        mpfr_neg(r5181280, r5181268, MPFR_RNDN);
        mpfr_sub(r5181281, r5181268, r5181280, MPFR_RNDN);
        mpfr_sub(r5181282, r5181279, r5181281, MPFR_RNDN);
        mpfr_div(r5181283, r5181275, r5181282, MPFR_RNDN);
        ;
        mpfr_set_si(r5181285, mpfr_cmp(r5181268, r5181284) <= 0, MPFR_RNDN);
        mpfr_div(r5181286, r5181274, r5181272, MPFR_RNDN);
        mpfr_mul(r5181287, r5181268, r5181268, MPFR_RNDN);
        mpfr_mul(r5181288, r5181271, r5181274, MPFR_RNDN);
        mpfr_mul(r5181289, r5181277, r5181288, MPFR_RNDN);
        mpfr_sub(r5181290, r5181287, r5181289, MPFR_RNDN);
        mpfr_sqrt(r5181291, r5181290, MPFR_RNDN);
        mpfr_add(r5181292, r5181280, r5181291, MPFR_RNDN);
        mpfr_div(r5181293, r5181271, r5181292, MPFR_RNDN);
        mpfr_mul(r5181294, r5181286, r5181293, MPFR_RNDN);
        ;
        mpfr_set_si(r5181296, mpfr_cmp(r5181268, r5181295) <= 0, MPFR_RNDN);
        mpfr_sqr(r5181297, r5181268, MPFR_RNDN);
        mpfr_mul(r5181298, r5181277, r5181271, MPFR_RNDN);
        mpfr_mul(r5181299, r5181274, r5181298, MPFR_RNDN);
        mpfr_sub(r5181300, r5181297, r5181299, MPFR_RNDN);
        mpfr_sqrt(r5181301, r5181300, MPFR_RNDN);
        mpfr_sub(r5181302, r5181280, r5181301, MPFR_RNDN);
        ;
        mpfr_mul(r5181304, r5181272, r5181277, MPFR_RNDN);
        mpfr_div(r5181305, r5181303, r5181304, MPFR_RNDN);
        mpfr_mul(r5181306, r5181302, r5181305, MPFR_RNDN);
        mpfr_div(r5181307, r5181280, r5181277, MPFR_RNDN);
        if (mpfr_get_si(r5181296, MPFR_RNDN)) { mpfr_set(r5181308, r5181306, MPFR_RNDN); } else { mpfr_set(r5181308, r5181307, MPFR_RNDN); };
        if (mpfr_get_si(r5181285, MPFR_RNDN)) { mpfr_set(r5181309, r5181294, MPFR_RNDN); } else { mpfr_set(r5181309, r5181308, MPFR_RNDN); };
        if (mpfr_get_si(r5181270, MPFR_RNDN)) { mpfr_set(r5181310, r5181283, MPFR_RNDN); } else { mpfr_set(r5181310, r5181309, MPFR_RNDN); };
        return mpfr_get_d(r5181310, MPFR_RNDN);
}

static mpfr_t r5181311, r5181312, r5181313, r5181314, r5181315, r5181316, r5181317, r5181318, r5181319, r5181320, r5181321, r5181322, r5181323, r5181324, r5181325, r5181326, r5181327, r5181328, r5181329, r5181330, r5181331, r5181332, r5181333, r5181334, r5181335, r5181336, r5181337, r5181338, r5181339, r5181340, r5181341, r5181342, r5181343, r5181344, r5181345, r5181346, r5181347, r5181348, r5181349, r5181350, r5181351, r5181352, r5181353;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r5181311);
        mpfr_init_set_str(r5181312, "-2.4297612505128895e+125", 10, MPFR_RNDN);
        mpfr_init(r5181313);
        mpfr_init(r5181314);
        mpfr_init_set_str(r5181315, "2", 10, MPFR_RNDN);
        mpfr_init(r5181316);
        mpfr_init_set_str(r5181317, "4", 10, MPFR_RNDN);
        mpfr_init(r5181318);
        mpfr_init(r5181319);
        mpfr_init(r5181320);
        mpfr_init(r5181321);
        mpfr_init(r5181322);
        mpfr_init(r5181323);
        mpfr_init(r5181324);
        mpfr_init(r5181325);
        mpfr_init(r5181326);
        mpfr_init_set_str(r5181327, "7.873756563569149e-300", 10, MPFR_RNDN);
        mpfr_init(r5181328);
        mpfr_init(r5181329);
        mpfr_init(r5181330);
        mpfr_init(r5181331);
        mpfr_init(r5181332);
        mpfr_init(r5181333);
        mpfr_init(r5181334);
        mpfr_init(r5181335);
        mpfr_init(r5181336);
        mpfr_init(r5181337);
        mpfr_init_set_str(r5181338, "1.5428617303718363e+108", 10, MPFR_RNDN);
        mpfr_init(r5181339);
        mpfr_init(r5181340);
        mpfr_init(r5181341);
        mpfr_init(r5181342);
        mpfr_init(r5181343);
        mpfr_init(r5181344);
        mpfr_init(r5181345);
        mpfr_init_set_str(r5181346, "1", 10, MPFR_RNDN);
        mpfr_init(r5181347);
        mpfr_init(r5181348);
        mpfr_init(r5181349);
        mpfr_init(r5181350);
        mpfr_init(r5181351);
        mpfr_init(r5181352);
        mpfr_init(r5181353);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r5181311, b, MPFR_RNDN);
        ;
        mpfr_set_si(r5181313, mpfr_cmp(r5181311, r5181312) <= 0, MPFR_RNDN);
        mpfr_set_d(r5181314, c, MPFR_RNDN);
        ;
        mpfr_div(r5181316, r5181314, r5181315, MPFR_RNDN);
        ;
        mpfr_mul(r5181318, r5181316, r5181317, MPFR_RNDN);
        mpfr_add(r5181319, r5181314, r5181314, MPFR_RNDN);
        mpfr_set_d(r5181320, a, MPFR_RNDN);
        mpfr_div(r5181321, r5181311, r5181320, MPFR_RNDN);
        mpfr_div(r5181322, r5181319, r5181321, MPFR_RNDN);
        mpfr_neg(r5181323, r5181311, MPFR_RNDN);
        mpfr_sub(r5181324, r5181311, r5181323, MPFR_RNDN);
        mpfr_sub(r5181325, r5181322, r5181324, MPFR_RNDN);
        mpfr_div(r5181326, r5181318, r5181325, MPFR_RNDN);
        ;
        mpfr_set_si(r5181328, mpfr_cmp(r5181311, r5181327) <= 0, MPFR_RNDN);
        mpfr_div(r5181329, r5181317, r5181315, MPFR_RNDN);
        mpfr_mul(r5181330, r5181311, r5181311, MPFR_RNDN);
        mpfr_mul(r5181331, r5181314, r5181317, MPFR_RNDN);
        mpfr_mul(r5181332, r5181320, r5181331, MPFR_RNDN);
        mpfr_sub(r5181333, r5181330, r5181332, MPFR_RNDN);
        mpfr_sqrt(r5181334, r5181333, MPFR_RNDN);
        mpfr_add(r5181335, r5181323, r5181334, MPFR_RNDN);
        mpfr_div(r5181336, r5181314, r5181335, MPFR_RNDN);
        mpfr_mul(r5181337, r5181329, r5181336, MPFR_RNDN);
        ;
        mpfr_set_si(r5181339, mpfr_cmp(r5181311, r5181338) <= 0, MPFR_RNDN);
        mpfr_sqr(r5181340, r5181311, MPFR_RNDN);
        mpfr_mul(r5181341, r5181320, r5181314, MPFR_RNDN);
        mpfr_mul(r5181342, r5181317, r5181341, MPFR_RNDN);
        mpfr_sub(r5181343, r5181340, r5181342, MPFR_RNDN);
        mpfr_sqrt(r5181344, r5181343, MPFR_RNDN);
        mpfr_sub(r5181345, r5181323, r5181344, MPFR_RNDN);
        ;
        mpfr_mul(r5181347, r5181315, r5181320, MPFR_RNDN);
        mpfr_div(r5181348, r5181346, r5181347, MPFR_RNDN);
        mpfr_mul(r5181349, r5181345, r5181348, MPFR_RNDN);
        mpfr_div(r5181350, r5181323, r5181320, MPFR_RNDN);
        if (mpfr_get_si(r5181339, MPFR_RNDN)) { mpfr_set(r5181351, r5181349, MPFR_RNDN); } else { mpfr_set(r5181351, r5181350, MPFR_RNDN); };
        if (mpfr_get_si(r5181328, MPFR_RNDN)) { mpfr_set(r5181352, r5181337, MPFR_RNDN); } else { mpfr_set(r5181352, r5181351, MPFR_RNDN); };
        if (mpfr_get_si(r5181313, MPFR_RNDN)) { mpfr_set(r5181353, r5181326, MPFR_RNDN); } else { mpfr_set(r5181353, r5181352, MPFR_RNDN); };
        return mpfr_get_d(r5181353, MPFR_RNDN);
}

