#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 r10704 = x;
        float r10705 = 18.0f;
        float r10706 = r10704 * r10705;
        float r10707 = y;
        float r10708 = r10706 * r10707;
        float r10709 = z;
        float r10710 = r10708 * r10709;
        float r10711 = t;
        float r10712 = r10710 * r10711;
        float r10713 = a;
        float r10714 = 4.0f;
        float r10715 = r10713 * r10714;
        float r10716 = r10715 * r10711;
        float r10717 = r10712 - r10716;
        float r10718 = b;
        float r10719 = c;
        float r10720 = r10718 * r10719;
        float r10721 = r10717 + r10720;
        float r10722 = r10704 * r10714;
        float r10723 = i;
        float r10724 = r10722 * r10723;
        float r10725 = r10721 - r10724;
        float r10726 = j;
        float r10727 = 27.0f;
        float r10728 = r10726 * r10727;
        float r10729 = k;
        float r10730 = r10728 * r10729;
        float r10731 = r10725 - r10730;
        return r10731;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r10732 = x;
        double r10733 = 18.0;
        double r10734 = r10732 * r10733;
        double r10735 = y;
        double r10736 = r10734 * r10735;
        double r10737 = z;
        double r10738 = r10736 * r10737;
        double r10739 = t;
        double r10740 = r10738 * r10739;
        double r10741 = a;
        double r10742 = 4.0;
        double r10743 = r10741 * r10742;
        double r10744 = r10743 * r10739;
        double r10745 = r10740 - r10744;
        double r10746 = b;
        double r10747 = c;
        double r10748 = r10746 * r10747;
        double r10749 = r10745 + r10748;
        double r10750 = r10732 * r10742;
        double r10751 = i;
        double r10752 = r10750 * r10751;
        double r10753 = r10749 - r10752;
        double r10754 = j;
        double r10755 = 27.0;
        double r10756 = r10754 * r10755;
        double r10757 = k;
        double r10758 = r10756 * r10757;
        double r10759 = r10753 - r10758;
        return r10759;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r10760 = z;
        float r10761 = t;
        float r10762 = r10760 * r10761;
        float r10763 = x;
        float r10764 = 18.0f;
        float r10765 = r10763 * r10764;
        float r10766 = y;
        float r10767 = r10765 * r10766;
        float r10768 = r10762 * r10767;
        float r10769 = a;
        float r10770 = 4.0f;
        float r10771 = r10769 * r10770;
        float r10772 = r10771 * r10761;
        float r10773 = r10768 - r10772;
        float r10774 = c;
        float r10775 = b;
        float r10776 = r10774 * r10775;
        float r10777 = r10773 + r10776;
        float r10778 = r10763 * r10770;
        float r10779 = i;
        float r10780 = r10778 * r10779;
        float r10781 = r10777 - r10780;
        float r10782 = 27.0f;
        float r10783 = j;
        float r10784 = r10782 * r10783;
        float r10785 = k;
        float r10786 = r10784 * r10785;
        float r10787 = r10781 - r10786;
        float r10788 = -6.521498081460163e+302f;
        bool r10789 = r10787 <= r10788;
        float r10790 = r10785 * r10783;
        float r10791 = r10790 * r10782;
        float r10792 = r10780 + r10791;
        float r10793 = r10776 - r10792;
        float r10794 = -r10761;
        float r10795 = r10794 * r10771;
        float r10796 = r10793 + r10795;
        float r10797 = 3.032632112836556e+304f;
        bool r10798 = r10787 <= r10797;
        float r10799 = r10766 * r10760;
        float r10800 = r10799 * r10765;
        float r10801 = r10800 - r10771;
        float r10802 = r10761 * r10801;
        float r10803 = r10802 + r10793;
        float r10804 = r10798 ? r10787 : r10803;
        float r10805 = r10789 ? r10796 : r10804;
        return r10805;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r10806 = z;
        double r10807 = t;
        double r10808 = r10806 * r10807;
        double r10809 = x;
        double r10810 = 18.0;
        double r10811 = r10809 * r10810;
        double r10812 = y;
        double r10813 = r10811 * r10812;
        double r10814 = r10808 * r10813;
        double r10815 = a;
        double r10816 = 4.0;
        double r10817 = r10815 * r10816;
        double r10818 = r10817 * r10807;
        double r10819 = r10814 - r10818;
        double r10820 = c;
        double r10821 = b;
        double r10822 = r10820 * r10821;
        double r10823 = r10819 + r10822;
        double r10824 = r10809 * r10816;
        double r10825 = i;
        double r10826 = r10824 * r10825;
        double r10827 = r10823 - r10826;
        double r10828 = 27.0;
        double r10829 = j;
        double r10830 = r10828 * r10829;
        double r10831 = k;
        double r10832 = r10830 * r10831;
        double r10833 = r10827 - r10832;
        double r10834 = -6.521498081460163e+302;
        bool r10835 = r10833 <= r10834;
        double r10836 = r10831 * r10829;
        double r10837 = r10836 * r10828;
        double r10838 = r10826 + r10837;
        double r10839 = r10822 - r10838;
        double r10840 = -r10807;
        double r10841 = r10840 * r10817;
        double r10842 = r10839 + r10841;
        double r10843 = 3.032632112836556e+304;
        bool r10844 = r10833 <= r10843;
        double r10845 = r10812 * r10806;
        double r10846 = r10845 * r10811;
        double r10847 = r10846 - r10817;
        double r10848 = r10807 * r10847;
        double r10849 = r10848 + r10839;
        double r10850 = r10844 ? r10833 : r10849;
        double r10851 = r10835 ? r10842 : r10850;
        return r10851;
}

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 r10852, r10853, r10854, r10855, r10856, r10857, r10858, r10859, r10860, r10861, r10862, r10863, r10864, r10865, r10866, r10867, r10868, r10869, r10870, r10871, r10872, r10873, r10874, r10875, r10876, r10877, r10878, r10879;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r10852);
        mpfr_init_set_str(r10853, "18.0", 10, MPFR_RNDN);
        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_set_str(r10862, "4.0", 10, MPFR_RNDN);
        mpfr_init(r10863);
        mpfr_init(r10864);
        mpfr_init(r10865);
        mpfr_init(r10866);
        mpfr_init(r10867);
        mpfr_init(r10868);
        mpfr_init(r10869);
        mpfr_init(r10870);
        mpfr_init(r10871);
        mpfr_init(r10872);
        mpfr_init(r10873);
        mpfr_init(r10874);
        mpfr_init_set_str(r10875, "27.0", 10, MPFR_RNDN);
        mpfr_init(r10876);
        mpfr_init(r10877);
        mpfr_init(r10878);
        mpfr_init(r10879);
}

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(r10852, x, MPFR_RNDN);
        ;
        mpfr_mul(r10854, r10852, r10853, MPFR_RNDN);
        mpfr_set_d(r10855, y, MPFR_RNDN);
        mpfr_mul(r10856, r10854, r10855, MPFR_RNDN);
        mpfr_set_d(r10857, z, MPFR_RNDN);
        mpfr_mul(r10858, r10856, r10857, MPFR_RNDN);
        mpfr_set_d(r10859, t, MPFR_RNDN);
        mpfr_mul(r10860, r10858, r10859, MPFR_RNDN);
        mpfr_set_d(r10861, a, MPFR_RNDN);
        ;
        mpfr_mul(r10863, r10861, r10862, MPFR_RNDN);
        mpfr_mul(r10864, r10863, r10859, MPFR_RNDN);
        mpfr_sub(r10865, r10860, r10864, MPFR_RNDN);
        mpfr_set_d(r10866, b, MPFR_RNDN);
        mpfr_set_d(r10867, c, MPFR_RNDN);
        mpfr_mul(r10868, r10866, r10867, MPFR_RNDN);
        mpfr_add(r10869, r10865, r10868, MPFR_RNDN);
        mpfr_mul(r10870, r10852, r10862, MPFR_RNDN);
        mpfr_set_d(r10871, i, MPFR_RNDN);
        mpfr_mul(r10872, r10870, r10871, MPFR_RNDN);
        mpfr_sub(r10873, r10869, r10872, MPFR_RNDN);
        mpfr_set_d(r10874, j, MPFR_RNDN);
        ;
        mpfr_mul(r10876, r10874, r10875, MPFR_RNDN);
        mpfr_set_d(r10877, k, MPFR_RNDN);
        mpfr_mul(r10878, r10876, r10877, MPFR_RNDN);
        mpfr_sub(r10879, r10873, r10878, MPFR_RNDN);
        return mpfr_get_d(r10879, MPFR_RNDN);
}

static mpfr_t 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, r10913, r10914, r10915, r10916, r10917, r10918, r10919, r10920, r10921, r10922, r10923, r10924, r10925;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10880);
        mpfr_init(r10881);
        mpfr_init(r10882);
        mpfr_init(r10883);
        mpfr_init_set_str(r10884, "18.0", 10, MPFR_RNDN);
        mpfr_init(r10885);
        mpfr_init(r10886);
        mpfr_init(r10887);
        mpfr_init(r10888);
        mpfr_init(r10889);
        mpfr_init_set_str(r10890, "4.0", 10, MPFR_RNDN);
        mpfr_init(r10891);
        mpfr_init(r10892);
        mpfr_init(r10893);
        mpfr_init(r10894);
        mpfr_init(r10895);
        mpfr_init(r10896);
        mpfr_init(r10897);
        mpfr_init(r10898);
        mpfr_init(r10899);
        mpfr_init(r10900);
        mpfr_init(r10901);
        mpfr_init_set_str(r10902, "27.0", 10, MPFR_RNDN);
        mpfr_init(r10903);
        mpfr_init(r10904);
        mpfr_init(r10905);
        mpfr_init(r10906);
        mpfr_init(r10907);
        mpfr_init_set_str(r10908, "-6.521498081460163e+302", 10, MPFR_RNDN);
        mpfr_init(r10909);
        mpfr_init(r10910);
        mpfr_init(r10911);
        mpfr_init(r10912);
        mpfr_init(r10913);
        mpfr_init(r10914);
        mpfr_init(r10915);
        mpfr_init(r10916);
        mpfr_init_set_str(r10917, "3.032632112836556e+304", 10, MPFR_RNDN);
        mpfr_init(r10918);
        mpfr_init(r10919);
        mpfr_init(r10920);
        mpfr_init(r10921);
        mpfr_init(r10922);
        mpfr_init(r10923);
        mpfr_init(r10924);
        mpfr_init(r10925);
}

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(r10880, z, MPFR_RNDN);
        mpfr_set_d(r10881, t, MPFR_RNDN);
        mpfr_mul(r10882, r10880, r10881, MPFR_RNDN);
        mpfr_set_d(r10883, x, MPFR_RNDN);
        ;
        mpfr_mul(r10885, r10883, r10884, MPFR_RNDN);
        mpfr_set_d(r10886, y, MPFR_RNDN);
        mpfr_mul(r10887, r10885, r10886, MPFR_RNDN);
        mpfr_mul(r10888, r10882, r10887, MPFR_RNDN);
        mpfr_set_d(r10889, a, MPFR_RNDN);
        ;
        mpfr_mul(r10891, r10889, r10890, MPFR_RNDN);
        mpfr_mul(r10892, r10891, r10881, MPFR_RNDN);
        mpfr_sub(r10893, r10888, r10892, MPFR_RNDN);
        mpfr_set_d(r10894, c, MPFR_RNDN);
        mpfr_set_d(r10895, b, MPFR_RNDN);
        mpfr_mul(r10896, r10894, r10895, MPFR_RNDN);
        mpfr_add(r10897, r10893, r10896, MPFR_RNDN);
        mpfr_mul(r10898, r10883, r10890, MPFR_RNDN);
        mpfr_set_d(r10899, i, MPFR_RNDN);
        mpfr_mul(r10900, r10898, r10899, MPFR_RNDN);
        mpfr_sub(r10901, r10897, r10900, MPFR_RNDN);
        ;
        mpfr_set_d(r10903, j, MPFR_RNDN);
        mpfr_mul(r10904, r10902, r10903, MPFR_RNDN);
        mpfr_set_d(r10905, k, MPFR_RNDN);
        mpfr_mul(r10906, r10904, r10905, MPFR_RNDN);
        mpfr_sub(r10907, r10901, r10906, MPFR_RNDN);
        ;
        mpfr_set_si(r10909, mpfr_cmp(r10907, r10908) <= 0, MPFR_RNDN);
        mpfr_mul(r10910, r10905, r10903, MPFR_RNDN);
        mpfr_mul(r10911, r10910, r10902, MPFR_RNDN);
        mpfr_add(r10912, r10900, r10911, MPFR_RNDN);
        mpfr_sub(r10913, r10896, r10912, MPFR_RNDN);
        mpfr_neg(r10914, r10881, MPFR_RNDN);
        mpfr_mul(r10915, r10914, r10891, MPFR_RNDN);
        mpfr_add(r10916, r10913, r10915, MPFR_RNDN);
        ;
        mpfr_set_si(r10918, mpfr_cmp(r10907, r10917) <= 0, MPFR_RNDN);
        mpfr_mul(r10919, r10886, r10880, MPFR_RNDN);
        mpfr_mul(r10920, r10919, r10885, MPFR_RNDN);
        mpfr_sub(r10921, r10920, r10891, MPFR_RNDN);
        mpfr_mul(r10922, r10881, r10921, MPFR_RNDN);
        mpfr_add(r10923, r10922, r10913, MPFR_RNDN);
        if (mpfr_get_si(r10918, MPFR_RNDN)) { mpfr_set(r10924, r10907, MPFR_RNDN); } else { mpfr_set(r10924, r10923, MPFR_RNDN); };
        if (mpfr_get_si(r10909, MPFR_RNDN)) { mpfr_set(r10925, r10916, MPFR_RNDN); } else { mpfr_set(r10925, r10924, MPFR_RNDN); };
        return mpfr_get_d(r10925, MPFR_RNDN);
}

static mpfr_t r10926, r10927, r10928, r10929, r10930, r10931, r10932, r10933, r10934, r10935, r10936, r10937, r10938, r10939, r10940, r10941, r10942, r10943, r10944, r10945, r10946, r10947, r10948, r10949, r10950, r10951, r10952, r10953, r10954, r10955, r10956, r10957, r10958, r10959, r10960, r10961, r10962, r10963, r10964, r10965, r10966, r10967, r10968, r10969, r10970, r10971;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10926);
        mpfr_init(r10927);
        mpfr_init(r10928);
        mpfr_init(r10929);
        mpfr_init_set_str(r10930, "18.0", 10, MPFR_RNDN);
        mpfr_init(r10931);
        mpfr_init(r10932);
        mpfr_init(r10933);
        mpfr_init(r10934);
        mpfr_init(r10935);
        mpfr_init_set_str(r10936, "4.0", 10, MPFR_RNDN);
        mpfr_init(r10937);
        mpfr_init(r10938);
        mpfr_init(r10939);
        mpfr_init(r10940);
        mpfr_init(r10941);
        mpfr_init(r10942);
        mpfr_init(r10943);
        mpfr_init(r10944);
        mpfr_init(r10945);
        mpfr_init(r10946);
        mpfr_init(r10947);
        mpfr_init_set_str(r10948, "27.0", 10, MPFR_RNDN);
        mpfr_init(r10949);
        mpfr_init(r10950);
        mpfr_init(r10951);
        mpfr_init(r10952);
        mpfr_init(r10953);
        mpfr_init_set_str(r10954, "-6.521498081460163e+302", 10, MPFR_RNDN);
        mpfr_init(r10955);
        mpfr_init(r10956);
        mpfr_init(r10957);
        mpfr_init(r10958);
        mpfr_init(r10959);
        mpfr_init(r10960);
        mpfr_init(r10961);
        mpfr_init(r10962);
        mpfr_init_set_str(r10963, "3.032632112836556e+304", 10, MPFR_RNDN);
        mpfr_init(r10964);
        mpfr_init(r10965);
        mpfr_init(r10966);
        mpfr_init(r10967);
        mpfr_init(r10968);
        mpfr_init(r10969);
        mpfr_init(r10970);
        mpfr_init(r10971);
}

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(r10926, z, MPFR_RNDN);
        mpfr_set_d(r10927, t, MPFR_RNDN);
        mpfr_mul(r10928, r10926, r10927, MPFR_RNDN);
        mpfr_set_d(r10929, x, MPFR_RNDN);
        ;
        mpfr_mul(r10931, r10929, r10930, MPFR_RNDN);
        mpfr_set_d(r10932, y, MPFR_RNDN);
        mpfr_mul(r10933, r10931, r10932, MPFR_RNDN);
        mpfr_mul(r10934, r10928, r10933, MPFR_RNDN);
        mpfr_set_d(r10935, a, MPFR_RNDN);
        ;
        mpfr_mul(r10937, r10935, r10936, MPFR_RNDN);
        mpfr_mul(r10938, r10937, r10927, MPFR_RNDN);
        mpfr_sub(r10939, r10934, r10938, MPFR_RNDN);
        mpfr_set_d(r10940, c, MPFR_RNDN);
        mpfr_set_d(r10941, b, MPFR_RNDN);
        mpfr_mul(r10942, r10940, r10941, MPFR_RNDN);
        mpfr_add(r10943, r10939, r10942, MPFR_RNDN);
        mpfr_mul(r10944, r10929, r10936, MPFR_RNDN);
        mpfr_set_d(r10945, i, MPFR_RNDN);
        mpfr_mul(r10946, r10944, r10945, MPFR_RNDN);
        mpfr_sub(r10947, r10943, r10946, MPFR_RNDN);
        ;
        mpfr_set_d(r10949, j, MPFR_RNDN);
        mpfr_mul(r10950, r10948, r10949, MPFR_RNDN);
        mpfr_set_d(r10951, k, MPFR_RNDN);
        mpfr_mul(r10952, r10950, r10951, MPFR_RNDN);
        mpfr_sub(r10953, r10947, r10952, MPFR_RNDN);
        ;
        mpfr_set_si(r10955, mpfr_cmp(r10953, r10954) <= 0, MPFR_RNDN);
        mpfr_mul(r10956, r10951, r10949, MPFR_RNDN);
        mpfr_mul(r10957, r10956, r10948, MPFR_RNDN);
        mpfr_add(r10958, r10946, r10957, MPFR_RNDN);
        mpfr_sub(r10959, r10942, r10958, MPFR_RNDN);
        mpfr_neg(r10960, r10927, MPFR_RNDN);
        mpfr_mul(r10961, r10960, r10937, MPFR_RNDN);
        mpfr_add(r10962, r10959, r10961, MPFR_RNDN);
        ;
        mpfr_set_si(r10964, mpfr_cmp(r10953, r10963) <= 0, MPFR_RNDN);
        mpfr_mul(r10965, r10932, r10926, MPFR_RNDN);
        mpfr_mul(r10966, r10965, r10931, MPFR_RNDN);
        mpfr_sub(r10967, r10966, r10937, MPFR_RNDN);
        mpfr_mul(r10968, r10927, r10967, MPFR_RNDN);
        mpfr_add(r10969, r10968, r10959, MPFR_RNDN);
        if (mpfr_get_si(r10964, MPFR_RNDN)) { mpfr_set(r10970, r10953, MPFR_RNDN); } else { mpfr_set(r10970, r10969, MPFR_RNDN); };
        if (mpfr_get_si(r10955, MPFR_RNDN)) { mpfr_set(r10971, r10962, MPFR_RNDN); } else { mpfr_set(r10971, r10970, MPFR_RNDN); };
        return mpfr_get_d(r10971, MPFR_RNDN);
}

