#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 r26216 = b;
        float r26217 = -r26216;
        float r26218 = r26216 * r26216;
        float r26219 = 4;
        float r26220 = a;
        float r26221 = c;
        float r26222 = r26220 * r26221;
        float r26223 = r26219 * r26222;
        float r26224 = r26218 - r26223;
        float r26225 = sqrt(r26224);
        float r26226 = r26217 - r26225;
        float r26227 = 2;
        float r26228 = r26227 * r26220;
        float r26229 = r26226 / r26228;
        return r26229;
}

double f_id(double a, double b, double c) {
        double r26230 = b;
        double r26231 = -r26230;
        double r26232 = r26230 * r26230;
        double r26233 = 4;
        double r26234 = a;
        double r26235 = c;
        double r26236 = r26234 * r26235;
        double r26237 = r26233 * r26236;
        double r26238 = r26232 - r26237;
        double r26239 = sqrt(r26238);
        double r26240 = r26231 - r26239;
        double r26241 = 2;
        double r26242 = r26241 * r26234;
        double r26243 = r26240 / r26242;
        return r26243;
}


double f_of(float a, float b, float c) {
        float r26244 = b;
        float r26245 = -1.0382791888278103e+18;
        bool r26246 = r26244 <= r26245;
        float r26247 = c;
        float r26248 = -r26247;
        float r26249 = r26248 / r26244;
        float r26250 = -1.646726526061279e-83;
        bool r26251 = r26244 <= r26250;
        float r26252 = a;
        float r26253 = r26252 * r26247;
        float r26254 = 4;
        float r26255 = r26253 * r26254;
        float r26256 = r26244 * r26244;
        float r26257 = r26254 * r26247;
        float r26258 = r26252 * r26257;
        float r26259 = r26256 - r26258;
        float r26260 = sqrt(r26259);
        float r26261 = r26260 - r26244;
        float r26262 = r26255 / r26261;
        float r26263 = 2;
        float r26264 = r26263 * r26252;
        float r26265 = r26262 / r26264;
        float r26266 = 6.1215294067371146e+134;
        bool r26267 = r26244 <= r26266;
        float r26268 = -r26244;
        float r26269 = r26268 / r26264;
        float r26270 = r26256 - r26255;
        float r26271 = sqrt(r26270);
        float r26272 = r26271 / r26264;
        float r26273 = r26269 - r26272;
        float r26274 = r26268 / r26252;
        float r26275 = r26267 ? r26273 : r26274;
        float r26276 = r26251 ? r26265 : r26275;
        float r26277 = r26246 ? r26249 : r26276;
        return r26277;
}

double f_od(double a, double b, double c) {
        double r26278 = b;
        double r26279 = -1.0382791888278103e+18;
        bool r26280 = r26278 <= r26279;
        double r26281 = c;
        double r26282 = -r26281;
        double r26283 = r26282 / r26278;
        double r26284 = -1.646726526061279e-83;
        bool r26285 = r26278 <= r26284;
        double r26286 = a;
        double r26287 = r26286 * r26281;
        double r26288 = 4;
        double r26289 = r26287 * r26288;
        double r26290 = r26278 * r26278;
        double r26291 = r26288 * r26281;
        double r26292 = r26286 * r26291;
        double r26293 = r26290 - r26292;
        double r26294 = sqrt(r26293);
        double r26295 = r26294 - r26278;
        double r26296 = r26289 / r26295;
        double r26297 = 2;
        double r26298 = r26297 * r26286;
        double r26299 = r26296 / r26298;
        double r26300 = 6.1215294067371146e+134;
        bool r26301 = r26278 <= r26300;
        double r26302 = -r26278;
        double r26303 = r26302 / r26298;
        double r26304 = r26290 - r26289;
        double r26305 = sqrt(r26304);
        double r26306 = r26305 / r26298;
        double r26307 = r26303 - r26306;
        double r26308 = r26302 / r26286;
        double r26309 = r26301 ? r26307 : r26308;
        double r26310 = r26285 ? r26299 : r26309;
        double r26311 = r26280 ? r26283 : r26310;
        return r26311;
}

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 r26312, r26313, r26314, r26315, r26316, r26317, r26318, r26319, r26320, r26321, r26322, r26323, r26324, r26325;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26312);
        mpfr_init(r26313);
        mpfr_init(r26314);
        mpfr_init_set_str(r26315, "4", 10, MPFR_RNDN);
        mpfr_init(r26316);
        mpfr_init(r26317);
        mpfr_init(r26318);
        mpfr_init(r26319);
        mpfr_init(r26320);
        mpfr_init(r26321);
        mpfr_init(r26322);
        mpfr_init_set_str(r26323, "2", 10, MPFR_RNDN);
        mpfr_init(r26324);
        mpfr_init(r26325);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r26312, b, MPFR_RNDN);
        mpfr_neg(r26313, r26312, MPFR_RNDN);
        mpfr_mul(r26314, r26312, r26312, MPFR_RNDN);
        ;
        mpfr_set_d(r26316, a, MPFR_RNDN);
        mpfr_set_d(r26317, c, MPFR_RNDN);
        mpfr_mul(r26318, r26316, r26317, MPFR_RNDN);
        mpfr_mul(r26319, r26315, r26318, MPFR_RNDN);
        mpfr_sub(r26320, r26314, r26319, MPFR_RNDN);
        mpfr_sqrt(r26321, r26320, MPFR_RNDN);
        mpfr_sub(r26322, r26313, r26321, MPFR_RNDN);
        ;
        mpfr_mul(r26324, r26323, r26316, MPFR_RNDN);
        mpfr_div(r26325, r26322, r26324, MPFR_RNDN);
        return mpfr_get_d(r26325, MPFR_RNDN);
}

static mpfr_t r26326, r26327, r26328, r26329, r26330, r26331, r26332, r26333, r26334, r26335, r26336, r26337, r26338, r26339, r26340, r26341, r26342, r26343, r26344, r26345, r26346, r26347, r26348, r26349, r26350, r26351, r26352, r26353, r26354, r26355, r26356, r26357, r26358, r26359;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26326);
        mpfr_init_set_str(r26327, "-1.0382791888278103e+18", 10, MPFR_RNDN);
        mpfr_init(r26328);
        mpfr_init(r26329);
        mpfr_init(r26330);
        mpfr_init(r26331);
        mpfr_init_set_str(r26332, "-1.646726526061279e-83", 10, MPFR_RNDN);
        mpfr_init(r26333);
        mpfr_init(r26334);
        mpfr_init(r26335);
        mpfr_init_set_str(r26336, "4", 10, MPFR_RNDN);
        mpfr_init(r26337);
        mpfr_init(r26338);
        mpfr_init(r26339);
        mpfr_init(r26340);
        mpfr_init(r26341);
        mpfr_init(r26342);
        mpfr_init(r26343);
        mpfr_init(r26344);
        mpfr_init_set_str(r26345, "2", 10, MPFR_RNDN);
        mpfr_init(r26346);
        mpfr_init(r26347);
        mpfr_init_set_str(r26348, "6.1215294067371146e+134", 10, MPFR_RNDN);
        mpfr_init(r26349);
        mpfr_init(r26350);
        mpfr_init(r26351);
        mpfr_init(r26352);
        mpfr_init(r26353);
        mpfr_init(r26354);
        mpfr_init(r26355);
        mpfr_init(r26356);
        mpfr_init(r26357);
        mpfr_init(r26358);
        mpfr_init(r26359);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r26326, b, MPFR_RNDN);
        ;
        mpfr_set_si(r26328, mpfr_cmp(r26326, r26327) <= 0, MPFR_RNDN);
        mpfr_set_d(r26329, c, MPFR_RNDN);
        mpfr_neg(r26330, r26329, MPFR_RNDN);
        mpfr_div(r26331, r26330, r26326, MPFR_RNDN);
        ;
        mpfr_set_si(r26333, mpfr_cmp(r26326, r26332) <= 0, MPFR_RNDN);
        mpfr_set_d(r26334, a, MPFR_RNDN);
        mpfr_mul(r26335, r26334, r26329, MPFR_RNDN);
        ;
        mpfr_mul(r26337, r26335, r26336, MPFR_RNDN);
        mpfr_mul(r26338, r26326, r26326, MPFR_RNDN);
        mpfr_mul(r26339, r26336, r26329, MPFR_RNDN);
        mpfr_mul(r26340, r26334, r26339, MPFR_RNDN);
        mpfr_sub(r26341, r26338, r26340, MPFR_RNDN);
        mpfr_sqrt(r26342, r26341, MPFR_RNDN);
        mpfr_sub(r26343, r26342, r26326, MPFR_RNDN);
        mpfr_div(r26344, r26337, r26343, MPFR_RNDN);
        ;
        mpfr_mul(r26346, r26345, r26334, MPFR_RNDN);
        mpfr_div(r26347, r26344, r26346, MPFR_RNDN);
        ;
        mpfr_set_si(r26349, mpfr_cmp(r26326, r26348) <= 0, MPFR_RNDN);
        mpfr_neg(r26350, r26326, MPFR_RNDN);
        mpfr_div(r26351, r26350, r26346, MPFR_RNDN);
        mpfr_sub(r26352, r26338, r26337, MPFR_RNDN);
        mpfr_sqrt(r26353, r26352, MPFR_RNDN);
        mpfr_div(r26354, r26353, r26346, MPFR_RNDN);
        mpfr_sub(r26355, r26351, r26354, MPFR_RNDN);
        mpfr_div(r26356, r26350, r26334, MPFR_RNDN);
        if (mpfr_get_si(r26349, MPFR_RNDN)) { mpfr_set(r26357, r26355, MPFR_RNDN); } else { mpfr_set(r26357, r26356, MPFR_RNDN); };
        if (mpfr_get_si(r26333, MPFR_RNDN)) { mpfr_set(r26358, r26347, MPFR_RNDN); } else { mpfr_set(r26358, r26357, MPFR_RNDN); };
        if (mpfr_get_si(r26328, MPFR_RNDN)) { mpfr_set(r26359, r26331, MPFR_RNDN); } else { mpfr_set(r26359, r26358, MPFR_RNDN); };
        return mpfr_get_d(r26359, MPFR_RNDN);
}

static mpfr_t r26360, r26361, r26362, r26363, r26364, r26365, r26366, r26367, r26368, r26369, r26370, r26371, r26372, r26373, r26374, r26375, r26376, r26377, r26378, r26379, r26380, r26381, r26382, r26383, r26384, r26385, r26386, r26387, r26388, r26389, r26390, r26391, r26392, r26393;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26360);
        mpfr_init_set_str(r26361, "-1.0382791888278103e+18", 10, MPFR_RNDN);
        mpfr_init(r26362);
        mpfr_init(r26363);
        mpfr_init(r26364);
        mpfr_init(r26365);
        mpfr_init_set_str(r26366, "-1.646726526061279e-83", 10, MPFR_RNDN);
        mpfr_init(r26367);
        mpfr_init(r26368);
        mpfr_init(r26369);
        mpfr_init_set_str(r26370, "4", 10, MPFR_RNDN);
        mpfr_init(r26371);
        mpfr_init(r26372);
        mpfr_init(r26373);
        mpfr_init(r26374);
        mpfr_init(r26375);
        mpfr_init(r26376);
        mpfr_init(r26377);
        mpfr_init(r26378);
        mpfr_init_set_str(r26379, "2", 10, MPFR_RNDN);
        mpfr_init(r26380);
        mpfr_init(r26381);
        mpfr_init_set_str(r26382, "6.1215294067371146e+134", 10, MPFR_RNDN);
        mpfr_init(r26383);
        mpfr_init(r26384);
        mpfr_init(r26385);
        mpfr_init(r26386);
        mpfr_init(r26387);
        mpfr_init(r26388);
        mpfr_init(r26389);
        mpfr_init(r26390);
        mpfr_init(r26391);
        mpfr_init(r26392);
        mpfr_init(r26393);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r26360, b, MPFR_RNDN);
        ;
        mpfr_set_si(r26362, mpfr_cmp(r26360, r26361) <= 0, MPFR_RNDN);
        mpfr_set_d(r26363, c, MPFR_RNDN);
        mpfr_neg(r26364, r26363, MPFR_RNDN);
        mpfr_div(r26365, r26364, r26360, MPFR_RNDN);
        ;
        mpfr_set_si(r26367, mpfr_cmp(r26360, r26366) <= 0, MPFR_RNDN);
        mpfr_set_d(r26368, a, MPFR_RNDN);
        mpfr_mul(r26369, r26368, r26363, MPFR_RNDN);
        ;
        mpfr_mul(r26371, r26369, r26370, MPFR_RNDN);
        mpfr_mul(r26372, r26360, r26360, MPFR_RNDN);
        mpfr_mul(r26373, r26370, r26363, MPFR_RNDN);
        mpfr_mul(r26374, r26368, r26373, MPFR_RNDN);
        mpfr_sub(r26375, r26372, r26374, MPFR_RNDN);
        mpfr_sqrt(r26376, r26375, MPFR_RNDN);
        mpfr_sub(r26377, r26376, r26360, MPFR_RNDN);
        mpfr_div(r26378, r26371, r26377, MPFR_RNDN);
        ;
        mpfr_mul(r26380, r26379, r26368, MPFR_RNDN);
        mpfr_div(r26381, r26378, r26380, MPFR_RNDN);
        ;
        mpfr_set_si(r26383, mpfr_cmp(r26360, r26382) <= 0, MPFR_RNDN);
        mpfr_neg(r26384, r26360, MPFR_RNDN);
        mpfr_div(r26385, r26384, r26380, MPFR_RNDN);
        mpfr_sub(r26386, r26372, r26371, MPFR_RNDN);
        mpfr_sqrt(r26387, r26386, MPFR_RNDN);
        mpfr_div(r26388, r26387, r26380, MPFR_RNDN);
        mpfr_sub(r26389, r26385, r26388, MPFR_RNDN);
        mpfr_div(r26390, r26384, r26368, MPFR_RNDN);
        if (mpfr_get_si(r26383, MPFR_RNDN)) { mpfr_set(r26391, r26389, MPFR_RNDN); } else { mpfr_set(r26391, r26390, MPFR_RNDN); };
        if (mpfr_get_si(r26367, MPFR_RNDN)) { mpfr_set(r26392, r26381, MPFR_RNDN); } else { mpfr_set(r26392, r26391, MPFR_RNDN); };
        if (mpfr_get_si(r26362, MPFR_RNDN)) { mpfr_set(r26393, r26365, MPFR_RNDN); } else { mpfr_set(r26393, r26392, MPFR_RNDN); };
        return mpfr_get_d(r26393, MPFR_RNDN);
}

