#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 r10653 = x;
        float r10654 = 18.0;
        float r10655 = r10653 * r10654;
        float r10656 = y;
        float r10657 = r10655 * r10656;
        float r10658 = z;
        float r10659 = r10657 * r10658;
        float r10660 = t;
        float r10661 = r10659 * r10660;
        float r10662 = a;
        float r10663 = 4.0;
        float r10664 = r10662 * r10663;
        float r10665 = r10664 * r10660;
        float r10666 = r10661 - r10665;
        float r10667 = b;
        float r10668 = c;
        float r10669 = r10667 * r10668;
        float r10670 = r10666 + r10669;
        float r10671 = r10653 * r10663;
        float r10672 = i;
        float r10673 = r10671 * r10672;
        float r10674 = r10670 - r10673;
        float r10675 = j;
        float r10676 = 27.0;
        float r10677 = r10675 * r10676;
        float r10678 = k;
        float r10679 = r10677 * r10678;
        float r10680 = r10674 - r10679;
        return r10680;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r10681 = x;
        double r10682 = 18.0;
        double r10683 = r10681 * r10682;
        double r10684 = y;
        double r10685 = r10683 * r10684;
        double r10686 = z;
        double r10687 = r10685 * r10686;
        double r10688 = t;
        double r10689 = r10687 * r10688;
        double r10690 = a;
        double r10691 = 4.0;
        double r10692 = r10690 * r10691;
        double r10693 = r10692 * r10688;
        double r10694 = r10689 - r10693;
        double r10695 = b;
        double r10696 = c;
        double r10697 = r10695 * r10696;
        double r10698 = r10694 + r10697;
        double r10699 = r10681 * r10691;
        double r10700 = i;
        double r10701 = r10699 * r10700;
        double r10702 = r10698 - r10701;
        double r10703 = j;
        double r10704 = 27.0;
        double r10705 = r10703 * r10704;
        double r10706 = k;
        double r10707 = r10705 * r10706;
        double r10708 = r10702 - r10707;
        return r10708;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r10709 = t;
        float r10710 = x;
        float r10711 = r10709 * r10710;
        float r10712 = 18.0;
        float r10713 = r10711 * r10712;
        float r10714 = y;
        float r10715 = z;
        float r10716 = r10714 * r10715;
        float r10717 = a;
        float r10718 = -r10717;
        float r10719 = 4.0;
        float r10720 = r10719 * r10709;
        float r10721 = b;
        float r10722 = c;
        float r10723 = r10721 * r10722;
        float r10724 = fma(r10718, r10720, r10723);
        float r10725 = fma(r10713, r10716, r10724);
        float r10726 = j;
        float r10727 = 27.0;
        float r10728 = k;
        float r10729 = r10727 * r10728;
        float r10730 = r10710 * r10719;
        float r10731 = i;
        float r10732 = r10730 * r10731;
        float r10733 = fma(r10726, r10729, r10732);
        float r10734 = r10725 - r10733;
        float r10735 = -1.0810659153319454e+304;
        bool r10736 = r10734 <= r10735;
        float r10737 = r10709 * r10715;
        float r10738 = r10714 * r10710;
        float r10739 = r10737 * r10738;
        float r10740 = r10717 * r10719;
        float r10741 = -r10709;
        float r10742 = fma(r10740, r10741, r10723);
        float r10743 = fma(r10739, r10712, r10742);
        float r10744 = r10726 * r10728;
        float r10745 = r10731 * r10710;
        float r10746 = r10719 * r10745;
        float r10747 = fma(r10744, r10727, r10746);
        float r10748 = r10743 - r10747;
        float r10749 = 6.225600491144624e+299;
        bool r10750 = r10734 <= r10749;
        float r10751 = r10750 ? r10734 : r10748;
        float r10752 = r10736 ? r10748 : r10751;
        return r10752;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r10753 = t;
        double r10754 = x;
        double r10755 = r10753 * r10754;
        double r10756 = 18.0;
        double r10757 = r10755 * r10756;
        double r10758 = y;
        double r10759 = z;
        double r10760 = r10758 * r10759;
        double r10761 = a;
        double r10762 = -r10761;
        double r10763 = 4.0;
        double r10764 = r10763 * r10753;
        double r10765 = b;
        double r10766 = c;
        double r10767 = r10765 * r10766;
        double r10768 = fma(r10762, r10764, r10767);
        double r10769 = fma(r10757, r10760, r10768);
        double r10770 = j;
        double r10771 = 27.0;
        double r10772 = k;
        double r10773 = r10771 * r10772;
        double r10774 = r10754 * r10763;
        double r10775 = i;
        double r10776 = r10774 * r10775;
        double r10777 = fma(r10770, r10773, r10776);
        double r10778 = r10769 - r10777;
        double r10779 = -1.0810659153319454e+304;
        bool r10780 = r10778 <= r10779;
        double r10781 = r10753 * r10759;
        double r10782 = r10758 * r10754;
        double r10783 = r10781 * r10782;
        double r10784 = r10761 * r10763;
        double r10785 = -r10753;
        double r10786 = fma(r10784, r10785, r10767);
        double r10787 = fma(r10783, r10756, r10786);
        double r10788 = r10770 * r10772;
        double r10789 = r10775 * r10754;
        double r10790 = r10763 * r10789;
        double r10791 = fma(r10788, r10771, r10790);
        double r10792 = r10787 - r10791;
        double r10793 = 6.225600491144624e+299;
        bool r10794 = r10778 <= r10793;
        double r10795 = r10794 ? r10778 : r10792;
        double r10796 = r10780 ? r10792 : r10795;
        return r10796;
}

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 r10797, r10798, r10799, r10800, r10801, r10802, r10803, r10804, r10805, r10806, r10807, r10808, r10809, r10810, r10811, r10812, r10813, r10814, r10815, r10816, r10817, r10818, r10819, r10820, r10821, r10822, r10823, r10824;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r10797);
        mpfr_init_set_str(r10798, "18.0", 10, MPFR_RNDN);
        mpfr_init(r10799);
        mpfr_init(r10800);
        mpfr_init(r10801);
        mpfr_init(r10802);
        mpfr_init(r10803);
        mpfr_init(r10804);
        mpfr_init(r10805);
        mpfr_init(r10806);
        mpfr_init_set_str(r10807, "4.0", 10, MPFR_RNDN);
        mpfr_init(r10808);
        mpfr_init(r10809);
        mpfr_init(r10810);
        mpfr_init(r10811);
        mpfr_init(r10812);
        mpfr_init(r10813);
        mpfr_init(r10814);
        mpfr_init(r10815);
        mpfr_init(r10816);
        mpfr_init(r10817);
        mpfr_init(r10818);
        mpfr_init(r10819);
        mpfr_init_set_str(r10820, "27.0", 10, MPFR_RNDN);
        mpfr_init(r10821);
        mpfr_init(r10822);
        mpfr_init(r10823);
        mpfr_init(r10824);
}

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(r10797, x, MPFR_RNDN);
        ;
        mpfr_mul(r10799, r10797, r10798, MPFR_RNDN);
        mpfr_set_d(r10800, y, MPFR_RNDN);
        mpfr_mul(r10801, r10799, r10800, MPFR_RNDN);
        mpfr_set_d(r10802, z, MPFR_RNDN);
        mpfr_mul(r10803, r10801, r10802, MPFR_RNDN);
        mpfr_set_d(r10804, t, MPFR_RNDN);
        mpfr_mul(r10805, r10803, r10804, MPFR_RNDN);
        mpfr_set_d(r10806, a, MPFR_RNDN);
        ;
        mpfr_mul(r10808, r10806, r10807, MPFR_RNDN);
        mpfr_mul(r10809, r10808, r10804, MPFR_RNDN);
        mpfr_sub(r10810, r10805, r10809, MPFR_RNDN);
        mpfr_set_d(r10811, b, MPFR_RNDN);
        mpfr_set_d(r10812, c, MPFR_RNDN);
        mpfr_mul(r10813, r10811, r10812, MPFR_RNDN);
        mpfr_add(r10814, r10810, r10813, MPFR_RNDN);
        mpfr_mul(r10815, r10797, r10807, MPFR_RNDN);
        mpfr_set_d(r10816, i, MPFR_RNDN);
        mpfr_mul(r10817, r10815, r10816, MPFR_RNDN);
        mpfr_sub(r10818, r10814, r10817, MPFR_RNDN);
        mpfr_set_d(r10819, j, MPFR_RNDN);
        ;
        mpfr_mul(r10821, r10819, r10820, MPFR_RNDN);
        mpfr_set_d(r10822, k, MPFR_RNDN);
        mpfr_mul(r10823, r10821, r10822, MPFR_RNDN);
        mpfr_sub(r10824, r10818, r10823, MPFR_RNDN);
        return mpfr_get_d(r10824, MPFR_RNDN);
}

static mpfr_t r10825, r10826, r10827, r10828, r10829, r10830, r10831, r10832, r10833, r10834, r10835, r10836, r10837, r10838, r10839, r10840, r10841, r10842, r10843, r10844, r10845, r10846, r10847, r10848, r10849, r10850, r10851, r10852, r10853, r10854, r10855, r10856, r10857, r10858, r10859, r10860, r10861, r10862, r10863, r10864, r10865, r10866, r10867, r10868;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10825);
        mpfr_init(r10826);
        mpfr_init(r10827);
        mpfr_init_set_str(r10828, "18.0", 10, MPFR_RNDN);
        mpfr_init(r10829);
        mpfr_init(r10830);
        mpfr_init(r10831);
        mpfr_init(r10832);
        mpfr_init(r10833);
        mpfr_init(r10834);
        mpfr_init_set_str(r10835, "4.0", 10, MPFR_RNDN);
        mpfr_init(r10836);
        mpfr_init(r10837);
        mpfr_init(r10838);
        mpfr_init(r10839);
        mpfr_init(r10840);
        mpfr_init(r10841);
        mpfr_init(r10842);
        mpfr_init_set_str(r10843, "27.0", 10, MPFR_RNDN);
        mpfr_init(r10844);
        mpfr_init(r10845);
        mpfr_init(r10846);
        mpfr_init(r10847);
        mpfr_init(r10848);
        mpfr_init(r10849);
        mpfr_init(r10850);
        mpfr_init_set_str(r10851, "-1.0810659153319454e+304", 10, MPFR_RNDN);
        mpfr_init(r10852);
        mpfr_init(r10853);
        mpfr_init(r10854);
        mpfr_init(r10855);
        mpfr_init(r10856);
        mpfr_init(r10857);
        mpfr_init(r10858);
        mpfr_init(r10859);
        mpfr_init(r10860);
        mpfr_init(r10861);
        mpfr_init(r10862);
        mpfr_init(r10863);
        mpfr_init(r10864);
        mpfr_init_set_str(r10865, "6.225600491144624e+299", 10, MPFR_RNDN);
        mpfr_init(r10866);
        mpfr_init(r10867);
        mpfr_init(r10868);
}

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(r10825, t, MPFR_RNDN);
        mpfr_set_d(r10826, x, MPFR_RNDN);
        mpfr_mul(r10827, r10825, r10826, MPFR_RNDN);
        ;
        mpfr_mul(r10829, r10827, r10828, MPFR_RNDN);
        mpfr_set_d(r10830, y, MPFR_RNDN);
        mpfr_set_d(r10831, z, MPFR_RNDN);
        mpfr_mul(r10832, r10830, r10831, MPFR_RNDN);
        mpfr_set_d(r10833, a, MPFR_RNDN);
        mpfr_neg(r10834, r10833, MPFR_RNDN);
        ;
        mpfr_mul(r10836, r10835, r10825, MPFR_RNDN);
        mpfr_set_d(r10837, b, MPFR_RNDN);
        mpfr_set_d(r10838, c, MPFR_RNDN);
        mpfr_mul(r10839, r10837, r10838, MPFR_RNDN);
        mpfr_fma(r10840, r10834, r10836, r10839, MPFR_RNDN);
        mpfr_fma(r10841, r10829, r10832, r10840, MPFR_RNDN);
        mpfr_set_d(r10842, j, MPFR_RNDN);
        ;
        mpfr_set_d(r10844, k, MPFR_RNDN);
        mpfr_mul(r10845, r10843, r10844, MPFR_RNDN);
        mpfr_mul(r10846, r10826, r10835, MPFR_RNDN);
        mpfr_set_d(r10847, i, MPFR_RNDN);
        mpfr_mul(r10848, r10846, r10847, MPFR_RNDN);
        mpfr_fma(r10849, r10842, r10845, r10848, MPFR_RNDN);
        mpfr_sub(r10850, r10841, r10849, MPFR_RNDN);
        ;
        mpfr_set_si(r10852, mpfr_cmp(r10850, r10851) <= 0, MPFR_RNDN);
        mpfr_mul(r10853, r10825, r10831, MPFR_RNDN);
        mpfr_mul(r10854, r10830, r10826, MPFR_RNDN);
        mpfr_mul(r10855, r10853, r10854, MPFR_RNDN);
        mpfr_mul(r10856, r10833, r10835, MPFR_RNDN);
        mpfr_neg(r10857, r10825, MPFR_RNDN);
        mpfr_fma(r10858, r10856, r10857, r10839, MPFR_RNDN);
        mpfr_fma(r10859, r10855, r10828, r10858, MPFR_RNDN);
        mpfr_mul(r10860, r10842, r10844, MPFR_RNDN);
        mpfr_mul(r10861, r10847, r10826, MPFR_RNDN);
        mpfr_mul(r10862, r10835, r10861, MPFR_RNDN);
        mpfr_fma(r10863, r10860, r10843, r10862, MPFR_RNDN);
        mpfr_sub(r10864, r10859, r10863, MPFR_RNDN);
        ;
        mpfr_set_si(r10866, mpfr_cmp(r10850, r10865) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r10866, MPFR_RNDN)) { mpfr_set(r10867, r10850, MPFR_RNDN); } else { mpfr_set(r10867, r10864, MPFR_RNDN); };
        if (mpfr_get_si(r10852, MPFR_RNDN)) { mpfr_set(r10868, r10864, MPFR_RNDN); } else { mpfr_set(r10868, r10867, MPFR_RNDN); };
        return mpfr_get_d(r10868, MPFR_RNDN);
}

static mpfr_t r10869, r10870, r10871, r10872, r10873, r10874, r10875, r10876, r10877, r10878, r10879, r10880, r10881, r10882, r10883, r10884, r10885, r10886, r10887, r10888, r10889, r10890, r10891, r10892, r10893, r10894, r10895, r10896, r10897, r10898, r10899, r10900, r10901, r10902, r10903, r10904, r10905, r10906, r10907, r10908, r10909, r10910, r10911, r10912;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10869);
        mpfr_init(r10870);
        mpfr_init(r10871);
        mpfr_init_set_str(r10872, "18.0", 10, MPFR_RNDN);
        mpfr_init(r10873);
        mpfr_init(r10874);
        mpfr_init(r10875);
        mpfr_init(r10876);
        mpfr_init(r10877);
        mpfr_init(r10878);
        mpfr_init_set_str(r10879, "4.0", 10, MPFR_RNDN);
        mpfr_init(r10880);
        mpfr_init(r10881);
        mpfr_init(r10882);
        mpfr_init(r10883);
        mpfr_init(r10884);
        mpfr_init(r10885);
        mpfr_init(r10886);
        mpfr_init_set_str(r10887, "27.0", 10, MPFR_RNDN);
        mpfr_init(r10888);
        mpfr_init(r10889);
        mpfr_init(r10890);
        mpfr_init(r10891);
        mpfr_init(r10892);
        mpfr_init(r10893);
        mpfr_init(r10894);
        mpfr_init_set_str(r10895, "-1.0810659153319454e+304", 10, MPFR_RNDN);
        mpfr_init(r10896);
        mpfr_init(r10897);
        mpfr_init(r10898);
        mpfr_init(r10899);
        mpfr_init(r10900);
        mpfr_init(r10901);
        mpfr_init(r10902);
        mpfr_init(r10903);
        mpfr_init(r10904);
        mpfr_init(r10905);
        mpfr_init(r10906);
        mpfr_init(r10907);
        mpfr_init(r10908);
        mpfr_init_set_str(r10909, "6.225600491144624e+299", 10, MPFR_RNDN);
        mpfr_init(r10910);
        mpfr_init(r10911);
        mpfr_init(r10912);
}

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(r10869, t, MPFR_RNDN);
        mpfr_set_d(r10870, x, MPFR_RNDN);
        mpfr_mul(r10871, r10869, r10870, MPFR_RNDN);
        ;
        mpfr_mul(r10873, r10871, r10872, MPFR_RNDN);
        mpfr_set_d(r10874, y, MPFR_RNDN);
        mpfr_set_d(r10875, z, MPFR_RNDN);
        mpfr_mul(r10876, r10874, r10875, MPFR_RNDN);
        mpfr_set_d(r10877, a, MPFR_RNDN);
        mpfr_neg(r10878, r10877, MPFR_RNDN);
        ;
        mpfr_mul(r10880, r10879, r10869, MPFR_RNDN);
        mpfr_set_d(r10881, b, MPFR_RNDN);
        mpfr_set_d(r10882, c, MPFR_RNDN);
        mpfr_mul(r10883, r10881, r10882, MPFR_RNDN);
        mpfr_fma(r10884, r10878, r10880, r10883, MPFR_RNDN);
        mpfr_fma(r10885, r10873, r10876, r10884, MPFR_RNDN);
        mpfr_set_d(r10886, j, MPFR_RNDN);
        ;
        mpfr_set_d(r10888, k, MPFR_RNDN);
        mpfr_mul(r10889, r10887, r10888, MPFR_RNDN);
        mpfr_mul(r10890, r10870, r10879, MPFR_RNDN);
        mpfr_set_d(r10891, i, MPFR_RNDN);
        mpfr_mul(r10892, r10890, r10891, MPFR_RNDN);
        mpfr_fma(r10893, r10886, r10889, r10892, MPFR_RNDN);
        mpfr_sub(r10894, r10885, r10893, MPFR_RNDN);
        ;
        mpfr_set_si(r10896, mpfr_cmp(r10894, r10895) <= 0, MPFR_RNDN);
        mpfr_mul(r10897, r10869, r10875, MPFR_RNDN);
        mpfr_mul(r10898, r10874, r10870, MPFR_RNDN);
        mpfr_mul(r10899, r10897, r10898, MPFR_RNDN);
        mpfr_mul(r10900, r10877, r10879, MPFR_RNDN);
        mpfr_neg(r10901, r10869, MPFR_RNDN);
        mpfr_fma(r10902, r10900, r10901, r10883, MPFR_RNDN);
        mpfr_fma(r10903, r10899, r10872, r10902, MPFR_RNDN);
        mpfr_mul(r10904, r10886, r10888, MPFR_RNDN);
        mpfr_mul(r10905, r10891, r10870, MPFR_RNDN);
        mpfr_mul(r10906, r10879, r10905, MPFR_RNDN);
        mpfr_fma(r10907, r10904, r10887, r10906, MPFR_RNDN);
        mpfr_sub(r10908, r10903, r10907, MPFR_RNDN);
        ;
        mpfr_set_si(r10910, mpfr_cmp(r10894, r10909) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r10910, MPFR_RNDN)) { mpfr_set(r10911, r10894, MPFR_RNDN); } else { mpfr_set(r10911, r10908, MPFR_RNDN); };
        if (mpfr_get_si(r10896, MPFR_RNDN)) { mpfr_set(r10912, r10908, MPFR_RNDN); } else { mpfr_set(r10912, r10911, MPFR_RNDN); };
        return mpfr_get_d(r10912, MPFR_RNDN);
}

