#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 r26150 = b;
        float r26151 = -r26150;
        float r26152 = r26150 * r26150;
        float r26153 = 4;
        float r26154 = a;
        float r26155 = c;
        float r26156 = r26154 * r26155;
        float r26157 = r26153 * r26156;
        float r26158 = r26152 - r26157;
        float r26159 = sqrt(r26158);
        float r26160 = r26151 - r26159;
        float r26161 = 2;
        float r26162 = r26161 * r26154;
        float r26163 = r26160 / r26162;
        return r26163;
}

double f_id(double a, double b, double c) {
        double r26164 = b;
        double r26165 = -r26164;
        double r26166 = r26164 * r26164;
        double r26167 = 4;
        double r26168 = a;
        double r26169 = c;
        double r26170 = r26168 * r26169;
        double r26171 = r26167 * r26170;
        double r26172 = r26166 - r26171;
        double r26173 = sqrt(r26172);
        double r26174 = r26165 - r26173;
        double r26175 = 2;
        double r26176 = r26175 * r26168;
        double r26177 = r26174 / r26176;
        return r26177;
}


double f_of(float a, float b, float c) {
        float r26178 = b;
        float r26179 = -r26178;
        float r26180 = -1.326360219085368e+146;
        bool r26181 = r26179 <= r26180;
        float r26182 = c;
        float r26183 = r26182 / r26178;
        float r26184 = a;
        float r26185 = r26178 / r26184;
        float r26186 = r26183 - r26185;
        float r26187 = 8.38108018569379e-191;
        bool r26188 = r26179 <= r26187;
        float r26189 = 1;
        float r26190 = 2;
        float r26191 = r26184 * r26190;
        float r26192 = r26189 / r26191;
        float r26193 = r26178 * r26178;
        float r26194 = 4;
        float r26195 = r26184 * r26182;
        float r26196 = r26194 * r26195;
        float r26197 = r26193 - r26196;
        float r26198 = sqrt(r26197);
        float r26199 = r26179 - r26198;
        float r26200 = r26192 * r26199;
        float r26201 = 5.0965211703824674e-15;
        bool r26202 = r26179 <= r26201;
        float r26203 = r26194 * r26182;
        float r26204 = r26203 * r26184;
        float r26205 = r26193 - r26204;
        float r26206 = sqrt(r26205);
        float r26207 = r26206 - r26178;
        float r26208 = r26196 / r26207;
        float r26209 = r26208 / r26191;
        float r26210 = -2;
        float r26211 = r26210 / r26190;
        float r26212 = r26183 * r26211;
        float r26213 = r26202 ? r26209 : r26212;
        float r26214 = r26188 ? r26200 : r26213;
        float r26215 = r26181 ? r26186 : r26214;
        return r26215;
}

double f_od(double a, double b, double c) {
        double r26216 = b;
        double r26217 = -r26216;
        double r26218 = -1.326360219085368e+146;
        bool r26219 = r26217 <= r26218;
        double r26220 = c;
        double r26221 = r26220 / r26216;
        double r26222 = a;
        double r26223 = r26216 / r26222;
        double r26224 = r26221 - r26223;
        double r26225 = 8.38108018569379e-191;
        bool r26226 = r26217 <= r26225;
        double r26227 = 1;
        double r26228 = 2;
        double r26229 = r26222 * r26228;
        double r26230 = r26227 / r26229;
        double r26231 = r26216 * r26216;
        double r26232 = 4;
        double r26233 = r26222 * r26220;
        double r26234 = r26232 * r26233;
        double r26235 = r26231 - r26234;
        double r26236 = sqrt(r26235);
        double r26237 = r26217 - r26236;
        double r26238 = r26230 * r26237;
        double r26239 = 5.0965211703824674e-15;
        bool r26240 = r26217 <= r26239;
        double r26241 = r26232 * r26220;
        double r26242 = r26241 * r26222;
        double r26243 = r26231 - r26242;
        double r26244 = sqrt(r26243);
        double r26245 = r26244 - r26216;
        double r26246 = r26234 / r26245;
        double r26247 = r26246 / r26229;
        double r26248 = -2;
        double r26249 = r26248 / r26228;
        double r26250 = r26221 * r26249;
        double r26251 = r26240 ? r26247 : r26250;
        double r26252 = r26226 ? r26238 : r26251;
        double r26253 = r26219 ? r26224 : r26252;
        return r26253;
}

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 r26254, r26255, r26256, r26257, r26258, r26259, r26260, r26261, r26262, r26263, r26264, r26265, r26266, r26267;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26254);
        mpfr_init(r26255);
        mpfr_init(r26256);
        mpfr_init_set_str(r26257, "4", 10, MPFR_RNDN);
        mpfr_init(r26258);
        mpfr_init(r26259);
        mpfr_init(r26260);
        mpfr_init(r26261);
        mpfr_init(r26262);
        mpfr_init(r26263);
        mpfr_init(r26264);
        mpfr_init_set_str(r26265, "2", 10, MPFR_RNDN);
        mpfr_init(r26266);
        mpfr_init(r26267);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r26254, b, MPFR_RNDN);
        mpfr_neg(r26255, r26254, MPFR_RNDN);
        mpfr_mul(r26256, r26254, r26254, MPFR_RNDN);
        ;
        mpfr_set_d(r26258, a, MPFR_RNDN);
        mpfr_set_d(r26259, c, MPFR_RNDN);
        mpfr_mul(r26260, r26258, r26259, MPFR_RNDN);
        mpfr_mul(r26261, r26257, r26260, MPFR_RNDN);
        mpfr_sub(r26262, r26256, r26261, MPFR_RNDN);
        mpfr_sqrt(r26263, r26262, MPFR_RNDN);
        mpfr_sub(r26264, r26255, r26263, MPFR_RNDN);
        ;
        mpfr_mul(r26266, r26265, r26258, MPFR_RNDN);
        mpfr_div(r26267, r26264, r26266, MPFR_RNDN);
        return mpfr_get_d(r26267, MPFR_RNDN);
}

static mpfr_t r26268, r26269, r26270, r26271, r26272, r26273, r26274, r26275, r26276, r26277, r26278, r26279, r26280, r26281, r26282, r26283, r26284, r26285, r26286, r26287, r26288, r26289, r26290, r26291, r26292, r26293, r26294, r26295, r26296, r26297, r26298, r26299, r26300, r26301, r26302, r26303, r26304, r26305;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26268);
        mpfr_init(r26269);
        mpfr_init_set_str(r26270, "-1.326360219085368e+146", 10, MPFR_RNDN);
        mpfr_init(r26271);
        mpfr_init(r26272);
        mpfr_init(r26273);
        mpfr_init(r26274);
        mpfr_init(r26275);
        mpfr_init(r26276);
        mpfr_init_set_str(r26277, "8.38108018569379e-191", 10, MPFR_RNDN);
        mpfr_init(r26278);
        mpfr_init_set_str(r26279, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26280, "2", 10, MPFR_RNDN);
        mpfr_init(r26281);
        mpfr_init(r26282);
        mpfr_init(r26283);
        mpfr_init_set_str(r26284, "4", 10, MPFR_RNDN);
        mpfr_init(r26285);
        mpfr_init(r26286);
        mpfr_init(r26287);
        mpfr_init(r26288);
        mpfr_init(r26289);
        mpfr_init(r26290);
        mpfr_init_set_str(r26291, "5.0965211703824674e-15", 10, MPFR_RNDN);
        mpfr_init(r26292);
        mpfr_init(r26293);
        mpfr_init(r26294);
        mpfr_init(r26295);
        mpfr_init(r26296);
        mpfr_init(r26297);
        mpfr_init(r26298);
        mpfr_init(r26299);
        mpfr_init_set_str(r26300, "-2", 10, MPFR_RNDN);
        mpfr_init(r26301);
        mpfr_init(r26302);
        mpfr_init(r26303);
        mpfr_init(r26304);
        mpfr_init(r26305);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r26268, b, MPFR_RNDN);
        mpfr_neg(r26269, r26268, MPFR_RNDN);
        ;
        mpfr_set_si(r26271, mpfr_cmp(r26269, r26270) <= 0, MPFR_RNDN);
        mpfr_set_d(r26272, c, MPFR_RNDN);
        mpfr_div(r26273, r26272, r26268, MPFR_RNDN);
        mpfr_set_d(r26274, a, MPFR_RNDN);
        mpfr_div(r26275, r26268, r26274, MPFR_RNDN);
        mpfr_sub(r26276, r26273, r26275, MPFR_RNDN);
        ;
        mpfr_set_si(r26278, mpfr_cmp(r26269, r26277) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26281, r26274, r26280, MPFR_RNDN);
        mpfr_div(r26282, r26279, r26281, MPFR_RNDN);
        mpfr_mul(r26283, r26268, r26268, MPFR_RNDN);
        ;
        mpfr_mul(r26285, r26274, r26272, MPFR_RNDN);
        mpfr_mul(r26286, r26284, r26285, MPFR_RNDN);
        mpfr_sub(r26287, r26283, r26286, MPFR_RNDN);
        mpfr_sqrt(r26288, r26287, MPFR_RNDN);
        mpfr_sub(r26289, r26269, r26288, MPFR_RNDN);
        mpfr_mul(r26290, r26282, r26289, MPFR_RNDN);
        ;
        mpfr_set_si(r26292, mpfr_cmp(r26269, r26291) <= 0, MPFR_RNDN);
        mpfr_mul(r26293, r26284, r26272, MPFR_RNDN);
        mpfr_mul(r26294, r26293, r26274, MPFR_RNDN);
        mpfr_sub(r26295, r26283, r26294, MPFR_RNDN);
        mpfr_sqrt(r26296, r26295, MPFR_RNDN);
        mpfr_sub(r26297, r26296, r26268, MPFR_RNDN);
        mpfr_div(r26298, r26286, r26297, MPFR_RNDN);
        mpfr_div(r26299, r26298, r26281, MPFR_RNDN);
        ;
        mpfr_div(r26301, r26300, r26280, MPFR_RNDN);
        mpfr_mul(r26302, r26273, r26301, MPFR_RNDN);
        if (mpfr_get_si(r26292, MPFR_RNDN)) { mpfr_set(r26303, r26299, MPFR_RNDN); } else { mpfr_set(r26303, r26302, MPFR_RNDN); };
        if (mpfr_get_si(r26278, MPFR_RNDN)) { mpfr_set(r26304, r26290, MPFR_RNDN); } else { mpfr_set(r26304, r26303, MPFR_RNDN); };
        if (mpfr_get_si(r26271, MPFR_RNDN)) { mpfr_set(r26305, r26276, MPFR_RNDN); } else { mpfr_set(r26305, r26304, MPFR_RNDN); };
        return mpfr_get_d(r26305, MPFR_RNDN);
}

static mpfr_t r26306, r26307, r26308, r26309, r26310, r26311, r26312, r26313, r26314, r26315, r26316, r26317, r26318, r26319, r26320, r26321, r26322, r26323, r26324, r26325, r26326, r26327, r26328, r26329, r26330, r26331, r26332, r26333, r26334, r26335, r26336, r26337, r26338, r26339, r26340, r26341, r26342, r26343;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26306);
        mpfr_init(r26307);
        mpfr_init_set_str(r26308, "-1.326360219085368e+146", 10, MPFR_RNDN);
        mpfr_init(r26309);
        mpfr_init(r26310);
        mpfr_init(r26311);
        mpfr_init(r26312);
        mpfr_init(r26313);
        mpfr_init(r26314);
        mpfr_init_set_str(r26315, "8.38108018569379e-191", 10, MPFR_RNDN);
        mpfr_init(r26316);
        mpfr_init_set_str(r26317, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26318, "2", 10, MPFR_RNDN);
        mpfr_init(r26319);
        mpfr_init(r26320);
        mpfr_init(r26321);
        mpfr_init_set_str(r26322, "4", 10, MPFR_RNDN);
        mpfr_init(r26323);
        mpfr_init(r26324);
        mpfr_init(r26325);
        mpfr_init(r26326);
        mpfr_init(r26327);
        mpfr_init(r26328);
        mpfr_init_set_str(r26329, "5.0965211703824674e-15", 10, MPFR_RNDN);
        mpfr_init(r26330);
        mpfr_init(r26331);
        mpfr_init(r26332);
        mpfr_init(r26333);
        mpfr_init(r26334);
        mpfr_init(r26335);
        mpfr_init(r26336);
        mpfr_init(r26337);
        mpfr_init_set_str(r26338, "-2", 10, MPFR_RNDN);
        mpfr_init(r26339);
        mpfr_init(r26340);
        mpfr_init(r26341);
        mpfr_init(r26342);
        mpfr_init(r26343);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r26306, b, MPFR_RNDN);
        mpfr_neg(r26307, r26306, MPFR_RNDN);
        ;
        mpfr_set_si(r26309, mpfr_cmp(r26307, r26308) <= 0, MPFR_RNDN);
        mpfr_set_d(r26310, c, MPFR_RNDN);
        mpfr_div(r26311, r26310, r26306, MPFR_RNDN);
        mpfr_set_d(r26312, a, MPFR_RNDN);
        mpfr_div(r26313, r26306, r26312, MPFR_RNDN);
        mpfr_sub(r26314, r26311, r26313, MPFR_RNDN);
        ;
        mpfr_set_si(r26316, mpfr_cmp(r26307, r26315) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26319, r26312, r26318, MPFR_RNDN);
        mpfr_div(r26320, r26317, r26319, MPFR_RNDN);
        mpfr_mul(r26321, r26306, r26306, MPFR_RNDN);
        ;
        mpfr_mul(r26323, r26312, r26310, MPFR_RNDN);
        mpfr_mul(r26324, r26322, r26323, MPFR_RNDN);
        mpfr_sub(r26325, r26321, r26324, MPFR_RNDN);
        mpfr_sqrt(r26326, r26325, MPFR_RNDN);
        mpfr_sub(r26327, r26307, r26326, MPFR_RNDN);
        mpfr_mul(r26328, r26320, r26327, MPFR_RNDN);
        ;
        mpfr_set_si(r26330, mpfr_cmp(r26307, r26329) <= 0, MPFR_RNDN);
        mpfr_mul(r26331, r26322, r26310, MPFR_RNDN);
        mpfr_mul(r26332, r26331, r26312, MPFR_RNDN);
        mpfr_sub(r26333, r26321, r26332, MPFR_RNDN);
        mpfr_sqrt(r26334, r26333, MPFR_RNDN);
        mpfr_sub(r26335, r26334, r26306, MPFR_RNDN);
        mpfr_div(r26336, r26324, r26335, MPFR_RNDN);
        mpfr_div(r26337, r26336, r26319, MPFR_RNDN);
        ;
        mpfr_div(r26339, r26338, r26318, MPFR_RNDN);
        mpfr_mul(r26340, r26311, r26339, MPFR_RNDN);
        if (mpfr_get_si(r26330, MPFR_RNDN)) { mpfr_set(r26341, r26337, MPFR_RNDN); } else { mpfr_set(r26341, r26340, MPFR_RNDN); };
        if (mpfr_get_si(r26316, MPFR_RNDN)) { mpfr_set(r26342, r26328, MPFR_RNDN); } else { mpfr_set(r26342, r26341, MPFR_RNDN); };
        if (mpfr_get_si(r26309, MPFR_RNDN)) { mpfr_set(r26343, r26314, MPFR_RNDN); } else { mpfr_set(r26343, r26342, MPFR_RNDN); };
        return mpfr_get_d(r26343, MPFR_RNDN);
}

