#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 r34616 = x;
        float r34617 = 18.0;
        float r34618 = r34616 * r34617;
        float r34619 = y;
        float r34620 = r34618 * r34619;
        float r34621 = z;
        float r34622 = r34620 * r34621;
        float r34623 = t;
        float r34624 = r34622 * r34623;
        float r34625 = a;
        float r34626 = 4.0;
        float r34627 = r34625 * r34626;
        float r34628 = r34627 * r34623;
        float r34629 = r34624 - r34628;
        float r34630 = b;
        float r34631 = c;
        float r34632 = r34630 * r34631;
        float r34633 = r34629 + r34632;
        float r34634 = r34616 * r34626;
        float r34635 = i;
        float r34636 = r34634 * r34635;
        float r34637 = r34633 - r34636;
        float r34638 = j;
        float r34639 = 27.0;
        float r34640 = r34638 * r34639;
        float r34641 = k;
        float r34642 = r34640 * r34641;
        float r34643 = r34637 - r34642;
        return r34643;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r34644 = x;
        double r34645 = 18.0;
        double r34646 = r34644 * r34645;
        double r34647 = y;
        double r34648 = r34646 * r34647;
        double r34649 = z;
        double r34650 = r34648 * r34649;
        double r34651 = t;
        double r34652 = r34650 * r34651;
        double r34653 = a;
        double r34654 = 4.0;
        double r34655 = r34653 * r34654;
        double r34656 = r34655 * r34651;
        double r34657 = r34652 - r34656;
        double r34658 = b;
        double r34659 = c;
        double r34660 = r34658 * r34659;
        double r34661 = r34657 + r34660;
        double r34662 = r34644 * r34654;
        double r34663 = i;
        double r34664 = r34662 * r34663;
        double r34665 = r34661 - r34664;
        double r34666 = j;
        double r34667 = 27.0;
        double r34668 = r34666 * r34667;
        double r34669 = k;
        double r34670 = r34668 * r34669;
        double r34671 = r34665 - r34670;
        return r34671;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r34672 = t;
        float r34673 = -4.517896382438185e+40;
        bool r34674 = r34672 <= r34673;
        float r34675 = b;
        float r34676 = c;
        float r34677 = r34675 * r34676;
        float r34678 = 4.0;
        float r34679 = x;
        float r34680 = i;
        float r34681 = r34679 * r34680;
        float r34682 = a;
        float r34683 = r34682 * r34672;
        float r34684 = r34681 + r34683;
        float r34685 = r34678 * r34684;
        float r34686 = r34677 - r34685;
        float r34687 = 18.0;
        float r34688 = r34687 * r34679;
        float r34689 = y;
        float r34690 = r34688 * r34689;
        float r34691 = z;
        float r34692 = r34690 * r34691;
        float r34693 = r34672 * r34692;
        float r34694 = 27.0;
        float r34695 = k;
        float r34696 = j;
        float r34697 = r34695 * r34696;
        float r34698 = r34694 * r34697;
        float r34699 = r34693 - r34698;
        float r34700 = r34686 + r34699;
        float r34701 = 5.061471539175049e-24;
        bool r34702 = r34672 <= r34701;
        float r34703 = r34672 * r34679;
        float r34704 = r34689 * r34703;
        float r34705 = r34691 * r34704;
        float r34706 = r34687 * r34705;
        float r34707 = r34706 - r34698;
        float r34708 = r34686 + r34707;
        float r34709 = r34702 ? r34708 : r34700;
        float r34710 = r34674 ? r34700 : r34709;
        return r34710;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r34711 = t;
        double r34712 = -4.517896382438185e+40;
        bool r34713 = r34711 <= r34712;
        double r34714 = b;
        double r34715 = c;
        double r34716 = r34714 * r34715;
        double r34717 = 4.0;
        double r34718 = x;
        double r34719 = i;
        double r34720 = r34718 * r34719;
        double r34721 = a;
        double r34722 = r34721 * r34711;
        double r34723 = r34720 + r34722;
        double r34724 = r34717 * r34723;
        double r34725 = r34716 - r34724;
        double r34726 = 18.0;
        double r34727 = r34726 * r34718;
        double r34728 = y;
        double r34729 = r34727 * r34728;
        double r34730 = z;
        double r34731 = r34729 * r34730;
        double r34732 = r34711 * r34731;
        double r34733 = 27.0;
        double r34734 = k;
        double r34735 = j;
        double r34736 = r34734 * r34735;
        double r34737 = r34733 * r34736;
        double r34738 = r34732 - r34737;
        double r34739 = r34725 + r34738;
        double r34740 = 5.061471539175049e-24;
        bool r34741 = r34711 <= r34740;
        double r34742 = r34711 * r34718;
        double r34743 = r34728 * r34742;
        double r34744 = r34730 * r34743;
        double r34745 = r34726 * r34744;
        double r34746 = r34745 - r34737;
        double r34747 = r34725 + r34746;
        double r34748 = r34741 ? r34747 : r34739;
        double r34749 = r34713 ? r34739 : r34748;
        return r34749;
}

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 r34750, r34751, r34752, r34753, r34754, r34755, r34756, r34757, r34758, r34759, r34760, r34761, r34762, r34763, r34764, r34765, r34766, r34767, r34768, r34769, r34770, r34771, r34772, r34773, r34774, r34775, r34776, r34777;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r34750);
        mpfr_init_set_str(r34751, "18.0", 10, MPFR_RNDN);
        mpfr_init(r34752);
        mpfr_init(r34753);
        mpfr_init(r34754);
        mpfr_init(r34755);
        mpfr_init(r34756);
        mpfr_init(r34757);
        mpfr_init(r34758);
        mpfr_init(r34759);
        mpfr_init_set_str(r34760, "4.0", 10, MPFR_RNDN);
        mpfr_init(r34761);
        mpfr_init(r34762);
        mpfr_init(r34763);
        mpfr_init(r34764);
        mpfr_init(r34765);
        mpfr_init(r34766);
        mpfr_init(r34767);
        mpfr_init(r34768);
        mpfr_init(r34769);
        mpfr_init(r34770);
        mpfr_init(r34771);
        mpfr_init(r34772);
        mpfr_init_set_str(r34773, "27.0", 10, MPFR_RNDN);
        mpfr_init(r34774);
        mpfr_init(r34775);
        mpfr_init(r34776);
        mpfr_init(r34777);
}

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(r34750, x, MPFR_RNDN);
        ;
        mpfr_mul(r34752, r34750, r34751, MPFR_RNDN);
        mpfr_set_d(r34753, y, MPFR_RNDN);
        mpfr_mul(r34754, r34752, r34753, MPFR_RNDN);
        mpfr_set_d(r34755, z, MPFR_RNDN);
        mpfr_mul(r34756, r34754, r34755, MPFR_RNDN);
        mpfr_set_d(r34757, t, MPFR_RNDN);
        mpfr_mul(r34758, r34756, r34757, MPFR_RNDN);
        mpfr_set_d(r34759, a, MPFR_RNDN);
        ;
        mpfr_mul(r34761, r34759, r34760, MPFR_RNDN);
        mpfr_mul(r34762, r34761, r34757, MPFR_RNDN);
        mpfr_sub(r34763, r34758, r34762, MPFR_RNDN);
        mpfr_set_d(r34764, b, MPFR_RNDN);
        mpfr_set_d(r34765, c, MPFR_RNDN);
        mpfr_mul(r34766, r34764, r34765, MPFR_RNDN);
        mpfr_add(r34767, r34763, r34766, MPFR_RNDN);
        mpfr_mul(r34768, r34750, r34760, MPFR_RNDN);
        mpfr_set_d(r34769, i, MPFR_RNDN);
        mpfr_mul(r34770, r34768, r34769, MPFR_RNDN);
        mpfr_sub(r34771, r34767, r34770, MPFR_RNDN);
        mpfr_set_d(r34772, j, MPFR_RNDN);
        ;
        mpfr_mul(r34774, r34772, r34773, MPFR_RNDN);
        mpfr_set_d(r34775, k, MPFR_RNDN);
        mpfr_mul(r34776, r34774, r34775, MPFR_RNDN);
        mpfr_sub(r34777, r34771, r34776, MPFR_RNDN);
        return mpfr_get_d(r34777, MPFR_RNDN);
}

static mpfr_t r34778, r34779, r34780, r34781, r34782, r34783, r34784, r34785, r34786, r34787, r34788, r34789, r34790, r34791, r34792, r34793, r34794, r34795, r34796, r34797, r34798, r34799, r34800, r34801, r34802, r34803, r34804, r34805, r34806, r34807, r34808, r34809, r34810, r34811, r34812, r34813, r34814, r34815, r34816;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34778);
        mpfr_init_set_str(r34779, "-4.517896382438185e+40", 10, MPFR_RNDN);
        mpfr_init(r34780);
        mpfr_init(r34781);
        mpfr_init(r34782);
        mpfr_init(r34783);
        mpfr_init_set_str(r34784, "4.0", 10, MPFR_RNDN);
        mpfr_init(r34785);
        mpfr_init(r34786);
        mpfr_init(r34787);
        mpfr_init(r34788);
        mpfr_init(r34789);
        mpfr_init(r34790);
        mpfr_init(r34791);
        mpfr_init(r34792);
        mpfr_init_set_str(r34793, "18.0", 10, MPFR_RNDN);
        mpfr_init(r34794);
        mpfr_init(r34795);
        mpfr_init(r34796);
        mpfr_init(r34797);
        mpfr_init(r34798);
        mpfr_init(r34799);
        mpfr_init_set_str(r34800, "27.0", 10, MPFR_RNDN);
        mpfr_init(r34801);
        mpfr_init(r34802);
        mpfr_init(r34803);
        mpfr_init(r34804);
        mpfr_init(r34805);
        mpfr_init(r34806);
        mpfr_init_set_str(r34807, "5.061471539175049e-24", 10, MPFR_RNDN);
        mpfr_init(r34808);
        mpfr_init(r34809);
        mpfr_init(r34810);
        mpfr_init(r34811);
        mpfr_init(r34812);
        mpfr_init(r34813);
        mpfr_init(r34814);
        mpfr_init(r34815);
        mpfr_init(r34816);
}

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(r34778, t, MPFR_RNDN);
        ;
        mpfr_set_si(r34780, mpfr_cmp(r34778, r34779) <= 0, MPFR_RNDN);
        mpfr_set_d(r34781, b, MPFR_RNDN);
        mpfr_set_d(r34782, c, MPFR_RNDN);
        mpfr_mul(r34783, r34781, r34782, MPFR_RNDN);
        ;
        mpfr_set_d(r34785, x, MPFR_RNDN);
        mpfr_set_d(r34786, i, MPFR_RNDN);
        mpfr_mul(r34787, r34785, r34786, MPFR_RNDN);
        mpfr_set_d(r34788, a, MPFR_RNDN);
        mpfr_mul(r34789, r34788, r34778, MPFR_RNDN);
        mpfr_add(r34790, r34787, r34789, MPFR_RNDN);
        mpfr_mul(r34791, r34784, r34790, MPFR_RNDN);
        mpfr_sub(r34792, r34783, r34791, MPFR_RNDN);
        ;
        mpfr_mul(r34794, r34793, r34785, MPFR_RNDN);
        mpfr_set_d(r34795, y, MPFR_RNDN);
        mpfr_mul(r34796, r34794, r34795, MPFR_RNDN);
        mpfr_set_d(r34797, z, MPFR_RNDN);
        mpfr_mul(r34798, r34796, r34797, MPFR_RNDN);
        mpfr_mul(r34799, r34778, r34798, MPFR_RNDN);
        ;
        mpfr_set_d(r34801, k, MPFR_RNDN);
        mpfr_set_d(r34802, j, MPFR_RNDN);
        mpfr_mul(r34803, r34801, r34802, MPFR_RNDN);
        mpfr_mul(r34804, r34800, r34803, MPFR_RNDN);
        mpfr_sub(r34805, r34799, r34804, MPFR_RNDN);
        mpfr_add(r34806, r34792, r34805, MPFR_RNDN);
        ;
        mpfr_set_si(r34808, mpfr_cmp(r34778, r34807) <= 0, MPFR_RNDN);
        mpfr_mul(r34809, r34778, r34785, MPFR_RNDN);
        mpfr_mul(r34810, r34795, r34809, MPFR_RNDN);
        mpfr_mul(r34811, r34797, r34810, MPFR_RNDN);
        mpfr_mul(r34812, r34793, r34811, MPFR_RNDN);
        mpfr_sub(r34813, r34812, r34804, MPFR_RNDN);
        mpfr_add(r34814, r34792, r34813, MPFR_RNDN);
        if (mpfr_get_si(r34808, MPFR_RNDN)) { mpfr_set(r34815, r34814, MPFR_RNDN); } else { mpfr_set(r34815, r34806, MPFR_RNDN); };
        if (mpfr_get_si(r34780, MPFR_RNDN)) { mpfr_set(r34816, r34806, MPFR_RNDN); } else { mpfr_set(r34816, r34815, MPFR_RNDN); };
        return mpfr_get_d(r34816, MPFR_RNDN);
}

static mpfr_t r34817, r34818, r34819, r34820, r34821, r34822, r34823, r34824, r34825, r34826, r34827, r34828, r34829, r34830, r34831, r34832, r34833, r34834, r34835, r34836, r34837, r34838, r34839, r34840, r34841, r34842, r34843, r34844, r34845, r34846, r34847, r34848, r34849, r34850, r34851, r34852, r34853, r34854, r34855;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34817);
        mpfr_init_set_str(r34818, "-4.517896382438185e+40", 10, MPFR_RNDN);
        mpfr_init(r34819);
        mpfr_init(r34820);
        mpfr_init(r34821);
        mpfr_init(r34822);
        mpfr_init_set_str(r34823, "4.0", 10, MPFR_RNDN);
        mpfr_init(r34824);
        mpfr_init(r34825);
        mpfr_init(r34826);
        mpfr_init(r34827);
        mpfr_init(r34828);
        mpfr_init(r34829);
        mpfr_init(r34830);
        mpfr_init(r34831);
        mpfr_init_set_str(r34832, "18.0", 10, MPFR_RNDN);
        mpfr_init(r34833);
        mpfr_init(r34834);
        mpfr_init(r34835);
        mpfr_init(r34836);
        mpfr_init(r34837);
        mpfr_init(r34838);
        mpfr_init_set_str(r34839, "27.0", 10, MPFR_RNDN);
        mpfr_init(r34840);
        mpfr_init(r34841);
        mpfr_init(r34842);
        mpfr_init(r34843);
        mpfr_init(r34844);
        mpfr_init(r34845);
        mpfr_init_set_str(r34846, "5.061471539175049e-24", 10, MPFR_RNDN);
        mpfr_init(r34847);
        mpfr_init(r34848);
        mpfr_init(r34849);
        mpfr_init(r34850);
        mpfr_init(r34851);
        mpfr_init(r34852);
        mpfr_init(r34853);
        mpfr_init(r34854);
        mpfr_init(r34855);
}

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(r34817, t, MPFR_RNDN);
        ;
        mpfr_set_si(r34819, mpfr_cmp(r34817, r34818) <= 0, MPFR_RNDN);
        mpfr_set_d(r34820, b, MPFR_RNDN);
        mpfr_set_d(r34821, c, MPFR_RNDN);
        mpfr_mul(r34822, r34820, r34821, MPFR_RNDN);
        ;
        mpfr_set_d(r34824, x, MPFR_RNDN);
        mpfr_set_d(r34825, i, MPFR_RNDN);
        mpfr_mul(r34826, r34824, r34825, MPFR_RNDN);
        mpfr_set_d(r34827, a, MPFR_RNDN);
        mpfr_mul(r34828, r34827, r34817, MPFR_RNDN);
        mpfr_add(r34829, r34826, r34828, MPFR_RNDN);
        mpfr_mul(r34830, r34823, r34829, MPFR_RNDN);
        mpfr_sub(r34831, r34822, r34830, MPFR_RNDN);
        ;
        mpfr_mul(r34833, r34832, r34824, MPFR_RNDN);
        mpfr_set_d(r34834, y, MPFR_RNDN);
        mpfr_mul(r34835, r34833, r34834, MPFR_RNDN);
        mpfr_set_d(r34836, z, MPFR_RNDN);
        mpfr_mul(r34837, r34835, r34836, MPFR_RNDN);
        mpfr_mul(r34838, r34817, r34837, MPFR_RNDN);
        ;
        mpfr_set_d(r34840, k, MPFR_RNDN);
        mpfr_set_d(r34841, j, MPFR_RNDN);
        mpfr_mul(r34842, r34840, r34841, MPFR_RNDN);
        mpfr_mul(r34843, r34839, r34842, MPFR_RNDN);
        mpfr_sub(r34844, r34838, r34843, MPFR_RNDN);
        mpfr_add(r34845, r34831, r34844, MPFR_RNDN);
        ;
        mpfr_set_si(r34847, mpfr_cmp(r34817, r34846) <= 0, MPFR_RNDN);
        mpfr_mul(r34848, r34817, r34824, MPFR_RNDN);
        mpfr_mul(r34849, r34834, r34848, MPFR_RNDN);
        mpfr_mul(r34850, r34836, r34849, MPFR_RNDN);
        mpfr_mul(r34851, r34832, r34850, MPFR_RNDN);
        mpfr_sub(r34852, r34851, r34843, MPFR_RNDN);
        mpfr_add(r34853, r34831, r34852, MPFR_RNDN);
        if (mpfr_get_si(r34847, MPFR_RNDN)) { mpfr_set(r34854, r34853, MPFR_RNDN); } else { mpfr_set(r34854, r34845, MPFR_RNDN); };
        if (mpfr_get_si(r34819, MPFR_RNDN)) { mpfr_set(r34855, r34845, MPFR_RNDN); } else { mpfr_set(r34855, r34854, MPFR_RNDN); };
        return mpfr_get_d(r34855, MPFR_RNDN);
}

