#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 r34383 = x;
        float r34384 = 18.0;
        float r34385 = r34383 * r34384;
        float r34386 = y;
        float r34387 = r34385 * r34386;
        float r34388 = z;
        float r34389 = r34387 * r34388;
        float r34390 = t;
        float r34391 = r34389 * r34390;
        float r34392 = a;
        float r34393 = 4.0;
        float r34394 = r34392 * r34393;
        float r34395 = r34394 * r34390;
        float r34396 = r34391 - r34395;
        float r34397 = b;
        float r34398 = c;
        float r34399 = r34397 * r34398;
        float r34400 = r34396 + r34399;
        float r34401 = r34383 * r34393;
        float r34402 = i;
        float r34403 = r34401 * r34402;
        float r34404 = r34400 - r34403;
        float r34405 = j;
        float r34406 = 27.0;
        float r34407 = r34405 * r34406;
        float r34408 = k;
        float r34409 = r34407 * r34408;
        float r34410 = r34404 - r34409;
        return r34410;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r34411 = x;
        double r34412 = 18.0;
        double r34413 = r34411 * r34412;
        double r34414 = y;
        double r34415 = r34413 * r34414;
        double r34416 = z;
        double r34417 = r34415 * r34416;
        double r34418 = t;
        double r34419 = r34417 * r34418;
        double r34420 = a;
        double r34421 = 4.0;
        double r34422 = r34420 * r34421;
        double r34423 = r34422 * r34418;
        double r34424 = r34419 - r34423;
        double r34425 = b;
        double r34426 = c;
        double r34427 = r34425 * r34426;
        double r34428 = r34424 + r34427;
        double r34429 = r34411 * r34421;
        double r34430 = i;
        double r34431 = r34429 * r34430;
        double r34432 = r34428 - r34431;
        double r34433 = j;
        double r34434 = 27.0;
        double r34435 = r34433 * r34434;
        double r34436 = k;
        double r34437 = r34435 * r34436;
        double r34438 = r34432 - r34437;
        return r34438;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r34439 = x;
        float r34440 = -1.3529112484688672e+112;
        bool r34441 = r34439 <= r34440;
        float r34442 = b;
        float r34443 = c;
        float r34444 = r34442 * r34443;
        float r34445 = 4.0;
        float r34446 = i;
        float r34447 = r34439 * r34446;
        float r34448 = a;
        float r34449 = t;
        float r34450 = r34448 * r34449;
        float r34451 = r34447 + r34450;
        float r34452 = r34445 * r34451;
        float r34453 = r34444 - r34452;
        float r34454 = 18.0;
        float r34455 = r34454 * r34439;
        float r34456 = r34449 * r34455;
        float r34457 = y;
        float r34458 = z;
        float r34459 = r34457 * r34458;
        float r34460 = r34456 * r34459;
        float r34461 = 27.0;
        float r34462 = k;
        float r34463 = j;
        float r34464 = r34462 * r34463;
        float r34465 = r34461 * r34464;
        float r34466 = r34460 - r34465;
        float r34467 = r34453 + r34466;
        float r34468 = 1.0139367462808444e+32;
        bool r34469 = r34439 <= r34468;
        float r34470 = r34455 * r34457;
        float r34471 = r34449 * r34470;
        float r34472 = r34471 * r34458;
        float r34473 = r34472 - r34465;
        float r34474 = r34453 + r34473;
        float r34475 = r34469 ? r34474 : r34467;
        float r34476 = r34441 ? r34467 : r34475;
        return r34476;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r34477 = x;
        double r34478 = -1.3529112484688672e+112;
        bool r34479 = r34477 <= r34478;
        double r34480 = b;
        double r34481 = c;
        double r34482 = r34480 * r34481;
        double r34483 = 4.0;
        double r34484 = i;
        double r34485 = r34477 * r34484;
        double r34486 = a;
        double r34487 = t;
        double r34488 = r34486 * r34487;
        double r34489 = r34485 + r34488;
        double r34490 = r34483 * r34489;
        double r34491 = r34482 - r34490;
        double r34492 = 18.0;
        double r34493 = r34492 * r34477;
        double r34494 = r34487 * r34493;
        double r34495 = y;
        double r34496 = z;
        double r34497 = r34495 * r34496;
        double r34498 = r34494 * r34497;
        double r34499 = 27.0;
        double r34500 = k;
        double r34501 = j;
        double r34502 = r34500 * r34501;
        double r34503 = r34499 * r34502;
        double r34504 = r34498 - r34503;
        double r34505 = r34491 + r34504;
        double r34506 = 1.0139367462808444e+32;
        bool r34507 = r34477 <= r34506;
        double r34508 = r34493 * r34495;
        double r34509 = r34487 * r34508;
        double r34510 = r34509 * r34496;
        double r34511 = r34510 - r34503;
        double r34512 = r34491 + r34511;
        double r34513 = r34507 ? r34512 : r34505;
        double r34514 = r34479 ? r34505 : r34513;
        return r34514;
}

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 r34515, r34516, r34517, r34518, r34519, r34520, r34521, r34522, r34523, r34524, r34525, r34526, r34527, r34528, r34529, r34530, r34531, r34532, r34533, r34534, r34535, r34536, r34537, r34538, r34539, r34540, r34541, r34542;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r34515);
        mpfr_init_set_str(r34516, "18.0", 10, MPFR_RNDN);
        mpfr_init(r34517);
        mpfr_init(r34518);
        mpfr_init(r34519);
        mpfr_init(r34520);
        mpfr_init(r34521);
        mpfr_init(r34522);
        mpfr_init(r34523);
        mpfr_init(r34524);
        mpfr_init_set_str(r34525, "4.0", 10, MPFR_RNDN);
        mpfr_init(r34526);
        mpfr_init(r34527);
        mpfr_init(r34528);
        mpfr_init(r34529);
        mpfr_init(r34530);
        mpfr_init(r34531);
        mpfr_init(r34532);
        mpfr_init(r34533);
        mpfr_init(r34534);
        mpfr_init(r34535);
        mpfr_init(r34536);
        mpfr_init(r34537);
        mpfr_init_set_str(r34538, "27.0", 10, MPFR_RNDN);
        mpfr_init(r34539);
        mpfr_init(r34540);
        mpfr_init(r34541);
        mpfr_init(r34542);
}

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(r34515, x, MPFR_RNDN);
        ;
        mpfr_mul(r34517, r34515, r34516, MPFR_RNDN);
        mpfr_set_d(r34518, y, MPFR_RNDN);
        mpfr_mul(r34519, r34517, r34518, MPFR_RNDN);
        mpfr_set_d(r34520, z, MPFR_RNDN);
        mpfr_mul(r34521, r34519, r34520, MPFR_RNDN);
        mpfr_set_d(r34522, t, MPFR_RNDN);
        mpfr_mul(r34523, r34521, r34522, MPFR_RNDN);
        mpfr_set_d(r34524, a, MPFR_RNDN);
        ;
        mpfr_mul(r34526, r34524, r34525, MPFR_RNDN);
        mpfr_mul(r34527, r34526, r34522, MPFR_RNDN);
        mpfr_sub(r34528, r34523, r34527, MPFR_RNDN);
        mpfr_set_d(r34529, b, MPFR_RNDN);
        mpfr_set_d(r34530, c, MPFR_RNDN);
        mpfr_mul(r34531, r34529, r34530, MPFR_RNDN);
        mpfr_add(r34532, r34528, r34531, MPFR_RNDN);
        mpfr_mul(r34533, r34515, r34525, MPFR_RNDN);
        mpfr_set_d(r34534, i, MPFR_RNDN);
        mpfr_mul(r34535, r34533, r34534, MPFR_RNDN);
        mpfr_sub(r34536, r34532, r34535, MPFR_RNDN);
        mpfr_set_d(r34537, j, MPFR_RNDN);
        ;
        mpfr_mul(r34539, r34537, r34538, MPFR_RNDN);
        mpfr_set_d(r34540, k, MPFR_RNDN);
        mpfr_mul(r34541, r34539, r34540, MPFR_RNDN);
        mpfr_sub(r34542, r34536, r34541, MPFR_RNDN);
        return mpfr_get_d(r34542, MPFR_RNDN);
}

static mpfr_t r34543, r34544, r34545, r34546, r34547, r34548, r34549, r34550, r34551, r34552, r34553, r34554, r34555, r34556, r34557, r34558, r34559, r34560, r34561, r34562, r34563, r34564, r34565, r34566, r34567, r34568, r34569, r34570, r34571, r34572, r34573, r34574, r34575, r34576, r34577, r34578, r34579, r34580;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34543);
        mpfr_init_set_str(r34544, "-1.3529112484688672e+112", 10, MPFR_RNDN);
        mpfr_init(r34545);
        mpfr_init(r34546);
        mpfr_init(r34547);
        mpfr_init(r34548);
        mpfr_init_set_str(r34549, "4.0", 10, MPFR_RNDN);
        mpfr_init(r34550);
        mpfr_init(r34551);
        mpfr_init(r34552);
        mpfr_init(r34553);
        mpfr_init(r34554);
        mpfr_init(r34555);
        mpfr_init(r34556);
        mpfr_init(r34557);
        mpfr_init_set_str(r34558, "18.0", 10, MPFR_RNDN);
        mpfr_init(r34559);
        mpfr_init(r34560);
        mpfr_init(r34561);
        mpfr_init(r34562);
        mpfr_init(r34563);
        mpfr_init(r34564);
        mpfr_init_set_str(r34565, "27.0", 10, MPFR_RNDN);
        mpfr_init(r34566);
        mpfr_init(r34567);
        mpfr_init(r34568);
        mpfr_init(r34569);
        mpfr_init(r34570);
        mpfr_init(r34571);
        mpfr_init_set_str(r34572, "1.0139367462808444e+32", 10, MPFR_RNDN);
        mpfr_init(r34573);
        mpfr_init(r34574);
        mpfr_init(r34575);
        mpfr_init(r34576);
        mpfr_init(r34577);
        mpfr_init(r34578);
        mpfr_init(r34579);
        mpfr_init(r34580);
}

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(r34543, x, MPFR_RNDN);
        ;
        mpfr_set_si(r34545, mpfr_cmp(r34543, r34544) <= 0, MPFR_RNDN);
        mpfr_set_d(r34546, b, MPFR_RNDN);
        mpfr_set_d(r34547, c, MPFR_RNDN);
        mpfr_mul(r34548, r34546, r34547, MPFR_RNDN);
        ;
        mpfr_set_d(r34550, i, MPFR_RNDN);
        mpfr_mul(r34551, r34543, r34550, MPFR_RNDN);
        mpfr_set_d(r34552, a, MPFR_RNDN);
        mpfr_set_d(r34553, t, MPFR_RNDN);
        mpfr_mul(r34554, r34552, r34553, MPFR_RNDN);
        mpfr_add(r34555, r34551, r34554, MPFR_RNDN);
        mpfr_mul(r34556, r34549, r34555, MPFR_RNDN);
        mpfr_sub(r34557, r34548, r34556, MPFR_RNDN);
        ;
        mpfr_mul(r34559, r34558, r34543, MPFR_RNDN);
        mpfr_mul(r34560, r34553, r34559, MPFR_RNDN);
        mpfr_set_d(r34561, y, MPFR_RNDN);
        mpfr_set_d(r34562, z, MPFR_RNDN);
        mpfr_mul(r34563, r34561, r34562, MPFR_RNDN);
        mpfr_mul(r34564, r34560, r34563, MPFR_RNDN);
        ;
        mpfr_set_d(r34566, k, MPFR_RNDN);
        mpfr_set_d(r34567, j, MPFR_RNDN);
        mpfr_mul(r34568, r34566, r34567, MPFR_RNDN);
        mpfr_mul(r34569, r34565, r34568, MPFR_RNDN);
        mpfr_sub(r34570, r34564, r34569, MPFR_RNDN);
        mpfr_add(r34571, r34557, r34570, MPFR_RNDN);
        ;
        mpfr_set_si(r34573, mpfr_cmp(r34543, r34572) <= 0, MPFR_RNDN);
        mpfr_mul(r34574, r34559, r34561, MPFR_RNDN);
        mpfr_mul(r34575, r34553, r34574, MPFR_RNDN);
        mpfr_mul(r34576, r34575, r34562, MPFR_RNDN);
        mpfr_sub(r34577, r34576, r34569, MPFR_RNDN);
        mpfr_add(r34578, r34557, r34577, MPFR_RNDN);
        if (mpfr_get_si(r34573, MPFR_RNDN)) { mpfr_set(r34579, r34578, MPFR_RNDN); } else { mpfr_set(r34579, r34571, MPFR_RNDN); };
        if (mpfr_get_si(r34545, MPFR_RNDN)) { mpfr_set(r34580, r34571, MPFR_RNDN); } else { mpfr_set(r34580, r34579, MPFR_RNDN); };
        return mpfr_get_d(r34580, MPFR_RNDN);
}

static mpfr_t r34581, r34582, r34583, r34584, r34585, r34586, r34587, r34588, r34589, r34590, r34591, r34592, r34593, r34594, r34595, r34596, r34597, r34598, r34599, r34600, r34601, r34602, r34603, r34604, r34605, r34606, r34607, r34608, r34609, r34610, r34611, r34612, r34613, r34614, r34615, r34616, r34617, r34618;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34581);
        mpfr_init_set_str(r34582, "-1.3529112484688672e+112", 10, MPFR_RNDN);
        mpfr_init(r34583);
        mpfr_init(r34584);
        mpfr_init(r34585);
        mpfr_init(r34586);
        mpfr_init_set_str(r34587, "4.0", 10, MPFR_RNDN);
        mpfr_init(r34588);
        mpfr_init(r34589);
        mpfr_init(r34590);
        mpfr_init(r34591);
        mpfr_init(r34592);
        mpfr_init(r34593);
        mpfr_init(r34594);
        mpfr_init(r34595);
        mpfr_init_set_str(r34596, "18.0", 10, MPFR_RNDN);
        mpfr_init(r34597);
        mpfr_init(r34598);
        mpfr_init(r34599);
        mpfr_init(r34600);
        mpfr_init(r34601);
        mpfr_init(r34602);
        mpfr_init_set_str(r34603, "27.0", 10, MPFR_RNDN);
        mpfr_init(r34604);
        mpfr_init(r34605);
        mpfr_init(r34606);
        mpfr_init(r34607);
        mpfr_init(r34608);
        mpfr_init(r34609);
        mpfr_init_set_str(r34610, "1.0139367462808444e+32", 10, MPFR_RNDN);
        mpfr_init(r34611);
        mpfr_init(r34612);
        mpfr_init(r34613);
        mpfr_init(r34614);
        mpfr_init(r34615);
        mpfr_init(r34616);
        mpfr_init(r34617);
        mpfr_init(r34618);
}

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(r34581, x, MPFR_RNDN);
        ;
        mpfr_set_si(r34583, mpfr_cmp(r34581, r34582) <= 0, MPFR_RNDN);
        mpfr_set_d(r34584, b, MPFR_RNDN);
        mpfr_set_d(r34585, c, MPFR_RNDN);
        mpfr_mul(r34586, r34584, r34585, MPFR_RNDN);
        ;
        mpfr_set_d(r34588, i, MPFR_RNDN);
        mpfr_mul(r34589, r34581, r34588, MPFR_RNDN);
        mpfr_set_d(r34590, a, MPFR_RNDN);
        mpfr_set_d(r34591, t, MPFR_RNDN);
        mpfr_mul(r34592, r34590, r34591, MPFR_RNDN);
        mpfr_add(r34593, r34589, r34592, MPFR_RNDN);
        mpfr_mul(r34594, r34587, r34593, MPFR_RNDN);
        mpfr_sub(r34595, r34586, r34594, MPFR_RNDN);
        ;
        mpfr_mul(r34597, r34596, r34581, MPFR_RNDN);
        mpfr_mul(r34598, r34591, r34597, MPFR_RNDN);
        mpfr_set_d(r34599, y, MPFR_RNDN);
        mpfr_set_d(r34600, z, MPFR_RNDN);
        mpfr_mul(r34601, r34599, r34600, MPFR_RNDN);
        mpfr_mul(r34602, r34598, r34601, MPFR_RNDN);
        ;
        mpfr_set_d(r34604, k, MPFR_RNDN);
        mpfr_set_d(r34605, j, MPFR_RNDN);
        mpfr_mul(r34606, r34604, r34605, MPFR_RNDN);
        mpfr_mul(r34607, r34603, r34606, MPFR_RNDN);
        mpfr_sub(r34608, r34602, r34607, MPFR_RNDN);
        mpfr_add(r34609, r34595, r34608, MPFR_RNDN);
        ;
        mpfr_set_si(r34611, mpfr_cmp(r34581, r34610) <= 0, MPFR_RNDN);
        mpfr_mul(r34612, r34597, r34599, MPFR_RNDN);
        mpfr_mul(r34613, r34591, r34612, MPFR_RNDN);
        mpfr_mul(r34614, r34613, r34600, MPFR_RNDN);
        mpfr_sub(r34615, r34614, r34607, MPFR_RNDN);
        mpfr_add(r34616, r34595, r34615, MPFR_RNDN);
        if (mpfr_get_si(r34611, MPFR_RNDN)) { mpfr_set(r34617, r34616, MPFR_RNDN); } else { mpfr_set(r34617, r34609, MPFR_RNDN); };
        if (mpfr_get_si(r34583, MPFR_RNDN)) { mpfr_set(r34618, r34609, MPFR_RNDN); } else { mpfr_set(r34618, r34617, MPFR_RNDN); };
        return mpfr_get_d(r34618, MPFR_RNDN);
}

