#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 r26694 = x;
        float r26695 = 18.0;
        float r26696 = r26694 * r26695;
        float r26697 = y;
        float r26698 = r26696 * r26697;
        float r26699 = z;
        float r26700 = r26698 * r26699;
        float r26701 = t;
        float r26702 = r26700 * r26701;
        float r26703 = a;
        float r26704 = 4.0;
        float r26705 = r26703 * r26704;
        float r26706 = r26705 * r26701;
        float r26707 = r26702 - r26706;
        float r26708 = b;
        float r26709 = c;
        float r26710 = r26708 * r26709;
        float r26711 = r26707 + r26710;
        float r26712 = r26694 * r26704;
        float r26713 = i;
        float r26714 = r26712 * r26713;
        float r26715 = r26711 - r26714;
        float r26716 = j;
        float r26717 = 27.0;
        float r26718 = r26716 * r26717;
        float r26719 = k;
        float r26720 = r26718 * r26719;
        float r26721 = r26715 - r26720;
        return r26721;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r26722 = x;
        double r26723 = 18.0;
        double r26724 = r26722 * r26723;
        double r26725 = y;
        double r26726 = r26724 * r26725;
        double r26727 = z;
        double r26728 = r26726 * r26727;
        double r26729 = t;
        double r26730 = r26728 * r26729;
        double r26731 = a;
        double r26732 = 4.0;
        double r26733 = r26731 * r26732;
        double r26734 = r26733 * r26729;
        double r26735 = r26730 - r26734;
        double r26736 = b;
        double r26737 = c;
        double r26738 = r26736 * r26737;
        double r26739 = r26735 + r26738;
        double r26740 = r26722 * r26732;
        double r26741 = i;
        double r26742 = r26740 * r26741;
        double r26743 = r26739 - r26742;
        double r26744 = j;
        double r26745 = 27.0;
        double r26746 = r26744 * r26745;
        double r26747 = k;
        double r26748 = r26746 * r26747;
        double r26749 = r26743 - r26748;
        return r26749;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r26750 = x;
        float r26751 = 18.0;
        float r26752 = r26750 * r26751;
        float r26753 = y;
        float r26754 = z;
        float r26755 = r26753 * r26754;
        float r26756 = r26752 * r26755;
        float r26757 = t;
        float r26758 = r26756 * r26757;
        float r26759 = a;
        float r26760 = 4.0;
        float r26761 = r26759 * r26760;
        float r26762 = r26761 * r26757;
        float r26763 = r26758 - r26762;
        float r26764 = b;
        float r26765 = c;
        float r26766 = r26764 * r26765;
        float r26767 = r26763 + r26766;
        float r26768 = r26750 * r26760;
        float r26769 = i;
        float r26770 = r26768 * r26769;
        float r26771 = r26767 - r26770;
        float r26772 = j;
        float r26773 = 27.0;
        float r26774 = r26772 * r26773;
        float r26775 = k;
        float r26776 = r26774 * r26775;
        float r26777 = r26771 - r26776;
        float r26778 = -9.375190954604841e+301;
        bool r26779 = r26777 <= r26778;
        float r26780 = r26757 * r26750;
        float r26781 = r26753 * r26751;
        float r26782 = r26780 * r26781;
        float r26783 = -r26759;
        float r26784 = r26760 * r26757;
        float r26785 = fma(r26783, r26784, r26766);
        float r26786 = fma(r26782, r26754, r26785);
        float r26787 = r26773 * r26775;
        float r26788 = r26787 * r26772;
        float r26789 = fma(r26769, r26768, r26788);
        float r26790 = r26786 - r26789;
        float r26791 = 8.796534693547035e+294;
        bool r26792 = r26777 <= r26791;
        float r26793 = r26754 * r26751;
        float r26794 = r26793 * r26757;
        float r26795 = r26794 * r26750;
        float r26796 = r26760 * r26759;
        float r26797 = -r26757;
        float r26798 = fma(r26796, r26797, r26766);
        float r26799 = fma(r26795, r26753, r26798);
        float r26800 = r26750 * r26769;
        float r26801 = fma(r26800, r26760, r26788);
        float r26802 = r26799 - r26801;
        float r26803 = r26792 ? r26777 : r26802;
        float r26804 = r26779 ? r26790 : r26803;
        return r26804;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r26805 = x;
        double r26806 = 18.0;
        double r26807 = r26805 * r26806;
        double r26808 = y;
        double r26809 = z;
        double r26810 = r26808 * r26809;
        double r26811 = r26807 * r26810;
        double r26812 = t;
        double r26813 = r26811 * r26812;
        double r26814 = a;
        double r26815 = 4.0;
        double r26816 = r26814 * r26815;
        double r26817 = r26816 * r26812;
        double r26818 = r26813 - r26817;
        double r26819 = b;
        double r26820 = c;
        double r26821 = r26819 * r26820;
        double r26822 = r26818 + r26821;
        double r26823 = r26805 * r26815;
        double r26824 = i;
        double r26825 = r26823 * r26824;
        double r26826 = r26822 - r26825;
        double r26827 = j;
        double r26828 = 27.0;
        double r26829 = r26827 * r26828;
        double r26830 = k;
        double r26831 = r26829 * r26830;
        double r26832 = r26826 - r26831;
        double r26833 = -9.375190954604841e+301;
        bool r26834 = r26832 <= r26833;
        double r26835 = r26812 * r26805;
        double r26836 = r26808 * r26806;
        double r26837 = r26835 * r26836;
        double r26838 = -r26814;
        double r26839 = r26815 * r26812;
        double r26840 = fma(r26838, r26839, r26821);
        double r26841 = fma(r26837, r26809, r26840);
        double r26842 = r26828 * r26830;
        double r26843 = r26842 * r26827;
        double r26844 = fma(r26824, r26823, r26843);
        double r26845 = r26841 - r26844;
        double r26846 = 8.796534693547035e+294;
        bool r26847 = r26832 <= r26846;
        double r26848 = r26809 * r26806;
        double r26849 = r26848 * r26812;
        double r26850 = r26849 * r26805;
        double r26851 = r26815 * r26814;
        double r26852 = -r26812;
        double r26853 = fma(r26851, r26852, r26821);
        double r26854 = fma(r26850, r26808, r26853);
        double r26855 = r26805 * r26824;
        double r26856 = fma(r26855, r26815, r26843);
        double r26857 = r26854 - r26856;
        double r26858 = r26847 ? r26832 : r26857;
        double r26859 = r26834 ? r26845 : r26858;
        return r26859;
}

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 r26860, r26861, r26862, r26863, r26864, r26865, r26866, r26867, r26868, r26869, r26870, r26871, r26872, r26873, r26874, r26875, r26876, r26877, r26878, r26879, r26880, r26881, r26882, r26883, r26884, r26885, r26886, r26887;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26860);
        mpfr_init_set_str(r26861, "18.0", 10, MPFR_RNDN);
        mpfr_init(r26862);
        mpfr_init(r26863);
        mpfr_init(r26864);
        mpfr_init(r26865);
        mpfr_init(r26866);
        mpfr_init(r26867);
        mpfr_init(r26868);
        mpfr_init(r26869);
        mpfr_init_set_str(r26870, "4.0", 10, MPFR_RNDN);
        mpfr_init(r26871);
        mpfr_init(r26872);
        mpfr_init(r26873);
        mpfr_init(r26874);
        mpfr_init(r26875);
        mpfr_init(r26876);
        mpfr_init(r26877);
        mpfr_init(r26878);
        mpfr_init(r26879);
        mpfr_init(r26880);
        mpfr_init(r26881);
        mpfr_init(r26882);
        mpfr_init_set_str(r26883, "27.0", 10, MPFR_RNDN);
        mpfr_init(r26884);
        mpfr_init(r26885);
        mpfr_init(r26886);
        mpfr_init(r26887);
}

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(r26860, x, MPFR_RNDN);
        ;
        mpfr_mul(r26862, r26860, r26861, MPFR_RNDN);
        mpfr_set_d(r26863, y, MPFR_RNDN);
        mpfr_mul(r26864, r26862, r26863, MPFR_RNDN);
        mpfr_set_d(r26865, z, MPFR_RNDN);
        mpfr_mul(r26866, r26864, r26865, MPFR_RNDN);
        mpfr_set_d(r26867, t, MPFR_RNDN);
        mpfr_mul(r26868, r26866, r26867, MPFR_RNDN);
        mpfr_set_d(r26869, a, MPFR_RNDN);
        ;
        mpfr_mul(r26871, r26869, r26870, MPFR_RNDN);
        mpfr_mul(r26872, r26871, r26867, MPFR_RNDN);
        mpfr_sub(r26873, r26868, r26872, MPFR_RNDN);
        mpfr_set_d(r26874, b, MPFR_RNDN);
        mpfr_set_d(r26875, c, MPFR_RNDN);
        mpfr_mul(r26876, r26874, r26875, MPFR_RNDN);
        mpfr_add(r26877, r26873, r26876, MPFR_RNDN);
        mpfr_mul(r26878, r26860, r26870, MPFR_RNDN);
        mpfr_set_d(r26879, i, MPFR_RNDN);
        mpfr_mul(r26880, r26878, r26879, MPFR_RNDN);
        mpfr_sub(r26881, r26877, r26880, MPFR_RNDN);
        mpfr_set_d(r26882, j, MPFR_RNDN);
        ;
        mpfr_mul(r26884, r26882, r26883, MPFR_RNDN);
        mpfr_set_d(r26885, k, MPFR_RNDN);
        mpfr_mul(r26886, r26884, r26885, MPFR_RNDN);
        mpfr_sub(r26887, r26881, r26886, MPFR_RNDN);
        return mpfr_get_d(r26887, MPFR_RNDN);
}

static mpfr_t r26888, r26889, r26890, r26891, r26892, r26893, r26894, r26895, r26896, r26897, r26898, r26899, r26900, r26901, r26902, r26903, r26904, r26905, r26906, r26907, r26908, r26909, r26910, r26911, r26912, r26913, r26914, r26915, r26916, r26917, r26918, r26919, r26920, r26921, r26922, r26923, r26924, r26925, r26926, r26927, r26928, r26929, r26930, r26931, r26932, r26933, r26934, r26935, r26936, r26937, r26938, r26939, r26940, r26941, r26942;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26888);
        mpfr_init_set_str(r26889, "18.0", 10, MPFR_RNDN);
        mpfr_init(r26890);
        mpfr_init(r26891);
        mpfr_init(r26892);
        mpfr_init(r26893);
        mpfr_init(r26894);
        mpfr_init(r26895);
        mpfr_init(r26896);
        mpfr_init(r26897);
        mpfr_init_set_str(r26898, "4.0", 10, MPFR_RNDN);
        mpfr_init(r26899);
        mpfr_init(r26900);
        mpfr_init(r26901);
        mpfr_init(r26902);
        mpfr_init(r26903);
        mpfr_init(r26904);
        mpfr_init(r26905);
        mpfr_init(r26906);
        mpfr_init(r26907);
        mpfr_init(r26908);
        mpfr_init(r26909);
        mpfr_init(r26910);
        mpfr_init_set_str(r26911, "27.0", 10, MPFR_RNDN);
        mpfr_init(r26912);
        mpfr_init(r26913);
        mpfr_init(r26914);
        mpfr_init(r26915);
        mpfr_init_set_str(r26916, "-9.375190954604841e+301", 10, MPFR_RNDN);
        mpfr_init(r26917);
        mpfr_init(r26918);
        mpfr_init(r26919);
        mpfr_init(r26920);
        mpfr_init(r26921);
        mpfr_init(r26922);
        mpfr_init(r26923);
        mpfr_init(r26924);
        mpfr_init(r26925);
        mpfr_init(r26926);
        mpfr_init(r26927);
        mpfr_init(r26928);
        mpfr_init_set_str(r26929, "8.796534693547035e+294", 10, MPFR_RNDN);
        mpfr_init(r26930);
        mpfr_init(r26931);
        mpfr_init(r26932);
        mpfr_init(r26933);
        mpfr_init(r26934);
        mpfr_init(r26935);
        mpfr_init(r26936);
        mpfr_init(r26937);
        mpfr_init(r26938);
        mpfr_init(r26939);
        mpfr_init(r26940);
        mpfr_init(r26941);
        mpfr_init(r26942);
}

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(r26888, x, MPFR_RNDN);
        ;
        mpfr_mul(r26890, r26888, r26889, MPFR_RNDN);
        mpfr_set_d(r26891, y, MPFR_RNDN);
        mpfr_set_d(r26892, z, MPFR_RNDN);
        mpfr_mul(r26893, r26891, r26892, MPFR_RNDN);
        mpfr_mul(r26894, r26890, r26893, MPFR_RNDN);
        mpfr_set_d(r26895, t, MPFR_RNDN);
        mpfr_mul(r26896, r26894, r26895, MPFR_RNDN);
        mpfr_set_d(r26897, a, MPFR_RNDN);
        ;
        mpfr_mul(r26899, r26897, r26898, MPFR_RNDN);
        mpfr_mul(r26900, r26899, r26895, MPFR_RNDN);
        mpfr_sub(r26901, r26896, r26900, MPFR_RNDN);
        mpfr_set_d(r26902, b, MPFR_RNDN);
        mpfr_set_d(r26903, c, MPFR_RNDN);
        mpfr_mul(r26904, r26902, r26903, MPFR_RNDN);
        mpfr_add(r26905, r26901, r26904, MPFR_RNDN);
        mpfr_mul(r26906, r26888, r26898, MPFR_RNDN);
        mpfr_set_d(r26907, i, MPFR_RNDN);
        mpfr_mul(r26908, r26906, r26907, MPFR_RNDN);
        mpfr_sub(r26909, r26905, r26908, MPFR_RNDN);
        mpfr_set_d(r26910, j, MPFR_RNDN);
        ;
        mpfr_mul(r26912, r26910, r26911, MPFR_RNDN);
        mpfr_set_d(r26913, k, MPFR_RNDN);
        mpfr_mul(r26914, r26912, r26913, MPFR_RNDN);
        mpfr_sub(r26915, r26909, r26914, MPFR_RNDN);
        ;
        mpfr_set_si(r26917, mpfr_cmp(r26915, r26916) <= 0, MPFR_RNDN);
        mpfr_mul(r26918, r26895, r26888, MPFR_RNDN);
        mpfr_mul(r26919, r26891, r26889, MPFR_RNDN);
        mpfr_mul(r26920, r26918, r26919, MPFR_RNDN);
        mpfr_neg(r26921, r26897, MPFR_RNDN);
        mpfr_mul(r26922, r26898, r26895, MPFR_RNDN);
        mpfr_fma(r26923, r26921, r26922, r26904, MPFR_RNDN);
        mpfr_fma(r26924, r26920, r26892, r26923, MPFR_RNDN);
        mpfr_mul(r26925, r26911, r26913, MPFR_RNDN);
        mpfr_mul(r26926, r26925, r26910, MPFR_RNDN);
        mpfr_fma(r26927, r26907, r26906, r26926, MPFR_RNDN);
        mpfr_sub(r26928, r26924, r26927, MPFR_RNDN);
        ;
        mpfr_set_si(r26930, mpfr_cmp(r26915, r26929) <= 0, MPFR_RNDN);
        mpfr_mul(r26931, r26892, r26889, MPFR_RNDN);
        mpfr_mul(r26932, r26931, r26895, MPFR_RNDN);
        mpfr_mul(r26933, r26932, r26888, MPFR_RNDN);
        mpfr_mul(r26934, r26898, r26897, MPFR_RNDN);
        mpfr_neg(r26935, r26895, MPFR_RNDN);
        mpfr_fma(r26936, r26934, r26935, r26904, MPFR_RNDN);
        mpfr_fma(r26937, r26933, r26891, r26936, MPFR_RNDN);
        mpfr_mul(r26938, r26888, r26907, MPFR_RNDN);
        mpfr_fma(r26939, r26938, r26898, r26926, MPFR_RNDN);
        mpfr_sub(r26940, r26937, r26939, MPFR_RNDN);
        if (mpfr_get_si(r26930, MPFR_RNDN)) { mpfr_set(r26941, r26915, MPFR_RNDN); } else { mpfr_set(r26941, r26940, MPFR_RNDN); };
        if (mpfr_get_si(r26917, MPFR_RNDN)) { mpfr_set(r26942, r26928, MPFR_RNDN); } else { mpfr_set(r26942, r26941, MPFR_RNDN); };
        return mpfr_get_d(r26942, MPFR_RNDN);
}

static mpfr_t r26943, r26944, r26945, r26946, r26947, r26948, r26949, r26950, r26951, r26952, r26953, r26954, r26955, r26956, r26957, r26958, r26959, r26960, r26961, r26962, r26963, r26964, r26965, r26966, r26967, r26968, r26969, r26970, r26971, r26972, r26973, r26974, r26975, r26976, r26977, r26978, r26979, r26980, r26981, r26982, r26983, r26984, r26985, r26986, r26987, r26988, r26989, r26990, r26991, r26992, r26993, r26994, r26995, r26996, r26997;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26943);
        mpfr_init_set_str(r26944, "18.0", 10, MPFR_RNDN);
        mpfr_init(r26945);
        mpfr_init(r26946);
        mpfr_init(r26947);
        mpfr_init(r26948);
        mpfr_init(r26949);
        mpfr_init(r26950);
        mpfr_init(r26951);
        mpfr_init(r26952);
        mpfr_init_set_str(r26953, "4.0", 10, MPFR_RNDN);
        mpfr_init(r26954);
        mpfr_init(r26955);
        mpfr_init(r26956);
        mpfr_init(r26957);
        mpfr_init(r26958);
        mpfr_init(r26959);
        mpfr_init(r26960);
        mpfr_init(r26961);
        mpfr_init(r26962);
        mpfr_init(r26963);
        mpfr_init(r26964);
        mpfr_init(r26965);
        mpfr_init_set_str(r26966, "27.0", 10, MPFR_RNDN);
        mpfr_init(r26967);
        mpfr_init(r26968);
        mpfr_init(r26969);
        mpfr_init(r26970);
        mpfr_init_set_str(r26971, "-9.375190954604841e+301", 10, MPFR_RNDN);
        mpfr_init(r26972);
        mpfr_init(r26973);
        mpfr_init(r26974);
        mpfr_init(r26975);
        mpfr_init(r26976);
        mpfr_init(r26977);
        mpfr_init(r26978);
        mpfr_init(r26979);
        mpfr_init(r26980);
        mpfr_init(r26981);
        mpfr_init(r26982);
        mpfr_init(r26983);
        mpfr_init_set_str(r26984, "8.796534693547035e+294", 10, MPFR_RNDN);
        mpfr_init(r26985);
        mpfr_init(r26986);
        mpfr_init(r26987);
        mpfr_init(r26988);
        mpfr_init(r26989);
        mpfr_init(r26990);
        mpfr_init(r26991);
        mpfr_init(r26992);
        mpfr_init(r26993);
        mpfr_init(r26994);
        mpfr_init(r26995);
        mpfr_init(r26996);
        mpfr_init(r26997);
}

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(r26943, x, MPFR_RNDN);
        ;
        mpfr_mul(r26945, r26943, r26944, MPFR_RNDN);
        mpfr_set_d(r26946, y, MPFR_RNDN);
        mpfr_set_d(r26947, z, MPFR_RNDN);
        mpfr_mul(r26948, r26946, r26947, MPFR_RNDN);
        mpfr_mul(r26949, r26945, r26948, MPFR_RNDN);
        mpfr_set_d(r26950, t, MPFR_RNDN);
        mpfr_mul(r26951, r26949, r26950, MPFR_RNDN);
        mpfr_set_d(r26952, a, MPFR_RNDN);
        ;
        mpfr_mul(r26954, r26952, r26953, MPFR_RNDN);
        mpfr_mul(r26955, r26954, r26950, MPFR_RNDN);
        mpfr_sub(r26956, r26951, r26955, MPFR_RNDN);
        mpfr_set_d(r26957, b, MPFR_RNDN);
        mpfr_set_d(r26958, c, MPFR_RNDN);
        mpfr_mul(r26959, r26957, r26958, MPFR_RNDN);
        mpfr_add(r26960, r26956, r26959, MPFR_RNDN);
        mpfr_mul(r26961, r26943, r26953, MPFR_RNDN);
        mpfr_set_d(r26962, i, MPFR_RNDN);
        mpfr_mul(r26963, r26961, r26962, MPFR_RNDN);
        mpfr_sub(r26964, r26960, r26963, MPFR_RNDN);
        mpfr_set_d(r26965, j, MPFR_RNDN);
        ;
        mpfr_mul(r26967, r26965, r26966, MPFR_RNDN);
        mpfr_set_d(r26968, k, MPFR_RNDN);
        mpfr_mul(r26969, r26967, r26968, MPFR_RNDN);
        mpfr_sub(r26970, r26964, r26969, MPFR_RNDN);
        ;
        mpfr_set_si(r26972, mpfr_cmp(r26970, r26971) <= 0, MPFR_RNDN);
        mpfr_mul(r26973, r26950, r26943, MPFR_RNDN);
        mpfr_mul(r26974, r26946, r26944, MPFR_RNDN);
        mpfr_mul(r26975, r26973, r26974, MPFR_RNDN);
        mpfr_neg(r26976, r26952, MPFR_RNDN);
        mpfr_mul(r26977, r26953, r26950, MPFR_RNDN);
        mpfr_fma(r26978, r26976, r26977, r26959, MPFR_RNDN);
        mpfr_fma(r26979, r26975, r26947, r26978, MPFR_RNDN);
        mpfr_mul(r26980, r26966, r26968, MPFR_RNDN);
        mpfr_mul(r26981, r26980, r26965, MPFR_RNDN);
        mpfr_fma(r26982, r26962, r26961, r26981, MPFR_RNDN);
        mpfr_sub(r26983, r26979, r26982, MPFR_RNDN);
        ;
        mpfr_set_si(r26985, mpfr_cmp(r26970, r26984) <= 0, MPFR_RNDN);
        mpfr_mul(r26986, r26947, r26944, MPFR_RNDN);
        mpfr_mul(r26987, r26986, r26950, MPFR_RNDN);
        mpfr_mul(r26988, r26987, r26943, MPFR_RNDN);
        mpfr_mul(r26989, r26953, r26952, MPFR_RNDN);
        mpfr_neg(r26990, r26950, MPFR_RNDN);
        mpfr_fma(r26991, r26989, r26990, r26959, MPFR_RNDN);
        mpfr_fma(r26992, r26988, r26946, r26991, MPFR_RNDN);
        mpfr_mul(r26993, r26943, r26962, MPFR_RNDN);
        mpfr_fma(r26994, r26993, r26953, r26981, MPFR_RNDN);
        mpfr_sub(r26995, r26992, r26994, MPFR_RNDN);
        if (mpfr_get_si(r26985, MPFR_RNDN)) { mpfr_set(r26996, r26970, MPFR_RNDN); } else { mpfr_set(r26996, r26995, MPFR_RNDN); };
        if (mpfr_get_si(r26972, MPFR_RNDN)) { mpfr_set(r26997, r26983, MPFR_RNDN); } else { mpfr_set(r26997, r26996, MPFR_RNDN); };
        return mpfr_get_d(r26997, MPFR_RNDN);
}

