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

char *name = "Cubic critical";

double f_if(float a, float b, float c, float __attribute__((unused)) d) {
        float r26344 = b;
        float r26345 = -r26344;
        float r26346 = r26344 * r26344;
        float r26347 = 3;
        float r26348 = a;
        float r26349 = r26347 * r26348;
        float r26350 = c;
        float r26351 = r26349 * r26350;
        float r26352 = r26346 - r26351;
        float r26353 = sqrt(r26352);
        float r26354 = r26345 + r26353;
        float r26355 = r26354 / r26349;
        return r26355;
}

double f_id(double a, double b, double c, double __attribute__((unused)) d) {
        double r26356 = b;
        double r26357 = -r26356;
        double r26358 = r26356 * r26356;
        double r26359 = 3;
        double r26360 = a;
        double r26361 = r26359 * r26360;
        double r26362 = c;
        double r26363 = r26361 * r26362;
        double r26364 = r26358 - r26363;
        double r26365 = sqrt(r26364);
        double r26366 = r26357 + r26365;
        double r26367 = r26366 / r26361;
        return r26367;
}


double f_of(float a, float b, float c, float __attribute__((unused)) d) {
        float r26368 = 1;
        float r26369 = 3;
        float r26370 = r26368 / r26369;
        float r26371 = a;
        float r26372 = r26369 * r26371;
        float r26373 = c;
        float r26374 = -r26373;
        float r26375 = b;
        float r26376 = r26375 * r26375;
        float r26377 = fma(r26372, r26374, r26376);
        float r26378 = sqrt(r26377);
        float r26379 = r26378 - r26375;
        float r26380 = log(r26379);
        float r26381 = exp(r26380);
        float r26382 = r26381 / r26371;
        float r26383 = r26370 * r26382;
        float r26384 = -2.212765075172074e+292;
        bool r26385 = r26383 <= r26384;
        float r26386 = -2;
        float r26387 = r26373 / r26386;
        float r26388 = r26387 / r26375;
        float r26389 = -2.226407994696937e-279;
        bool r26390 = r26383 <= r26389;
        float r26391 = r26379 / r26372;
        float r26392 = 4.8143301513763585e-290;
        bool r26393 = r26383 <= r26392;
        float r26394 = 6.034710991470305e+294;
        bool r26395 = r26383 <= r26394;
        float r26396 = r26395 ? r26391 : r26388;
        float r26397 = r26393 ? r26388 : r26396;
        float r26398 = r26390 ? r26391 : r26397;
        float r26399 = r26385 ? r26388 : r26398;
        return r26399;
}

double f_od(double a, double b, double c, double __attribute__((unused)) d) {
        double r26400 = 1;
        double r26401 = 3;
        double r26402 = r26400 / r26401;
        double r26403 = a;
        double r26404 = r26401 * r26403;
        double r26405 = c;
        double r26406 = -r26405;
        double r26407 = b;
        double r26408 = r26407 * r26407;
        double r26409 = fma(r26404, r26406, r26408);
        double r26410 = sqrt(r26409);
        double r26411 = r26410 - r26407;
        double r26412 = log(r26411);
        double r26413 = exp(r26412);
        double r26414 = r26413 / r26403;
        double r26415 = r26402 * r26414;
        double r26416 = -2.212765075172074e+292;
        bool r26417 = r26415 <= r26416;
        double r26418 = -2;
        double r26419 = r26405 / r26418;
        double r26420 = r26419 / r26407;
        double r26421 = -2.226407994696937e-279;
        bool r26422 = r26415 <= r26421;
        double r26423 = r26411 / r26404;
        double r26424 = 4.8143301513763585e-290;
        bool r26425 = r26415 <= r26424;
        double r26426 = 6.034710991470305e+294;
        bool r26427 = r26415 <= r26426;
        double r26428 = r26427 ? r26423 : r26420;
        double r26429 = r26425 ? r26420 : r26428;
        double r26430 = r26422 ? r26423 : r26429;
        double r26431 = r26417 ? r26420 : r26430;
        return r26431;
}

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 r26432, r26433, r26434, r26435, r26436, r26437, r26438, r26439, r26440, r26441, r26442, r26443;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26432);
        mpfr_init(r26433);
        mpfr_init(r26434);
        mpfr_init_set_str(r26435, "3", 10, MPFR_RNDN);
        mpfr_init(r26436);
        mpfr_init(r26437);
        mpfr_init(r26438);
        mpfr_init(r26439);
        mpfr_init(r26440);
        mpfr_init(r26441);
        mpfr_init(r26442);
        mpfr_init(r26443);
}

double f_im(double a, double b, double c, double __attribute__((unused)) d) {
        mpfr_set_d(r26432, b, MPFR_RNDN);
        mpfr_neg(r26433, r26432, MPFR_RNDN);
        mpfr_mul(r26434, r26432, r26432, MPFR_RNDN);
        ;
        mpfr_set_d(r26436, a, MPFR_RNDN);
        mpfr_mul(r26437, r26435, r26436, MPFR_RNDN);
        mpfr_set_d(r26438, c, MPFR_RNDN);
        mpfr_mul(r26439, r26437, r26438, MPFR_RNDN);
        mpfr_sub(r26440, r26434, r26439, MPFR_RNDN);
        mpfr_sqrt(r26441, r26440, MPFR_RNDN);
        mpfr_add(r26442, r26433, r26441, MPFR_RNDN);
        mpfr_div(r26443, r26442, r26437, MPFR_RNDN);
        return mpfr_get_d(r26443, MPFR_RNDN);
}

static mpfr_t r26444, r26445, r26446, r26447, r26448, r26449, r26450, r26451, r26452, r26453, r26454, r26455, r26456, r26457, r26458, r26459, r26460, r26461, r26462, r26463, r26464, r26465, r26466, r26467, r26468, r26469, r26470, r26471, r26472, r26473, r26474, r26475;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r26444, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26445, "3", 10, MPFR_RNDN);
        mpfr_init(r26446);
        mpfr_init(r26447);
        mpfr_init(r26448);
        mpfr_init(r26449);
        mpfr_init(r26450);
        mpfr_init(r26451);
        mpfr_init(r26452);
        mpfr_init(r26453);
        mpfr_init(r26454);
        mpfr_init(r26455);
        mpfr_init(r26456);
        mpfr_init(r26457);
        mpfr_init(r26458);
        mpfr_init(r26459);
        mpfr_init_set_str(r26460, "-2.212765075172074e+292", 10, MPFR_RNDN);
        mpfr_init(r26461);
        mpfr_init_set_str(r26462, "-2", 10, MPFR_RNDN);
        mpfr_init(r26463);
        mpfr_init(r26464);
        mpfr_init_set_str(r26465, "-2.226407994696937e-279", 10, MPFR_RNDN);
        mpfr_init(r26466);
        mpfr_init(r26467);
        mpfr_init_set_str(r26468, "4.8143301513763585e-290", 10, MPFR_RNDN);
        mpfr_init(r26469);
        mpfr_init_set_str(r26470, "6.034710991470305e+294", 10, MPFR_RNDN);
        mpfr_init(r26471);
        mpfr_init(r26472);
        mpfr_init(r26473);
        mpfr_init(r26474);
        mpfr_init(r26475);
}

double f_fm(double a, double b, double c, double __attribute__((unused)) d) {
        ;
        ;
        mpfr_div(r26446, r26444, r26445, MPFR_RNDN);
        mpfr_set_d(r26447, a, MPFR_RNDN);
        mpfr_mul(r26448, r26445, r26447, MPFR_RNDN);
        mpfr_set_d(r26449, c, MPFR_RNDN);
        mpfr_neg(r26450, r26449, MPFR_RNDN);
        mpfr_set_d(r26451, b, MPFR_RNDN);
        mpfr_mul(r26452, r26451, r26451, MPFR_RNDN);
        mpfr_fma(r26453, r26448, r26450, r26452, MPFR_RNDN);
        mpfr_sqrt(r26454, r26453, MPFR_RNDN);
        mpfr_sub(r26455, r26454, r26451, MPFR_RNDN);
        mpfr_log(r26456, r26455, MPFR_RNDN);
        mpfr_exp(r26457, r26456, MPFR_RNDN);
        mpfr_div(r26458, r26457, r26447, MPFR_RNDN);
        mpfr_mul(r26459, r26446, r26458, MPFR_RNDN);
        ;
        mpfr_set_si(r26461, mpfr_cmp(r26459, r26460) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r26463, r26449, r26462, MPFR_RNDN);
        mpfr_div(r26464, r26463, r26451, MPFR_RNDN);
        ;
        mpfr_set_si(r26466, mpfr_cmp(r26459, r26465) <= 0, MPFR_RNDN);
        mpfr_div(r26467, r26455, r26448, MPFR_RNDN);
        ;
        mpfr_set_si(r26469, mpfr_cmp(r26459, r26468) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26471, mpfr_cmp(r26459, r26470) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r26471, MPFR_RNDN)) { mpfr_set(r26472, r26467, MPFR_RNDN); } else { mpfr_set(r26472, r26464, MPFR_RNDN); };
        if (mpfr_get_si(r26469, MPFR_RNDN)) { mpfr_set(r26473, r26464, MPFR_RNDN); } else { mpfr_set(r26473, r26472, MPFR_RNDN); };
        if (mpfr_get_si(r26466, MPFR_RNDN)) { mpfr_set(r26474, r26467, MPFR_RNDN); } else { mpfr_set(r26474, r26473, MPFR_RNDN); };
        if (mpfr_get_si(r26461, MPFR_RNDN)) { mpfr_set(r26475, r26464, MPFR_RNDN); } else { mpfr_set(r26475, r26474, MPFR_RNDN); };
        return mpfr_get_d(r26475, MPFR_RNDN);
}

static mpfr_t r26476, r26477, r26478, r26479, r26480, r26481, r26482, r26483, r26484, r26485, r26486, r26487, r26488, r26489, r26490, r26491, r26492, r26493, r26494, r26495, r26496, r26497, r26498, r26499, r26500, r26501, r26502, r26503, r26504, r26505, r26506, r26507;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r26476, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26477, "3", 10, MPFR_RNDN);
        mpfr_init(r26478);
        mpfr_init(r26479);
        mpfr_init(r26480);
        mpfr_init(r26481);
        mpfr_init(r26482);
        mpfr_init(r26483);
        mpfr_init(r26484);
        mpfr_init(r26485);
        mpfr_init(r26486);
        mpfr_init(r26487);
        mpfr_init(r26488);
        mpfr_init(r26489);
        mpfr_init(r26490);
        mpfr_init(r26491);
        mpfr_init_set_str(r26492, "-2.212765075172074e+292", 10, MPFR_RNDN);
        mpfr_init(r26493);
        mpfr_init_set_str(r26494, "-2", 10, MPFR_RNDN);
        mpfr_init(r26495);
        mpfr_init(r26496);
        mpfr_init_set_str(r26497, "-2.226407994696937e-279", 10, MPFR_RNDN);
        mpfr_init(r26498);
        mpfr_init(r26499);
        mpfr_init_set_str(r26500, "4.8143301513763585e-290", 10, MPFR_RNDN);
        mpfr_init(r26501);
        mpfr_init_set_str(r26502, "6.034710991470305e+294", 10, MPFR_RNDN);
        mpfr_init(r26503);
        mpfr_init(r26504);
        mpfr_init(r26505);
        mpfr_init(r26506);
        mpfr_init(r26507);
}

double f_dm(double a, double b, double c, double __attribute__((unused)) d) {
        ;
        ;
        mpfr_div(r26478, r26476, r26477, MPFR_RNDN);
        mpfr_set_d(r26479, a, MPFR_RNDN);
        mpfr_mul(r26480, r26477, r26479, MPFR_RNDN);
        mpfr_set_d(r26481, c, MPFR_RNDN);
        mpfr_neg(r26482, r26481, MPFR_RNDN);
        mpfr_set_d(r26483, b, MPFR_RNDN);
        mpfr_mul(r26484, r26483, r26483, MPFR_RNDN);
        mpfr_fma(r26485, r26480, r26482, r26484, MPFR_RNDN);
        mpfr_sqrt(r26486, r26485, MPFR_RNDN);
        mpfr_sub(r26487, r26486, r26483, MPFR_RNDN);
        mpfr_log(r26488, r26487, MPFR_RNDN);
        mpfr_exp(r26489, r26488, MPFR_RNDN);
        mpfr_div(r26490, r26489, r26479, MPFR_RNDN);
        mpfr_mul(r26491, r26478, r26490, MPFR_RNDN);
        ;
        mpfr_set_si(r26493, mpfr_cmp(r26491, r26492) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r26495, r26481, r26494, MPFR_RNDN);
        mpfr_div(r26496, r26495, r26483, MPFR_RNDN);
        ;
        mpfr_set_si(r26498, mpfr_cmp(r26491, r26497) <= 0, MPFR_RNDN);
        mpfr_div(r26499, r26487, r26480, MPFR_RNDN);
        ;
        mpfr_set_si(r26501, mpfr_cmp(r26491, r26500) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26503, mpfr_cmp(r26491, r26502) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r26503, MPFR_RNDN)) { mpfr_set(r26504, r26499, MPFR_RNDN); } else { mpfr_set(r26504, r26496, MPFR_RNDN); };
        if (mpfr_get_si(r26501, MPFR_RNDN)) { mpfr_set(r26505, r26496, MPFR_RNDN); } else { mpfr_set(r26505, r26504, MPFR_RNDN); };
        if (mpfr_get_si(r26498, MPFR_RNDN)) { mpfr_set(r26506, r26499, MPFR_RNDN); } else { mpfr_set(r26506, r26505, MPFR_RNDN); };
        if (mpfr_get_si(r26493, MPFR_RNDN)) { mpfr_set(r26507, r26496, MPFR_RNDN); } else { mpfr_set(r26507, r26506, MPFR_RNDN); };
        return mpfr_get_d(r26507, MPFR_RNDN);
}

