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

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


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

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r34714 = z;
        double r34715 = -5.38122143438205e-09;
        bool r34716 = r34714 <= r34715;
        double r34717 = b;
        double r34718 = c;
        double r34719 = r34717 * r34718;
        double r34720 = 4.0;
        double r34721 = x;
        double r34722 = i;
        double r34723 = r34721 * r34722;
        double r34724 = a;
        double r34725 = t;
        double r34726 = r34724 * r34725;
        double r34727 = r34723 + r34726;
        double r34728 = r34720 * r34727;
        double r34729 = r34719 - r34728;
        double r34730 = 18.0;
        double r34731 = r34730 * r34721;
        double r34732 = y;
        double r34733 = r34731 * r34732;
        double r34734 = r34725 * r34733;
        double r34735 = r34734 * r34714;
        double r34736 = 27.0;
        double r34737 = k;
        double r34738 = j;
        double r34739 = r34737 * r34738;
        double r34740 = r34736 * r34739;
        double r34741 = r34735 - r34740;
        double r34742 = r34729 + r34741;
        double r34743 = 1.620828576697051e-140;
        bool r34744 = r34714 <= r34743;
        double r34745 = r34732 * r34714;
        double r34746 = r34731 * r34745;
        double r34747 = r34725 * r34746;
        double r34748 = cbrt(r34747);
        double r34749 = r34748 * r34748;
        double r34750 = r34749 * r34748;
        double r34751 = r34750 - r34740;
        double r34752 = r34729 + r34751;
        double r34753 = r34725 * r34721;
        double r34754 = r34732 * r34753;
        double r34755 = r34714 * r34754;
        double r34756 = r34730 * r34755;
        double r34757 = r34756 - r34740;
        double r34758 = r34729 + r34757;
        double r34759 = r34744 ? r34752 : r34758;
        double r34760 = r34716 ? r34742 : r34759;
        return r34760;
}

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 r34761, r34762, r34763, r34764, r34765, r34766, r34767, r34768, r34769, r34770, r34771, r34772, r34773, r34774, r34775, r34776, r34777, r34778, r34779, r34780, r34781, r34782, r34783, r34784, r34785, r34786, r34787, r34788;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r34761);
        mpfr_init_set_str(r34762, "18.0", 10, MPFR_RNDN);
        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_set_str(r34771, "4.0", 10, MPFR_RNDN);
        mpfr_init(r34772);
        mpfr_init(r34773);
        mpfr_init(r34774);
        mpfr_init(r34775);
        mpfr_init(r34776);
        mpfr_init(r34777);
        mpfr_init(r34778);
        mpfr_init(r34779);
        mpfr_init(r34780);
        mpfr_init(r34781);
        mpfr_init(r34782);
        mpfr_init(r34783);
        mpfr_init_set_str(r34784, "27.0", 10, MPFR_RNDN);
        mpfr_init(r34785);
        mpfr_init(r34786);
        mpfr_init(r34787);
        mpfr_init(r34788);
}

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(r34761, x, MPFR_RNDN);
        ;
        mpfr_mul(r34763, r34761, r34762, MPFR_RNDN);
        mpfr_set_d(r34764, y, MPFR_RNDN);
        mpfr_mul(r34765, r34763, r34764, MPFR_RNDN);
        mpfr_set_d(r34766, z, MPFR_RNDN);
        mpfr_mul(r34767, r34765, r34766, MPFR_RNDN);
        mpfr_set_d(r34768, t, MPFR_RNDN);
        mpfr_mul(r34769, r34767, r34768, MPFR_RNDN);
        mpfr_set_d(r34770, a, MPFR_RNDN);
        ;
        mpfr_mul(r34772, r34770, r34771, MPFR_RNDN);
        mpfr_mul(r34773, r34772, r34768, MPFR_RNDN);
        mpfr_sub(r34774, r34769, r34773, MPFR_RNDN);
        mpfr_set_d(r34775, b, MPFR_RNDN);
        mpfr_set_d(r34776, c, MPFR_RNDN);
        mpfr_mul(r34777, r34775, r34776, MPFR_RNDN);
        mpfr_add(r34778, r34774, r34777, MPFR_RNDN);
        mpfr_mul(r34779, r34761, r34771, MPFR_RNDN);
        mpfr_set_d(r34780, i, MPFR_RNDN);
        mpfr_mul(r34781, r34779, r34780, MPFR_RNDN);
        mpfr_sub(r34782, r34778, r34781, MPFR_RNDN);
        mpfr_set_d(r34783, j, MPFR_RNDN);
        ;
        mpfr_mul(r34785, r34783, r34784, MPFR_RNDN);
        mpfr_set_d(r34786, k, MPFR_RNDN);
        mpfr_mul(r34787, r34785, r34786, MPFR_RNDN);
        mpfr_sub(r34788, r34782, r34787, MPFR_RNDN);
        return mpfr_get_d(r34788, MPFR_RNDN);
}

static mpfr_t 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, r34817, r34818, r34819, r34820, r34821, r34822, r34823, r34824, r34825, r34826, r34827, r34828, r34829, r34830, r34831, r34832, r34833, r34834, r34835;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34789);
        mpfr_init_set_str(r34790, "-5.38122143438205e-09", 10, MPFR_RNDN);
        mpfr_init(r34791);
        mpfr_init(r34792);
        mpfr_init(r34793);
        mpfr_init(r34794);
        mpfr_init_set_str(r34795, "4.0", 10, MPFR_RNDN);
        mpfr_init(r34796);
        mpfr_init(r34797);
        mpfr_init(r34798);
        mpfr_init(r34799);
        mpfr_init(r34800);
        mpfr_init(r34801);
        mpfr_init(r34802);
        mpfr_init(r34803);
        mpfr_init(r34804);
        mpfr_init_set_str(r34805, "18.0", 10, MPFR_RNDN);
        mpfr_init(r34806);
        mpfr_init(r34807);
        mpfr_init(r34808);
        mpfr_init(r34809);
        mpfr_init(r34810);
        mpfr_init_set_str(r34811, "27.0", 10, MPFR_RNDN);
        mpfr_init(r34812);
        mpfr_init(r34813);
        mpfr_init(r34814);
        mpfr_init(r34815);
        mpfr_init(r34816);
        mpfr_init(r34817);
        mpfr_init_set_str(r34818, "1.620828576697051e-140", 10, MPFR_RNDN);
        mpfr_init(r34819);
        mpfr_init(r34820);
        mpfr_init(r34821);
        mpfr_init(r34822);
        mpfr_init(r34823);
        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(r34832);
        mpfr_init(r34833);
        mpfr_init(r34834);
        mpfr_init(r34835);
}

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(r34789, z, MPFR_RNDN);
        ;
        mpfr_set_si(r34791, mpfr_cmp(r34789, r34790) <= 0, MPFR_RNDN);
        mpfr_set_d(r34792, b, MPFR_RNDN);
        mpfr_set_d(r34793, c, MPFR_RNDN);
        mpfr_mul(r34794, r34792, r34793, MPFR_RNDN);
        ;
        mpfr_set_d(r34796, x, MPFR_RNDN);
        mpfr_set_d(r34797, i, MPFR_RNDN);
        mpfr_mul(r34798, r34796, r34797, MPFR_RNDN);
        mpfr_set_d(r34799, a, MPFR_RNDN);
        mpfr_set_d(r34800, t, MPFR_RNDN);
        mpfr_mul(r34801, r34799, r34800, MPFR_RNDN);
        mpfr_add(r34802, r34798, r34801, MPFR_RNDN);
        mpfr_mul(r34803, r34795, r34802, MPFR_RNDN);
        mpfr_sub(r34804, r34794, r34803, MPFR_RNDN);
        ;
        mpfr_mul(r34806, r34805, r34796, MPFR_RNDN);
        mpfr_set_d(r34807, y, MPFR_RNDN);
        mpfr_mul(r34808, r34806, r34807, MPFR_RNDN);
        mpfr_mul(r34809, r34800, r34808, MPFR_RNDN);
        mpfr_mul(r34810, r34809, r34789, MPFR_RNDN);
        ;
        mpfr_set_d(r34812, k, MPFR_RNDN);
        mpfr_set_d(r34813, j, MPFR_RNDN);
        mpfr_mul(r34814, r34812, r34813, MPFR_RNDN);
        mpfr_mul(r34815, r34811, r34814, MPFR_RNDN);
        mpfr_sub(r34816, r34810, r34815, MPFR_RNDN);
        mpfr_add(r34817, r34804, r34816, MPFR_RNDN);
        ;
        mpfr_set_si(r34819, mpfr_cmp(r34789, r34818) <= 0, MPFR_RNDN);
        mpfr_mul(r34820, r34807, r34789, MPFR_RNDN);
        mpfr_mul(r34821, r34806, r34820, MPFR_RNDN);
        mpfr_mul(r34822, r34800, r34821, MPFR_RNDN);
        mpfr_cbrt(r34823, r34822, MPFR_RNDN);
        mpfr_mul(r34824, r34823, r34823, MPFR_RNDN);
        mpfr_mul(r34825, r34824, r34823, MPFR_RNDN);
        mpfr_sub(r34826, r34825, r34815, MPFR_RNDN);
        mpfr_add(r34827, r34804, r34826, MPFR_RNDN);
        mpfr_mul(r34828, r34800, r34796, MPFR_RNDN);
        mpfr_mul(r34829, r34807, r34828, MPFR_RNDN);
        mpfr_mul(r34830, r34789, r34829, MPFR_RNDN);
        mpfr_mul(r34831, r34805, r34830, MPFR_RNDN);
        mpfr_sub(r34832, r34831, r34815, MPFR_RNDN);
        mpfr_add(r34833, r34804, r34832, MPFR_RNDN);
        if (mpfr_get_si(r34819, MPFR_RNDN)) { mpfr_set(r34834, r34827, MPFR_RNDN); } else { mpfr_set(r34834, r34833, MPFR_RNDN); };
        if (mpfr_get_si(r34791, MPFR_RNDN)) { mpfr_set(r34835, r34817, MPFR_RNDN); } else { mpfr_set(r34835, r34834, MPFR_RNDN); };
        return mpfr_get_d(r34835, MPFR_RNDN);
}

static mpfr_t r34836, r34837, r34838, r34839, r34840, r34841, r34842, r34843, r34844, r34845, r34846, r34847, r34848, r34849, r34850, r34851, r34852, r34853, r34854, r34855, r34856, r34857, r34858, r34859, r34860, r34861, r34862, r34863, r34864, r34865, r34866, r34867, r34868, r34869, r34870, r34871, r34872, r34873, r34874, r34875, r34876, r34877, r34878, r34879, r34880, r34881, r34882;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34836);
        mpfr_init_set_str(r34837, "-5.38122143438205e-09", 10, MPFR_RNDN);
        mpfr_init(r34838);
        mpfr_init(r34839);
        mpfr_init(r34840);
        mpfr_init(r34841);
        mpfr_init_set_str(r34842, "4.0", 10, MPFR_RNDN);
        mpfr_init(r34843);
        mpfr_init(r34844);
        mpfr_init(r34845);
        mpfr_init(r34846);
        mpfr_init(r34847);
        mpfr_init(r34848);
        mpfr_init(r34849);
        mpfr_init(r34850);
        mpfr_init(r34851);
        mpfr_init_set_str(r34852, "18.0", 10, MPFR_RNDN);
        mpfr_init(r34853);
        mpfr_init(r34854);
        mpfr_init(r34855);
        mpfr_init(r34856);
        mpfr_init(r34857);
        mpfr_init_set_str(r34858, "27.0", 10, MPFR_RNDN);
        mpfr_init(r34859);
        mpfr_init(r34860);
        mpfr_init(r34861);
        mpfr_init(r34862);
        mpfr_init(r34863);
        mpfr_init(r34864);
        mpfr_init_set_str(r34865, "1.620828576697051e-140", 10, MPFR_RNDN);
        mpfr_init(r34866);
        mpfr_init(r34867);
        mpfr_init(r34868);
        mpfr_init(r34869);
        mpfr_init(r34870);
        mpfr_init(r34871);
        mpfr_init(r34872);
        mpfr_init(r34873);
        mpfr_init(r34874);
        mpfr_init(r34875);
        mpfr_init(r34876);
        mpfr_init(r34877);
        mpfr_init(r34878);
        mpfr_init(r34879);
        mpfr_init(r34880);
        mpfr_init(r34881);
        mpfr_init(r34882);
}

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(r34836, z, MPFR_RNDN);
        ;
        mpfr_set_si(r34838, mpfr_cmp(r34836, r34837) <= 0, MPFR_RNDN);
        mpfr_set_d(r34839, b, MPFR_RNDN);
        mpfr_set_d(r34840, c, MPFR_RNDN);
        mpfr_mul(r34841, r34839, r34840, MPFR_RNDN);
        ;
        mpfr_set_d(r34843, x, MPFR_RNDN);
        mpfr_set_d(r34844, i, MPFR_RNDN);
        mpfr_mul(r34845, r34843, r34844, MPFR_RNDN);
        mpfr_set_d(r34846, a, MPFR_RNDN);
        mpfr_set_d(r34847, t, MPFR_RNDN);
        mpfr_mul(r34848, r34846, r34847, MPFR_RNDN);
        mpfr_add(r34849, r34845, r34848, MPFR_RNDN);
        mpfr_mul(r34850, r34842, r34849, MPFR_RNDN);
        mpfr_sub(r34851, r34841, r34850, MPFR_RNDN);
        ;
        mpfr_mul(r34853, r34852, r34843, MPFR_RNDN);
        mpfr_set_d(r34854, y, MPFR_RNDN);
        mpfr_mul(r34855, r34853, r34854, MPFR_RNDN);
        mpfr_mul(r34856, r34847, r34855, MPFR_RNDN);
        mpfr_mul(r34857, r34856, r34836, MPFR_RNDN);
        ;
        mpfr_set_d(r34859, k, MPFR_RNDN);
        mpfr_set_d(r34860, j, MPFR_RNDN);
        mpfr_mul(r34861, r34859, r34860, MPFR_RNDN);
        mpfr_mul(r34862, r34858, r34861, MPFR_RNDN);
        mpfr_sub(r34863, r34857, r34862, MPFR_RNDN);
        mpfr_add(r34864, r34851, r34863, MPFR_RNDN);
        ;
        mpfr_set_si(r34866, mpfr_cmp(r34836, r34865) <= 0, MPFR_RNDN);
        mpfr_mul(r34867, r34854, r34836, MPFR_RNDN);
        mpfr_mul(r34868, r34853, r34867, MPFR_RNDN);
        mpfr_mul(r34869, r34847, r34868, MPFR_RNDN);
        mpfr_cbrt(r34870, r34869, MPFR_RNDN);
        mpfr_mul(r34871, r34870, r34870, MPFR_RNDN);
        mpfr_mul(r34872, r34871, r34870, MPFR_RNDN);
        mpfr_sub(r34873, r34872, r34862, MPFR_RNDN);
        mpfr_add(r34874, r34851, r34873, MPFR_RNDN);
        mpfr_mul(r34875, r34847, r34843, MPFR_RNDN);
        mpfr_mul(r34876, r34854, r34875, MPFR_RNDN);
        mpfr_mul(r34877, r34836, r34876, MPFR_RNDN);
        mpfr_mul(r34878, r34852, r34877, MPFR_RNDN);
        mpfr_sub(r34879, r34878, r34862, MPFR_RNDN);
        mpfr_add(r34880, r34851, r34879, MPFR_RNDN);
        if (mpfr_get_si(r34866, MPFR_RNDN)) { mpfr_set(r34881, r34874, MPFR_RNDN); } else { mpfr_set(r34881, r34880, MPFR_RNDN); };
        if (mpfr_get_si(r34838, MPFR_RNDN)) { mpfr_set(r34882, r34864, MPFR_RNDN); } else { mpfr_set(r34882, r34881, MPFR_RNDN); };
        return mpfr_get_d(r34882, MPFR_RNDN);
}

