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

char *name = "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1";

double f_if(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r11439 = x;
        float r11440 = 18.0;
        float r11441 = r11439 * r11440;
        float r11442 = y;
        float r11443 = r11441 * r11442;
        float r11444 = z;
        float r11445 = r11443 * r11444;
        float r11446 = t;
        float r11447 = r11445 * r11446;
        float r11448 = a;
        float r11449 = 4.0;
        float r11450 = r11448 * r11449;
        float r11451 = r11450 * r11446;
        float r11452 = r11447 - r11451;
        float r11453 = b;
        float r11454 = c;
        float r11455 = r11453 * r11454;
        float r11456 = r11452 + r11455;
        float r11457 = r11439 * r11449;
        float r11458 = i;
        float r11459 = r11457 * r11458;
        float r11460 = r11456 - r11459;
        float r11461 = j;
        float r11462 = 27.0;
        float r11463 = r11461 * r11462;
        float r11464 = k;
        float r11465 = r11463 * r11464;
        float r11466 = r11460 - r11465;
        return r11466;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r11467 = x;
        double r11468 = 18.0;
        double r11469 = r11467 * r11468;
        double r11470 = y;
        double r11471 = r11469 * r11470;
        double r11472 = z;
        double r11473 = r11471 * r11472;
        double r11474 = t;
        double r11475 = r11473 * r11474;
        double r11476 = a;
        double r11477 = 4.0;
        double r11478 = r11476 * r11477;
        double r11479 = r11478 * r11474;
        double r11480 = r11475 - r11479;
        double r11481 = b;
        double r11482 = c;
        double r11483 = r11481 * r11482;
        double r11484 = r11480 + r11483;
        double r11485 = r11467 * r11477;
        double r11486 = i;
        double r11487 = r11485 * r11486;
        double r11488 = r11484 - r11487;
        double r11489 = j;
        double r11490 = 27.0;
        double r11491 = r11489 * r11490;
        double r11492 = k;
        double r11493 = r11491 * r11492;
        double r11494 = r11488 - r11493;
        return r11494;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r11495 = y;
        float r11496 = t;
        float r11497 = r11495 * r11496;
        float r11498 = 18.0;
        float r11499 = z;
        float r11500 = x;
        float r11501 = r11499 * r11500;
        float r11502 = r11498 * r11501;
        float r11503 = c;
        float r11504 = b;
        float r11505 = r11503 * r11504;
        float r11506 = fma(r11497, r11502, r11505);
        float r11507 = 4.0;
        float r11508 = i;
        float r11509 = r11508 * r11500;
        float r11510 = a;
        float r11511 = r11496 * r11510;
        float r11512 = r11509 + r11511;
        float r11513 = r11507 * r11512;
        float r11514 = r11506 - r11513;
        float r11515 = 27.0;
        float r11516 = j;
        float r11517 = r11515 * r11516;
        float r11518 = k;
        float r11519 = r11517 * r11518;
        float r11520 = cbrt(r11519);
        float r11521 = r11520 * r11520;
        float r11522 = r11520 * r11521;
        float r11523 = r11514 - r11522;
        float r11524 = -1.6592942571381438e+308;
        bool r11525 = r11523 <= r11524;
        float r11526 = r11498 * r11500;
        float r11527 = r11499 * r11495;
        float r11528 = r11526 * r11527;
        float r11529 = r11510 * r11507;
        float r11530 = -r11496;
        float r11531 = fma(r11529, r11530, r11505);
        float r11532 = fma(r11496, r11528, r11531);
        float r11533 = r11518 * r11515;
        float r11534 = r11507 * r11500;
        float r11535 = r11508 * r11534;
        float r11536 = fma(r11516, r11533, r11535);
        float r11537 = r11532 - r11536;
        float r11538 = 7.62134266190491e+299;
        bool r11539 = r11523 <= r11538;
        float r11540 = fma(r11530, r11529, r11505);
        float r11541 = r11518 * r11516;
        float r11542 = r11541 * r11515;
        float r11543 = fma(r11507, r11509, r11542);
        float r11544 = r11540 - r11543;
        float r11545 = r11539 ? r11523 : r11544;
        float r11546 = r11525 ? r11537 : r11545;
        return r11546;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r11547 = y;
        double r11548 = t;
        double r11549 = r11547 * r11548;
        double r11550 = 18.0;
        double r11551 = z;
        double r11552 = x;
        double r11553 = r11551 * r11552;
        double r11554 = r11550 * r11553;
        double r11555 = c;
        double r11556 = b;
        double r11557 = r11555 * r11556;
        double r11558 = fma(r11549, r11554, r11557);
        double r11559 = 4.0;
        double r11560 = i;
        double r11561 = r11560 * r11552;
        double r11562 = a;
        double r11563 = r11548 * r11562;
        double r11564 = r11561 + r11563;
        double r11565 = r11559 * r11564;
        double r11566 = r11558 - r11565;
        double r11567 = 27.0;
        double r11568 = j;
        double r11569 = r11567 * r11568;
        double r11570 = k;
        double r11571 = r11569 * r11570;
        double r11572 = cbrt(r11571);
        double r11573 = r11572 * r11572;
        double r11574 = r11572 * r11573;
        double r11575 = r11566 - r11574;
        double r11576 = -1.6592942571381438e+308;
        bool r11577 = r11575 <= r11576;
        double r11578 = r11550 * r11552;
        double r11579 = r11551 * r11547;
        double r11580 = r11578 * r11579;
        double r11581 = r11562 * r11559;
        double r11582 = -r11548;
        double r11583 = fma(r11581, r11582, r11557);
        double r11584 = fma(r11548, r11580, r11583);
        double r11585 = r11570 * r11567;
        double r11586 = r11559 * r11552;
        double r11587 = r11560 * r11586;
        double r11588 = fma(r11568, r11585, r11587);
        double r11589 = r11584 - r11588;
        double r11590 = 7.62134266190491e+299;
        bool r11591 = r11575 <= r11590;
        double r11592 = fma(r11582, r11581, r11557);
        double r11593 = r11570 * r11568;
        double r11594 = r11593 * r11567;
        double r11595 = fma(r11559, r11561, r11594);
        double r11596 = r11592 - r11595;
        double r11597 = r11591 ? r11575 : r11596;
        double r11598 = r11577 ? r11589 : r11597;
        return r11598;
}

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 r11599, r11600, r11601, r11602, r11603, r11604, r11605, r11606, r11607, r11608, r11609, r11610, r11611, r11612, r11613, r11614, r11615, r11616, r11617, r11618, r11619, r11620, r11621, r11622, r11623, r11624, r11625, r11626;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r11599);
        mpfr_init_set_str(r11600, "18.0", 10, MPFR_RNDN);
        mpfr_init(r11601);
        mpfr_init(r11602);
        mpfr_init(r11603);
        mpfr_init(r11604);
        mpfr_init(r11605);
        mpfr_init(r11606);
        mpfr_init(r11607);
        mpfr_init(r11608);
        mpfr_init_set_str(r11609, "4.0", 10, MPFR_RNDN);
        mpfr_init(r11610);
        mpfr_init(r11611);
        mpfr_init(r11612);
        mpfr_init(r11613);
        mpfr_init(r11614);
        mpfr_init(r11615);
        mpfr_init(r11616);
        mpfr_init(r11617);
        mpfr_init(r11618);
        mpfr_init(r11619);
        mpfr_init(r11620);
        mpfr_init(r11621);
        mpfr_init_set_str(r11622, "27.0", 10, MPFR_RNDN);
        mpfr_init(r11623);
        mpfr_init(r11624);
        mpfr_init(r11625);
        mpfr_init(r11626);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        mpfr_set_d(r11599, x, MPFR_RNDN);
        ;
        mpfr_mul(r11601, r11599, r11600, MPFR_RNDN);
        mpfr_set_d(r11602, y, MPFR_RNDN);
        mpfr_mul(r11603, r11601, r11602, MPFR_RNDN);
        mpfr_set_d(r11604, z, MPFR_RNDN);
        mpfr_mul(r11605, r11603, r11604, MPFR_RNDN);
        mpfr_set_d(r11606, t, MPFR_RNDN);
        mpfr_mul(r11607, r11605, r11606, MPFR_RNDN);
        mpfr_set_d(r11608, a, MPFR_RNDN);
        ;
        mpfr_mul(r11610, r11608, r11609, MPFR_RNDN);
        mpfr_mul(r11611, r11610, r11606, MPFR_RNDN);
        mpfr_sub(r11612, r11607, r11611, MPFR_RNDN);
        mpfr_set_d(r11613, b, MPFR_RNDN);
        mpfr_set_d(r11614, c, MPFR_RNDN);
        mpfr_mul(r11615, r11613, r11614, MPFR_RNDN);
        mpfr_add(r11616, r11612, r11615, MPFR_RNDN);
        mpfr_mul(r11617, r11599, r11609, MPFR_RNDN);
        mpfr_set_d(r11618, i, MPFR_RNDN);
        mpfr_mul(r11619, r11617, r11618, MPFR_RNDN);
        mpfr_sub(r11620, r11616, r11619, MPFR_RNDN);
        mpfr_set_d(r11621, j, MPFR_RNDN);
        ;
        mpfr_mul(r11623, r11621, r11622, MPFR_RNDN);
        mpfr_set_d(r11624, k, MPFR_RNDN);
        mpfr_mul(r11625, r11623, r11624, MPFR_RNDN);
        mpfr_sub(r11626, r11620, r11625, MPFR_RNDN);
        return mpfr_get_d(r11626, MPFR_RNDN);
}

static mpfr_t r11627, r11628, r11629, r11630, r11631, r11632, r11633, r11634, r11635, r11636, r11637, r11638, r11639, r11640, r11641, r11642, r11643, r11644, r11645, r11646, r11647, r11648, r11649, r11650, r11651, r11652, r11653, r11654, r11655, r11656, r11657, r11658, r11659, r11660, r11661, r11662, r11663, r11664, r11665, r11666, r11667, r11668, r11669, r11670, r11671, r11672, r11673, r11674, r11675, r11676, r11677, r11678;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11627);
        mpfr_init(r11628);
        mpfr_init(r11629);
        mpfr_init_set_str(r11630, "18.0", 10, MPFR_RNDN);
        mpfr_init(r11631);
        mpfr_init(r11632);
        mpfr_init(r11633);
        mpfr_init(r11634);
        mpfr_init(r11635);
        mpfr_init(r11636);
        mpfr_init(r11637);
        mpfr_init(r11638);
        mpfr_init_set_str(r11639, "4.0", 10, MPFR_RNDN);
        mpfr_init(r11640);
        mpfr_init(r11641);
        mpfr_init(r11642);
        mpfr_init(r11643);
        mpfr_init(r11644);
        mpfr_init(r11645);
        mpfr_init(r11646);
        mpfr_init_set_str(r11647, "27.0", 10, MPFR_RNDN);
        mpfr_init(r11648);
        mpfr_init(r11649);
        mpfr_init(r11650);
        mpfr_init(r11651);
        mpfr_init(r11652);
        mpfr_init(r11653);
        mpfr_init(r11654);
        mpfr_init(r11655);
        mpfr_init_set_str(r11656, "-1.6592942571381438e+308", 10, MPFR_RNDN);
        mpfr_init(r11657);
        mpfr_init(r11658);
        mpfr_init(r11659);
        mpfr_init(r11660);
        mpfr_init(r11661);
        mpfr_init(r11662);
        mpfr_init(r11663);
        mpfr_init(r11664);
        mpfr_init(r11665);
        mpfr_init(r11666);
        mpfr_init(r11667);
        mpfr_init(r11668);
        mpfr_init(r11669);
        mpfr_init_set_str(r11670, "7.62134266190491e+299", 10, MPFR_RNDN);
        mpfr_init(r11671);
        mpfr_init(r11672);
        mpfr_init(r11673);
        mpfr_init(r11674);
        mpfr_init(r11675);
        mpfr_init(r11676);
        mpfr_init(r11677);
        mpfr_init(r11678);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        mpfr_set_d(r11627, y, MPFR_RNDN);
        mpfr_set_d(r11628, t, MPFR_RNDN);
        mpfr_mul(r11629, r11627, r11628, MPFR_RNDN);
        ;
        mpfr_set_d(r11631, z, MPFR_RNDN);
        mpfr_set_d(r11632, x, MPFR_RNDN);
        mpfr_mul(r11633, r11631, r11632, MPFR_RNDN);
        mpfr_mul(r11634, r11630, r11633, MPFR_RNDN);
        mpfr_set_d(r11635, c, MPFR_RNDN);
        mpfr_set_d(r11636, b, MPFR_RNDN);
        mpfr_mul(r11637, r11635, r11636, MPFR_RNDN);
        mpfr_fma(r11638, r11629, r11634, r11637, MPFR_RNDN);
        ;
        mpfr_set_d(r11640, i, MPFR_RNDN);
        mpfr_mul(r11641, r11640, r11632, MPFR_RNDN);
        mpfr_set_d(r11642, a, MPFR_RNDN);
        mpfr_mul(r11643, r11628, r11642, MPFR_RNDN);
        mpfr_add(r11644, r11641, r11643, MPFR_RNDN);
        mpfr_mul(r11645, r11639, r11644, MPFR_RNDN);
        mpfr_sub(r11646, r11638, r11645, MPFR_RNDN);
        ;
        mpfr_set_d(r11648, j, MPFR_RNDN);
        mpfr_mul(r11649, r11647, r11648, MPFR_RNDN);
        mpfr_set_d(r11650, k, MPFR_RNDN);
        mpfr_mul(r11651, r11649, r11650, MPFR_RNDN);
        mpfr_cbrt(r11652, r11651, MPFR_RNDN);
        mpfr_mul(r11653, r11652, r11652, MPFR_RNDN);
        mpfr_mul(r11654, r11652, r11653, MPFR_RNDN);
        mpfr_sub(r11655, r11646, r11654, MPFR_RNDN);
        ;
        mpfr_set_si(r11657, mpfr_cmp(r11655, r11656) <= 0, MPFR_RNDN);
        mpfr_mul(r11658, r11630, r11632, MPFR_RNDN);
        mpfr_mul(r11659, r11631, r11627, MPFR_RNDN);
        mpfr_mul(r11660, r11658, r11659, MPFR_RNDN);
        mpfr_mul(r11661, r11642, r11639, MPFR_RNDN);
        mpfr_neg(r11662, r11628, MPFR_RNDN);
        mpfr_fma(r11663, r11661, r11662, r11637, MPFR_RNDN);
        mpfr_fma(r11664, r11628, r11660, r11663, MPFR_RNDN);
        mpfr_mul(r11665, r11650, r11647, MPFR_RNDN);
        mpfr_mul(r11666, r11639, r11632, MPFR_RNDN);
        mpfr_mul(r11667, r11640, r11666, MPFR_RNDN);
        mpfr_fma(r11668, r11648, r11665, r11667, MPFR_RNDN);
        mpfr_sub(r11669, r11664, r11668, MPFR_RNDN);
        ;
        mpfr_set_si(r11671, mpfr_cmp(r11655, r11670) <= 0, MPFR_RNDN);
        mpfr_fma(r11672, r11662, r11661, r11637, MPFR_RNDN);
        mpfr_mul(r11673, r11650, r11648, MPFR_RNDN);
        mpfr_mul(r11674, r11673, r11647, MPFR_RNDN);
        mpfr_fma(r11675, r11639, r11641, r11674, MPFR_RNDN);
        mpfr_sub(r11676, r11672, r11675, MPFR_RNDN);
        if (mpfr_get_si(r11671, MPFR_RNDN)) { mpfr_set(r11677, r11655, MPFR_RNDN); } else { mpfr_set(r11677, r11676, MPFR_RNDN); };
        if (mpfr_get_si(r11657, MPFR_RNDN)) { mpfr_set(r11678, r11669, MPFR_RNDN); } else { mpfr_set(r11678, r11677, MPFR_RNDN); };
        return mpfr_get_d(r11678, MPFR_RNDN);
}

static mpfr_t r11679, r11680, r11681, r11682, r11683, r11684, r11685, r11686, r11687, r11688, r11689, r11690, r11691, r11692, r11693, r11694, r11695, r11696, r11697, r11698, r11699, r11700, r11701, r11702, r11703, r11704, r11705, r11706, r11707, r11708, r11709, r11710, r11711, r11712, r11713, r11714, r11715, r11716, r11717, r11718, r11719, r11720, r11721, r11722, r11723, r11724, r11725, r11726, r11727, r11728, r11729, r11730;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11679);
        mpfr_init(r11680);
        mpfr_init(r11681);
        mpfr_init_set_str(r11682, "18.0", 10, MPFR_RNDN);
        mpfr_init(r11683);
        mpfr_init(r11684);
        mpfr_init(r11685);
        mpfr_init(r11686);
        mpfr_init(r11687);
        mpfr_init(r11688);
        mpfr_init(r11689);
        mpfr_init(r11690);
        mpfr_init_set_str(r11691, "4.0", 10, MPFR_RNDN);
        mpfr_init(r11692);
        mpfr_init(r11693);
        mpfr_init(r11694);
        mpfr_init(r11695);
        mpfr_init(r11696);
        mpfr_init(r11697);
        mpfr_init(r11698);
        mpfr_init_set_str(r11699, "27.0", 10, MPFR_RNDN);
        mpfr_init(r11700);
        mpfr_init(r11701);
        mpfr_init(r11702);
        mpfr_init(r11703);
        mpfr_init(r11704);
        mpfr_init(r11705);
        mpfr_init(r11706);
        mpfr_init(r11707);
        mpfr_init_set_str(r11708, "-1.6592942571381438e+308", 10, MPFR_RNDN);
        mpfr_init(r11709);
        mpfr_init(r11710);
        mpfr_init(r11711);
        mpfr_init(r11712);
        mpfr_init(r11713);
        mpfr_init(r11714);
        mpfr_init(r11715);
        mpfr_init(r11716);
        mpfr_init(r11717);
        mpfr_init(r11718);
        mpfr_init(r11719);
        mpfr_init(r11720);
        mpfr_init(r11721);
        mpfr_init_set_str(r11722, "7.62134266190491e+299", 10, MPFR_RNDN);
        mpfr_init(r11723);
        mpfr_init(r11724);
        mpfr_init(r11725);
        mpfr_init(r11726);
        mpfr_init(r11727);
        mpfr_init(r11728);
        mpfr_init(r11729);
        mpfr_init(r11730);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        mpfr_set_d(r11679, y, MPFR_RNDN);
        mpfr_set_d(r11680, t, MPFR_RNDN);
        mpfr_mul(r11681, r11679, r11680, MPFR_RNDN);
        ;
        mpfr_set_d(r11683, z, MPFR_RNDN);
        mpfr_set_d(r11684, x, MPFR_RNDN);
        mpfr_mul(r11685, r11683, r11684, MPFR_RNDN);
        mpfr_mul(r11686, r11682, r11685, MPFR_RNDN);
        mpfr_set_d(r11687, c, MPFR_RNDN);
        mpfr_set_d(r11688, b, MPFR_RNDN);
        mpfr_mul(r11689, r11687, r11688, MPFR_RNDN);
        mpfr_fma(r11690, r11681, r11686, r11689, MPFR_RNDN);
        ;
        mpfr_set_d(r11692, i, MPFR_RNDN);
        mpfr_mul(r11693, r11692, r11684, MPFR_RNDN);
        mpfr_set_d(r11694, a, MPFR_RNDN);
        mpfr_mul(r11695, r11680, r11694, MPFR_RNDN);
        mpfr_add(r11696, r11693, r11695, MPFR_RNDN);
        mpfr_mul(r11697, r11691, r11696, MPFR_RNDN);
        mpfr_sub(r11698, r11690, r11697, MPFR_RNDN);
        ;
        mpfr_set_d(r11700, j, MPFR_RNDN);
        mpfr_mul(r11701, r11699, r11700, MPFR_RNDN);
        mpfr_set_d(r11702, k, MPFR_RNDN);
        mpfr_mul(r11703, r11701, r11702, MPFR_RNDN);
        mpfr_cbrt(r11704, r11703, MPFR_RNDN);
        mpfr_mul(r11705, r11704, r11704, MPFR_RNDN);
        mpfr_mul(r11706, r11704, r11705, MPFR_RNDN);
        mpfr_sub(r11707, r11698, r11706, MPFR_RNDN);
        ;
        mpfr_set_si(r11709, mpfr_cmp(r11707, r11708) <= 0, MPFR_RNDN);
        mpfr_mul(r11710, r11682, r11684, MPFR_RNDN);
        mpfr_mul(r11711, r11683, r11679, MPFR_RNDN);
        mpfr_mul(r11712, r11710, r11711, MPFR_RNDN);
        mpfr_mul(r11713, r11694, r11691, MPFR_RNDN);
        mpfr_neg(r11714, r11680, MPFR_RNDN);
        mpfr_fma(r11715, r11713, r11714, r11689, MPFR_RNDN);
        mpfr_fma(r11716, r11680, r11712, r11715, MPFR_RNDN);
        mpfr_mul(r11717, r11702, r11699, MPFR_RNDN);
        mpfr_mul(r11718, r11691, r11684, MPFR_RNDN);
        mpfr_mul(r11719, r11692, r11718, MPFR_RNDN);
        mpfr_fma(r11720, r11700, r11717, r11719, MPFR_RNDN);
        mpfr_sub(r11721, r11716, r11720, MPFR_RNDN);
        ;
        mpfr_set_si(r11723, mpfr_cmp(r11707, r11722) <= 0, MPFR_RNDN);
        mpfr_fma(r11724, r11714, r11713, r11689, MPFR_RNDN);
        mpfr_mul(r11725, r11702, r11700, MPFR_RNDN);
        mpfr_mul(r11726, r11725, r11699, MPFR_RNDN);
        mpfr_fma(r11727, r11691, r11693, r11726, MPFR_RNDN);
        mpfr_sub(r11728, r11724, r11727, MPFR_RNDN);
        if (mpfr_get_si(r11723, MPFR_RNDN)) { mpfr_set(r11729, r11707, MPFR_RNDN); } else { mpfr_set(r11729, r11728, MPFR_RNDN); };
        if (mpfr_get_si(r11709, MPFR_RNDN)) { mpfr_set(r11730, r11721, MPFR_RNDN); } else { mpfr_set(r11730, r11729, MPFR_RNDN); };
        return mpfr_get_d(r11730, MPFR_RNDN);
}

