#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 r10738 = x;
        float r10739 = 18.0;
        float r10740 = r10738 * r10739;
        float r10741 = y;
        float r10742 = r10740 * r10741;
        float r10743 = z;
        float r10744 = r10742 * r10743;
        float r10745 = t;
        float r10746 = r10744 * r10745;
        float r10747 = a;
        float r10748 = 4.0;
        float r10749 = r10747 * r10748;
        float r10750 = r10749 * r10745;
        float r10751 = r10746 - r10750;
        float r10752 = b;
        float r10753 = c;
        float r10754 = r10752 * r10753;
        float r10755 = r10751 + r10754;
        float r10756 = r10738 * r10748;
        float r10757 = i;
        float r10758 = r10756 * r10757;
        float r10759 = r10755 - r10758;
        float r10760 = j;
        float r10761 = 27.0;
        float r10762 = r10760 * r10761;
        float r10763 = k;
        float r10764 = r10762 * r10763;
        float r10765 = r10759 - r10764;
        return r10765;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r10766 = x;
        double r10767 = 18.0;
        double r10768 = r10766 * r10767;
        double r10769 = y;
        double r10770 = r10768 * r10769;
        double r10771 = z;
        double r10772 = r10770 * r10771;
        double r10773 = t;
        double r10774 = r10772 * r10773;
        double r10775 = a;
        double r10776 = 4.0;
        double r10777 = r10775 * r10776;
        double r10778 = r10777 * r10773;
        double r10779 = r10774 - r10778;
        double r10780 = b;
        double r10781 = c;
        double r10782 = r10780 * r10781;
        double r10783 = r10779 + r10782;
        double r10784 = r10766 * r10776;
        double r10785 = i;
        double r10786 = r10784 * r10785;
        double r10787 = r10783 - r10786;
        double r10788 = j;
        double r10789 = 27.0;
        double r10790 = r10788 * r10789;
        double r10791 = k;
        double r10792 = r10790 * r10791;
        double r10793 = r10787 - r10792;
        return r10793;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r10794 = x;
        float r10795 = 18.0;
        float r10796 = r10794 * r10795;
        float r10797 = y;
        float r10798 = z;
        float r10799 = t;
        float r10800 = r10798 * r10799;
        float r10801 = r10797 * r10800;
        float r10802 = r10796 * r10801;
        float r10803 = a;
        float r10804 = 4.0;
        float r10805 = r10803 * r10804;
        float r10806 = r10805 * r10799;
        float r10807 = r10802 - r10806;
        float r10808 = b;
        float r10809 = c;
        float r10810 = r10808 * r10809;
        float r10811 = r10807 + r10810;
        float r10812 = r10794 * r10804;
        float r10813 = i;
        float r10814 = r10812 * r10813;
        float r10815 = r10811 - r10814;
        float r10816 = j;
        float r10817 = 27.0;
        float r10818 = r10816 * r10817;
        float r10819 = k;
        float r10820 = r10818 * r10819;
        float r10821 = r10815 - r10820;
        float r10822 = -5.609442346002538e+305;
        bool r10823 = r10821 <= r10822;
        float r10824 = r10796 * r10797;
        float r10825 = r10824 * r10798;
        float r10826 = r10825 - r10805;
        float r10827 = r10799 * r10826;
        float r10828 = r10827 + r10810;
        float r10829 = r10828 - r10814;
        float r10830 = r10829 - r10820;
        float r10831 = 7.545467131872899e+239;
        bool r10832 = r10821 <= r10831;
        float r10833 = r10832 ? r10821 : r10830;
        float r10834 = r10823 ? r10830 : r10833;
        return r10834;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r10835 = x;
        double r10836 = 18.0;
        double r10837 = r10835 * r10836;
        double r10838 = y;
        double r10839 = z;
        double r10840 = t;
        double r10841 = r10839 * r10840;
        double r10842 = r10838 * r10841;
        double r10843 = r10837 * r10842;
        double r10844 = a;
        double r10845 = 4.0;
        double r10846 = r10844 * r10845;
        double r10847 = r10846 * r10840;
        double r10848 = r10843 - r10847;
        double r10849 = b;
        double r10850 = c;
        double r10851 = r10849 * r10850;
        double r10852 = r10848 + r10851;
        double r10853 = r10835 * r10845;
        double r10854 = i;
        double r10855 = r10853 * r10854;
        double r10856 = r10852 - r10855;
        double r10857 = j;
        double r10858 = 27.0;
        double r10859 = r10857 * r10858;
        double r10860 = k;
        double r10861 = r10859 * r10860;
        double r10862 = r10856 - r10861;
        double r10863 = -5.609442346002538e+305;
        bool r10864 = r10862 <= r10863;
        double r10865 = r10837 * r10838;
        double r10866 = r10865 * r10839;
        double r10867 = r10866 - r10846;
        double r10868 = r10840 * r10867;
        double r10869 = r10868 + r10851;
        double r10870 = r10869 - r10855;
        double r10871 = r10870 - r10861;
        double r10872 = 7.545467131872899e+239;
        bool r10873 = r10862 <= r10872;
        double r10874 = r10873 ? r10862 : r10871;
        double r10875 = r10864 ? r10871 : r10874;
        return r10875;
}

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 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;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r10876);
        mpfr_init_set_str(r10877, "18.0", 10, MPFR_RNDN);
        mpfr_init(r10878);
        mpfr_init(r10879);
        mpfr_init(r10880);
        mpfr_init(r10881);
        mpfr_init(r10882);
        mpfr_init(r10883);
        mpfr_init(r10884);
        mpfr_init(r10885);
        mpfr_init_set_str(r10886, "4.0", 10, MPFR_RNDN);
        mpfr_init(r10887);
        mpfr_init(r10888);
        mpfr_init(r10889);
        mpfr_init(r10890);
        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_set_str(r10899, "27.0", 10, MPFR_RNDN);
        mpfr_init(r10900);
        mpfr_init(r10901);
        mpfr_init(r10902);
        mpfr_init(r10903);
}

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(r10876, x, MPFR_RNDN);
        ;
        mpfr_mul(r10878, r10876, r10877, MPFR_RNDN);
        mpfr_set_d(r10879, y, MPFR_RNDN);
        mpfr_mul(r10880, r10878, r10879, MPFR_RNDN);
        mpfr_set_d(r10881, z, MPFR_RNDN);
        mpfr_mul(r10882, r10880, r10881, MPFR_RNDN);
        mpfr_set_d(r10883, t, MPFR_RNDN);
        mpfr_mul(r10884, r10882, r10883, MPFR_RNDN);
        mpfr_set_d(r10885, a, MPFR_RNDN);
        ;
        mpfr_mul(r10887, r10885, r10886, MPFR_RNDN);
        mpfr_mul(r10888, r10887, r10883, MPFR_RNDN);
        mpfr_sub(r10889, r10884, r10888, MPFR_RNDN);
        mpfr_set_d(r10890, b, MPFR_RNDN);
        mpfr_set_d(r10891, c, MPFR_RNDN);
        mpfr_mul(r10892, r10890, r10891, MPFR_RNDN);
        mpfr_add(r10893, r10889, r10892, MPFR_RNDN);
        mpfr_mul(r10894, r10876, r10886, MPFR_RNDN);
        mpfr_set_d(r10895, i, MPFR_RNDN);
        mpfr_mul(r10896, r10894, r10895, MPFR_RNDN);
        mpfr_sub(r10897, r10893, r10896, MPFR_RNDN);
        mpfr_set_d(r10898, j, MPFR_RNDN);
        ;
        mpfr_mul(r10900, r10898, r10899, MPFR_RNDN);
        mpfr_set_d(r10901, k, MPFR_RNDN);
        mpfr_mul(r10902, r10900, r10901, MPFR_RNDN);
        mpfr_sub(r10903, r10897, r10902, MPFR_RNDN);
        return mpfr_get_d(r10903, MPFR_RNDN);
}

static mpfr_t r10904, r10905, r10906, r10907, r10908, r10909, r10910, r10911, r10912, r10913, r10914, r10915, r10916, r10917, r10918, r10919, r10920, r10921, r10922, r10923, r10924, r10925, r10926, r10927, r10928, r10929, r10930, r10931, r10932, r10933, r10934, r10935, r10936, r10937, r10938, r10939, r10940, r10941, r10942, r10943, r10944;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10904);
        mpfr_init_set_str(r10905, "18.0", 10, MPFR_RNDN);
        mpfr_init(r10906);
        mpfr_init(r10907);
        mpfr_init(r10908);
        mpfr_init(r10909);
        mpfr_init(r10910);
        mpfr_init(r10911);
        mpfr_init(r10912);
        mpfr_init(r10913);
        mpfr_init_set_str(r10914, "4.0", 10, MPFR_RNDN);
        mpfr_init(r10915);
        mpfr_init(r10916);
        mpfr_init(r10917);
        mpfr_init(r10918);
        mpfr_init(r10919);
        mpfr_init(r10920);
        mpfr_init(r10921);
        mpfr_init(r10922);
        mpfr_init(r10923);
        mpfr_init(r10924);
        mpfr_init(r10925);
        mpfr_init(r10926);
        mpfr_init_set_str(r10927, "27.0", 10, MPFR_RNDN);
        mpfr_init(r10928);
        mpfr_init(r10929);
        mpfr_init(r10930);
        mpfr_init(r10931);
        mpfr_init_set_str(r10932, "-5.609442346002538e+305", 10, MPFR_RNDN);
        mpfr_init(r10933);
        mpfr_init(r10934);
        mpfr_init(r10935);
        mpfr_init(r10936);
        mpfr_init(r10937);
        mpfr_init(r10938);
        mpfr_init(r10939);
        mpfr_init(r10940);
        mpfr_init_set_str(r10941, "7.545467131872899e+239", 10, MPFR_RNDN);
        mpfr_init(r10942);
        mpfr_init(r10943);
        mpfr_init(r10944);
}

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(r10904, x, MPFR_RNDN);
        ;
        mpfr_mul(r10906, r10904, r10905, MPFR_RNDN);
        mpfr_set_d(r10907, y, MPFR_RNDN);
        mpfr_set_d(r10908, z, MPFR_RNDN);
        mpfr_set_d(r10909, t, MPFR_RNDN);
        mpfr_mul(r10910, r10908, r10909, MPFR_RNDN);
        mpfr_mul(r10911, r10907, r10910, MPFR_RNDN);
        mpfr_mul(r10912, r10906, r10911, MPFR_RNDN);
        mpfr_set_d(r10913, a, MPFR_RNDN);
        ;
        mpfr_mul(r10915, r10913, r10914, MPFR_RNDN);
        mpfr_mul(r10916, r10915, r10909, MPFR_RNDN);
        mpfr_sub(r10917, r10912, r10916, MPFR_RNDN);
        mpfr_set_d(r10918, b, MPFR_RNDN);
        mpfr_set_d(r10919, c, MPFR_RNDN);
        mpfr_mul(r10920, r10918, r10919, MPFR_RNDN);
        mpfr_add(r10921, r10917, r10920, MPFR_RNDN);
        mpfr_mul(r10922, r10904, r10914, MPFR_RNDN);
        mpfr_set_d(r10923, i, MPFR_RNDN);
        mpfr_mul(r10924, r10922, r10923, MPFR_RNDN);
        mpfr_sub(r10925, r10921, r10924, MPFR_RNDN);
        mpfr_set_d(r10926, j, MPFR_RNDN);
        ;
        mpfr_mul(r10928, r10926, r10927, MPFR_RNDN);
        mpfr_set_d(r10929, k, MPFR_RNDN);
        mpfr_mul(r10930, r10928, r10929, MPFR_RNDN);
        mpfr_sub(r10931, r10925, r10930, MPFR_RNDN);
        ;
        mpfr_set_si(r10933, mpfr_cmp(r10931, r10932) <= 0, MPFR_RNDN);
        mpfr_mul(r10934, r10906, r10907, MPFR_RNDN);
        mpfr_mul(r10935, r10934, r10908, MPFR_RNDN);
        mpfr_sub(r10936, r10935, r10915, MPFR_RNDN);
        mpfr_mul(r10937, r10909, r10936, MPFR_RNDN);
        mpfr_add(r10938, r10937, r10920, MPFR_RNDN);
        mpfr_sub(r10939, r10938, r10924, MPFR_RNDN);
        mpfr_sub(r10940, r10939, r10930, MPFR_RNDN);
        ;
        mpfr_set_si(r10942, mpfr_cmp(r10931, r10941) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r10942, MPFR_RNDN)) { mpfr_set(r10943, r10931, MPFR_RNDN); } else { mpfr_set(r10943, r10940, MPFR_RNDN); };
        if (mpfr_get_si(r10933, MPFR_RNDN)) { mpfr_set(r10944, r10940, MPFR_RNDN); } else { mpfr_set(r10944, r10943, MPFR_RNDN); };
        return mpfr_get_d(r10944, MPFR_RNDN);
}

static mpfr_t 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, r10972, r10973, r10974, r10975, r10976, r10977, r10978, r10979, r10980, r10981, r10982, r10983, r10984, r10985;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10945);
        mpfr_init_set_str(r10946, "18.0", 10, MPFR_RNDN);
        mpfr_init(r10947);
        mpfr_init(r10948);
        mpfr_init(r10949);
        mpfr_init(r10950);
        mpfr_init(r10951);
        mpfr_init(r10952);
        mpfr_init(r10953);
        mpfr_init(r10954);
        mpfr_init_set_str(r10955, "4.0", 10, MPFR_RNDN);
        mpfr_init(r10956);
        mpfr_init(r10957);
        mpfr_init(r10958);
        mpfr_init(r10959);
        mpfr_init(r10960);
        mpfr_init(r10961);
        mpfr_init(r10962);
        mpfr_init(r10963);
        mpfr_init(r10964);
        mpfr_init(r10965);
        mpfr_init(r10966);
        mpfr_init(r10967);
        mpfr_init_set_str(r10968, "27.0", 10, MPFR_RNDN);
        mpfr_init(r10969);
        mpfr_init(r10970);
        mpfr_init(r10971);
        mpfr_init(r10972);
        mpfr_init_set_str(r10973, "-5.609442346002538e+305", 10, MPFR_RNDN);
        mpfr_init(r10974);
        mpfr_init(r10975);
        mpfr_init(r10976);
        mpfr_init(r10977);
        mpfr_init(r10978);
        mpfr_init(r10979);
        mpfr_init(r10980);
        mpfr_init(r10981);
        mpfr_init_set_str(r10982, "7.545467131872899e+239", 10, MPFR_RNDN);
        mpfr_init(r10983);
        mpfr_init(r10984);
        mpfr_init(r10985);
}

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(r10945, x, MPFR_RNDN);
        ;
        mpfr_mul(r10947, r10945, r10946, MPFR_RNDN);
        mpfr_set_d(r10948, y, MPFR_RNDN);
        mpfr_set_d(r10949, z, MPFR_RNDN);
        mpfr_set_d(r10950, t, MPFR_RNDN);
        mpfr_mul(r10951, r10949, r10950, MPFR_RNDN);
        mpfr_mul(r10952, r10948, r10951, MPFR_RNDN);
        mpfr_mul(r10953, r10947, r10952, MPFR_RNDN);
        mpfr_set_d(r10954, a, MPFR_RNDN);
        ;
        mpfr_mul(r10956, r10954, r10955, MPFR_RNDN);
        mpfr_mul(r10957, r10956, r10950, MPFR_RNDN);
        mpfr_sub(r10958, r10953, r10957, MPFR_RNDN);
        mpfr_set_d(r10959, b, MPFR_RNDN);
        mpfr_set_d(r10960, c, MPFR_RNDN);
        mpfr_mul(r10961, r10959, r10960, MPFR_RNDN);
        mpfr_add(r10962, r10958, r10961, MPFR_RNDN);
        mpfr_mul(r10963, r10945, r10955, MPFR_RNDN);
        mpfr_set_d(r10964, i, MPFR_RNDN);
        mpfr_mul(r10965, r10963, r10964, MPFR_RNDN);
        mpfr_sub(r10966, r10962, r10965, MPFR_RNDN);
        mpfr_set_d(r10967, j, MPFR_RNDN);
        ;
        mpfr_mul(r10969, r10967, r10968, MPFR_RNDN);
        mpfr_set_d(r10970, k, MPFR_RNDN);
        mpfr_mul(r10971, r10969, r10970, MPFR_RNDN);
        mpfr_sub(r10972, r10966, r10971, MPFR_RNDN);
        ;
        mpfr_set_si(r10974, mpfr_cmp(r10972, r10973) <= 0, MPFR_RNDN);
        mpfr_mul(r10975, r10947, r10948, MPFR_RNDN);
        mpfr_mul(r10976, r10975, r10949, MPFR_RNDN);
        mpfr_sub(r10977, r10976, r10956, MPFR_RNDN);
        mpfr_mul(r10978, r10950, r10977, MPFR_RNDN);
        mpfr_add(r10979, r10978, r10961, MPFR_RNDN);
        mpfr_sub(r10980, r10979, r10965, MPFR_RNDN);
        mpfr_sub(r10981, r10980, r10971, MPFR_RNDN);
        ;
        mpfr_set_si(r10983, mpfr_cmp(r10972, r10982) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r10983, MPFR_RNDN)) { mpfr_set(r10984, r10972, MPFR_RNDN); } else { mpfr_set(r10984, r10981, MPFR_RNDN); };
        if (mpfr_get_si(r10974, MPFR_RNDN)) { mpfr_set(r10985, r10981, MPFR_RNDN); } else { mpfr_set(r10985, r10984, MPFR_RNDN); };
        return mpfr_get_d(r10985, MPFR_RNDN);
}

