#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 r6725 = x;
        float r6726 = 18.0;
        float r6727 = r6725 * r6726;
        float r6728 = y;
        float r6729 = r6727 * r6728;
        float r6730 = z;
        float r6731 = r6729 * r6730;
        float r6732 = t;
        float r6733 = r6731 * r6732;
        float r6734 = a;
        float r6735 = 4.0;
        float r6736 = r6734 * r6735;
        float r6737 = r6736 * r6732;
        float r6738 = r6733 - r6737;
        float r6739 = b;
        float r6740 = c;
        float r6741 = r6739 * r6740;
        float r6742 = r6738 + r6741;
        float r6743 = r6725 * r6735;
        float r6744 = i;
        float r6745 = r6743 * r6744;
        float r6746 = r6742 - r6745;
        float r6747 = j;
        float r6748 = 27.0;
        float r6749 = r6747 * r6748;
        float r6750 = k;
        float r6751 = r6749 * r6750;
        float r6752 = r6746 - r6751;
        return r6752;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r6753 = x;
        double r6754 = 18.0;
        double r6755 = r6753 * r6754;
        double r6756 = y;
        double r6757 = r6755 * r6756;
        double r6758 = z;
        double r6759 = r6757 * r6758;
        double r6760 = t;
        double r6761 = r6759 * r6760;
        double r6762 = a;
        double r6763 = 4.0;
        double r6764 = r6762 * r6763;
        double r6765 = r6764 * r6760;
        double r6766 = r6761 - r6765;
        double r6767 = b;
        double r6768 = c;
        double r6769 = r6767 * r6768;
        double r6770 = r6766 + r6769;
        double r6771 = r6753 * r6763;
        double r6772 = i;
        double r6773 = r6771 * r6772;
        double r6774 = r6770 - r6773;
        double r6775 = j;
        double r6776 = 27.0;
        double r6777 = r6775 * r6776;
        double r6778 = k;
        double r6779 = r6777 * r6778;
        double r6780 = r6774 - r6779;
        return r6780;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r6781 = b;
        float r6782 = c;
        float r6783 = r6781 * r6782;
        float r6784 = i;
        float r6785 = x;
        float r6786 = 4.0;
        float r6787 = r6785 * r6786;
        float r6788 = r6784 * r6787;
        float r6789 = r6783 - r6788;
        float r6790 = j;
        float r6791 = 27.0;
        float r6792 = k;
        float r6793 = r6791 * r6792;
        float r6794 = r6790 * r6793;
        float r6795 = r6789 - r6794;
        float r6796 = t;
        float r6797 = z;
        float r6798 = r6797 * r6785;
        float r6799 = y;
        float r6800 = 18.0;
        float r6801 = r6799 * r6800;
        float r6802 = r6798 * r6801;
        float r6803 = a;
        float r6804 = r6786 * r6803;
        float r6805 = r6802 - r6804;
        float r6806 = r6796 * r6805;
        float r6807 = r6795 + r6806;
        float r6808 = -inf.0;
        bool r6809 = r6807 <= r6808;
        float r6810 = r6796 * r6785;
        float r6811 = r6799 * r6810;
        float r6812 = r6797 * r6811;
        float r6813 = r6800 * r6812;
        float r6814 = r6803 * r6786;
        float r6815 = r6814 * r6796;
        float r6816 = r6813 - r6815;
        float r6817 = r6816 + r6783;
        float r6818 = r6787 * r6784;
        float r6819 = r6817 - r6818;
        float r6820 = r6790 * r6791;
        float r6821 = r6820 * r6792;
        float r6822 = r6819 - r6821;
        float r6823 = 6.044968452795582e+297;
        bool r6824 = r6807 <= r6823;
        float r6825 = r6824 ? r6807 : r6822;
        float r6826 = r6809 ? r6822 : r6825;
        return r6826;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r6827 = b;
        double r6828 = c;
        double r6829 = r6827 * r6828;
        double r6830 = i;
        double r6831 = x;
        double r6832 = 4.0;
        double r6833 = r6831 * r6832;
        double r6834 = r6830 * r6833;
        double r6835 = r6829 - r6834;
        double r6836 = j;
        double r6837 = 27.0;
        double r6838 = k;
        double r6839 = r6837 * r6838;
        double r6840 = r6836 * r6839;
        double r6841 = r6835 - r6840;
        double r6842 = t;
        double r6843 = z;
        double r6844 = r6843 * r6831;
        double r6845 = y;
        double r6846 = 18.0;
        double r6847 = r6845 * r6846;
        double r6848 = r6844 * r6847;
        double r6849 = a;
        double r6850 = r6832 * r6849;
        double r6851 = r6848 - r6850;
        double r6852 = r6842 * r6851;
        double r6853 = r6841 + r6852;
        double r6854 = -inf.0;
        bool r6855 = r6853 <= r6854;
        double r6856 = r6842 * r6831;
        double r6857 = r6845 * r6856;
        double r6858 = r6843 * r6857;
        double r6859 = r6846 * r6858;
        double r6860 = r6849 * r6832;
        double r6861 = r6860 * r6842;
        double r6862 = r6859 - r6861;
        double r6863 = r6862 + r6829;
        double r6864 = r6833 * r6830;
        double r6865 = r6863 - r6864;
        double r6866 = r6836 * r6837;
        double r6867 = r6866 * r6838;
        double r6868 = r6865 - r6867;
        double r6869 = 6.044968452795582e+297;
        bool r6870 = r6853 <= r6869;
        double r6871 = r6870 ? r6853 : r6868;
        double r6872 = r6855 ? r6868 : r6871;
        return r6872;
}

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 r6873, r6874, r6875, r6876, r6877, r6878, r6879, r6880, r6881, r6882, r6883, r6884, r6885, r6886, r6887, r6888, r6889, r6890, r6891, r6892, r6893, r6894, r6895, r6896, r6897, r6898, r6899, r6900;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r6873);
        mpfr_init_set_str(r6874, "18.0", 10, MPFR_RNDN);
        mpfr_init(r6875);
        mpfr_init(r6876);
        mpfr_init(r6877);
        mpfr_init(r6878);
        mpfr_init(r6879);
        mpfr_init(r6880);
        mpfr_init(r6881);
        mpfr_init(r6882);
        mpfr_init_set_str(r6883, "4.0", 10, MPFR_RNDN);
        mpfr_init(r6884);
        mpfr_init(r6885);
        mpfr_init(r6886);
        mpfr_init(r6887);
        mpfr_init(r6888);
        mpfr_init(r6889);
        mpfr_init(r6890);
        mpfr_init(r6891);
        mpfr_init(r6892);
        mpfr_init(r6893);
        mpfr_init(r6894);
        mpfr_init(r6895);
        mpfr_init_set_str(r6896, "27.0", 10, MPFR_RNDN);
        mpfr_init(r6897);
        mpfr_init(r6898);
        mpfr_init(r6899);
        mpfr_init(r6900);
}

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(r6873, x, MPFR_RNDN);
        ;
        mpfr_mul(r6875, r6873, r6874, MPFR_RNDN);
        mpfr_set_d(r6876, y, MPFR_RNDN);
        mpfr_mul(r6877, r6875, r6876, MPFR_RNDN);
        mpfr_set_d(r6878, z, MPFR_RNDN);
        mpfr_mul(r6879, r6877, r6878, MPFR_RNDN);
        mpfr_set_d(r6880, t, MPFR_RNDN);
        mpfr_mul(r6881, r6879, r6880, MPFR_RNDN);
        mpfr_set_d(r6882, a, MPFR_RNDN);
        ;
        mpfr_mul(r6884, r6882, r6883, MPFR_RNDN);
        mpfr_mul(r6885, r6884, r6880, MPFR_RNDN);
        mpfr_sub(r6886, r6881, r6885, MPFR_RNDN);
        mpfr_set_d(r6887, b, MPFR_RNDN);
        mpfr_set_d(r6888, c, MPFR_RNDN);
        mpfr_mul(r6889, r6887, r6888, MPFR_RNDN);
        mpfr_add(r6890, r6886, r6889, MPFR_RNDN);
        mpfr_mul(r6891, r6873, r6883, MPFR_RNDN);
        mpfr_set_d(r6892, i, MPFR_RNDN);
        mpfr_mul(r6893, r6891, r6892, MPFR_RNDN);
        mpfr_sub(r6894, r6890, r6893, MPFR_RNDN);
        mpfr_set_d(r6895, j, MPFR_RNDN);
        ;
        mpfr_mul(r6897, r6895, r6896, MPFR_RNDN);
        mpfr_set_d(r6898, k, MPFR_RNDN);
        mpfr_mul(r6899, r6897, r6898, MPFR_RNDN);
        mpfr_sub(r6900, r6894, r6899, MPFR_RNDN);
        return mpfr_get_d(r6900, MPFR_RNDN);
}

static mpfr_t r6901, r6902, r6903, r6904, r6905, r6906, r6907, r6908, r6909, r6910, r6911, r6912, r6913, r6914, r6915, r6916, r6917, r6918, r6919, r6920, r6921, r6922, r6923, r6924, r6925, r6926, r6927, r6928, r6929, r6930, r6931, r6932, r6933, r6934, r6935, r6936, r6937, r6938, r6939, r6940, r6941, r6942, r6943, r6944, r6945, r6946;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r6901);
        mpfr_init(r6902);
        mpfr_init(r6903);
        mpfr_init(r6904);
        mpfr_init(r6905);
        mpfr_init_set_str(r6906, "4.0", 10, MPFR_RNDN);
        mpfr_init(r6907);
        mpfr_init(r6908);
        mpfr_init(r6909);
        mpfr_init(r6910);
        mpfr_init_set_str(r6911, "27.0", 10, MPFR_RNDN);
        mpfr_init(r6912);
        mpfr_init(r6913);
        mpfr_init(r6914);
        mpfr_init(r6915);
        mpfr_init(r6916);
        mpfr_init(r6917);
        mpfr_init(r6918);
        mpfr_init(r6919);
        mpfr_init_set_str(r6920, "18.0", 10, MPFR_RNDN);
        mpfr_init(r6921);
        mpfr_init(r6922);
        mpfr_init(r6923);
        mpfr_init(r6924);
        mpfr_init(r6925);
        mpfr_init(r6926);
        mpfr_init(r6927);
        mpfr_init_set_str(r6928, "-inf.0", 10, MPFR_RNDN);
        mpfr_init(r6929);
        mpfr_init(r6930);
        mpfr_init(r6931);
        mpfr_init(r6932);
        mpfr_init(r6933);
        mpfr_init(r6934);
        mpfr_init(r6935);
        mpfr_init(r6936);
        mpfr_init(r6937);
        mpfr_init(r6938);
        mpfr_init(r6939);
        mpfr_init(r6940);
        mpfr_init(r6941);
        mpfr_init(r6942);
        mpfr_init_set_str(r6943, "6.044968452795582e+297", 10, MPFR_RNDN);
        mpfr_init(r6944);
        mpfr_init(r6945);
        mpfr_init(r6946);
}

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(r6901, b, MPFR_RNDN);
        mpfr_set_d(r6902, c, MPFR_RNDN);
        mpfr_mul(r6903, r6901, r6902, MPFR_RNDN);
        mpfr_set_d(r6904, i, MPFR_RNDN);
        mpfr_set_d(r6905, x, MPFR_RNDN);
        ;
        mpfr_mul(r6907, r6905, r6906, MPFR_RNDN);
        mpfr_mul(r6908, r6904, r6907, MPFR_RNDN);
        mpfr_sub(r6909, r6903, r6908, MPFR_RNDN);
        mpfr_set_d(r6910, j, MPFR_RNDN);
        ;
        mpfr_set_d(r6912, k, MPFR_RNDN);
        mpfr_mul(r6913, r6911, r6912, MPFR_RNDN);
        mpfr_mul(r6914, r6910, r6913, MPFR_RNDN);
        mpfr_sub(r6915, r6909, r6914, MPFR_RNDN);
        mpfr_set_d(r6916, t, MPFR_RNDN);
        mpfr_set_d(r6917, z, MPFR_RNDN);
        mpfr_mul(r6918, r6917, r6905, MPFR_RNDN);
        mpfr_set_d(r6919, y, MPFR_RNDN);
        ;
        mpfr_mul(r6921, r6919, r6920, MPFR_RNDN);
        mpfr_mul(r6922, r6918, r6921, MPFR_RNDN);
        mpfr_set_d(r6923, a, MPFR_RNDN);
        mpfr_mul(r6924, r6906, r6923, MPFR_RNDN);
        mpfr_sub(r6925, r6922, r6924, MPFR_RNDN);
        mpfr_mul(r6926, r6916, r6925, MPFR_RNDN);
        mpfr_add(r6927, r6915, r6926, MPFR_RNDN);
        ;
        mpfr_set_si(r6929, mpfr_cmp(r6927, r6928) <= 0, MPFR_RNDN);
        mpfr_mul(r6930, r6916, r6905, MPFR_RNDN);
        mpfr_mul(r6931, r6919, r6930, MPFR_RNDN);
        mpfr_mul(r6932, r6917, r6931, MPFR_RNDN);
        mpfr_mul(r6933, r6920, r6932, MPFR_RNDN);
        mpfr_mul(r6934, r6923, r6906, MPFR_RNDN);
        mpfr_mul(r6935, r6934, r6916, MPFR_RNDN);
        mpfr_sub(r6936, r6933, r6935, MPFR_RNDN);
        mpfr_add(r6937, r6936, r6903, MPFR_RNDN);
        mpfr_mul(r6938, r6907, r6904, MPFR_RNDN);
        mpfr_sub(r6939, r6937, r6938, MPFR_RNDN);
        mpfr_mul(r6940, r6910, r6911, MPFR_RNDN);
        mpfr_mul(r6941, r6940, r6912, MPFR_RNDN);
        mpfr_sub(r6942, r6939, r6941, MPFR_RNDN);
        ;
        mpfr_set_si(r6944, mpfr_cmp(r6927, r6943) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r6944, MPFR_RNDN)) { mpfr_set(r6945, r6927, MPFR_RNDN); } else { mpfr_set(r6945, r6942, MPFR_RNDN); };
        if (mpfr_get_si(r6929, MPFR_RNDN)) { mpfr_set(r6946, r6942, MPFR_RNDN); } else { mpfr_set(r6946, r6945, MPFR_RNDN); };
        return mpfr_get_d(r6946, MPFR_RNDN);
}

static mpfr_t r6947, r6948, r6949, r6950, r6951, r6952, r6953, r6954, r6955, r6956, r6957, r6958, r6959, r6960, r6961, r6962, r6963, r6964, r6965, r6966, r6967, r6968, r6969, r6970, r6971, r6972, r6973, r6974, r6975, r6976, r6977, r6978, r6979, r6980, r6981, r6982, r6983, r6984, r6985, r6986, r6987, r6988, r6989, r6990, r6991, r6992;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r6947);
        mpfr_init(r6948);
        mpfr_init(r6949);
        mpfr_init(r6950);
        mpfr_init(r6951);
        mpfr_init_set_str(r6952, "4.0", 10, MPFR_RNDN);
        mpfr_init(r6953);
        mpfr_init(r6954);
        mpfr_init(r6955);
        mpfr_init(r6956);
        mpfr_init_set_str(r6957, "27.0", 10, MPFR_RNDN);
        mpfr_init(r6958);
        mpfr_init(r6959);
        mpfr_init(r6960);
        mpfr_init(r6961);
        mpfr_init(r6962);
        mpfr_init(r6963);
        mpfr_init(r6964);
        mpfr_init(r6965);
        mpfr_init_set_str(r6966, "18.0", 10, MPFR_RNDN);
        mpfr_init(r6967);
        mpfr_init(r6968);
        mpfr_init(r6969);
        mpfr_init(r6970);
        mpfr_init(r6971);
        mpfr_init(r6972);
        mpfr_init(r6973);
        mpfr_init_set_str(r6974, "-inf.0", 10, MPFR_RNDN);
        mpfr_init(r6975);
        mpfr_init(r6976);
        mpfr_init(r6977);
        mpfr_init(r6978);
        mpfr_init(r6979);
        mpfr_init(r6980);
        mpfr_init(r6981);
        mpfr_init(r6982);
        mpfr_init(r6983);
        mpfr_init(r6984);
        mpfr_init(r6985);
        mpfr_init(r6986);
        mpfr_init(r6987);
        mpfr_init(r6988);
        mpfr_init_set_str(r6989, "6.044968452795582e+297", 10, MPFR_RNDN);
        mpfr_init(r6990);
        mpfr_init(r6991);
        mpfr_init(r6992);
}

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(r6947, b, MPFR_RNDN);
        mpfr_set_d(r6948, c, MPFR_RNDN);
        mpfr_mul(r6949, r6947, r6948, MPFR_RNDN);
        mpfr_set_d(r6950, i, MPFR_RNDN);
        mpfr_set_d(r6951, x, MPFR_RNDN);
        ;
        mpfr_mul(r6953, r6951, r6952, MPFR_RNDN);
        mpfr_mul(r6954, r6950, r6953, MPFR_RNDN);
        mpfr_sub(r6955, r6949, r6954, MPFR_RNDN);
        mpfr_set_d(r6956, j, MPFR_RNDN);
        ;
        mpfr_set_d(r6958, k, MPFR_RNDN);
        mpfr_mul(r6959, r6957, r6958, MPFR_RNDN);
        mpfr_mul(r6960, r6956, r6959, MPFR_RNDN);
        mpfr_sub(r6961, r6955, r6960, MPFR_RNDN);
        mpfr_set_d(r6962, t, MPFR_RNDN);
        mpfr_set_d(r6963, z, MPFR_RNDN);
        mpfr_mul(r6964, r6963, r6951, MPFR_RNDN);
        mpfr_set_d(r6965, y, MPFR_RNDN);
        ;
        mpfr_mul(r6967, r6965, r6966, MPFR_RNDN);
        mpfr_mul(r6968, r6964, r6967, MPFR_RNDN);
        mpfr_set_d(r6969, a, MPFR_RNDN);
        mpfr_mul(r6970, r6952, r6969, MPFR_RNDN);
        mpfr_sub(r6971, r6968, r6970, MPFR_RNDN);
        mpfr_mul(r6972, r6962, r6971, MPFR_RNDN);
        mpfr_add(r6973, r6961, r6972, MPFR_RNDN);
        ;
        mpfr_set_si(r6975, mpfr_cmp(r6973, r6974) <= 0, MPFR_RNDN);
        mpfr_mul(r6976, r6962, r6951, MPFR_RNDN);
        mpfr_mul(r6977, r6965, r6976, MPFR_RNDN);
        mpfr_mul(r6978, r6963, r6977, MPFR_RNDN);
        mpfr_mul(r6979, r6966, r6978, MPFR_RNDN);
        mpfr_mul(r6980, r6969, r6952, MPFR_RNDN);
        mpfr_mul(r6981, r6980, r6962, MPFR_RNDN);
        mpfr_sub(r6982, r6979, r6981, MPFR_RNDN);
        mpfr_add(r6983, r6982, r6949, MPFR_RNDN);
        mpfr_mul(r6984, r6953, r6950, MPFR_RNDN);
        mpfr_sub(r6985, r6983, r6984, MPFR_RNDN);
        mpfr_mul(r6986, r6956, r6957, MPFR_RNDN);
        mpfr_mul(r6987, r6986, r6958, MPFR_RNDN);
        mpfr_sub(r6988, r6985, r6987, MPFR_RNDN);
        ;
        mpfr_set_si(r6990, mpfr_cmp(r6973, r6989) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r6990, MPFR_RNDN)) { mpfr_set(r6991, r6973, MPFR_RNDN); } else { mpfr_set(r6991, r6988, MPFR_RNDN); };
        if (mpfr_get_si(r6975, MPFR_RNDN)) { mpfr_set(r6992, r6988, MPFR_RNDN); } else { mpfr_set(r6992, r6991, MPFR_RNDN); };
        return mpfr_get_d(r6992, MPFR_RNDN);
}

