#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 r27135 = x;
        float r27136 = 18.0;
        float r27137 = r27135 * r27136;
        float r27138 = y;
        float r27139 = r27137 * r27138;
        float r27140 = z;
        float r27141 = r27139 * r27140;
        float r27142 = t;
        float r27143 = r27141 * r27142;
        float r27144 = a;
        float r27145 = 4.0;
        float r27146 = r27144 * r27145;
        float r27147 = r27146 * r27142;
        float r27148 = r27143 - r27147;
        float r27149 = b;
        float r27150 = c;
        float r27151 = r27149 * r27150;
        float r27152 = r27148 + r27151;
        float r27153 = r27135 * r27145;
        float r27154 = i;
        float r27155 = r27153 * r27154;
        float r27156 = r27152 - r27155;
        float r27157 = j;
        float r27158 = 27.0;
        float r27159 = r27157 * r27158;
        float r27160 = k;
        float r27161 = r27159 * r27160;
        float r27162 = r27156 - r27161;
        return r27162;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r27163 = x;
        double r27164 = 18.0;
        double r27165 = r27163 * r27164;
        double r27166 = y;
        double r27167 = r27165 * r27166;
        double r27168 = z;
        double r27169 = r27167 * r27168;
        double r27170 = t;
        double r27171 = r27169 * r27170;
        double r27172 = a;
        double r27173 = 4.0;
        double r27174 = r27172 * r27173;
        double r27175 = r27174 * r27170;
        double r27176 = r27171 - r27175;
        double r27177 = b;
        double r27178 = c;
        double r27179 = r27177 * r27178;
        double r27180 = r27176 + r27179;
        double r27181 = r27163 * r27173;
        double r27182 = i;
        double r27183 = r27181 * r27182;
        double r27184 = r27180 - r27183;
        double r27185 = j;
        double r27186 = 27.0;
        double r27187 = r27185 * r27186;
        double r27188 = k;
        double r27189 = r27187 * r27188;
        double r27190 = r27184 - r27189;
        return r27190;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r27191 = x;
        float r27192 = 18.0;
        float r27193 = r27191 * r27192;
        float r27194 = y;
        float r27195 = r27193 * r27194;
        float r27196 = z;
        float r27197 = t;
        float r27198 = r27196 * r27197;
        float r27199 = r27195 * r27198;
        float r27200 = a;
        float r27201 = 4.0;
        float r27202 = r27200 * r27201;
        float r27203 = r27202 * r27197;
        float r27204 = r27199 - r27203;
        float r27205 = b;
        float r27206 = c;
        float r27207 = r27205 * r27206;
        float r27208 = r27204 + r27207;
        float r27209 = r27191 * r27201;
        float r27210 = i;
        float r27211 = r27209 * r27210;
        float r27212 = r27208 - r27211;
        float r27213 = j;
        float r27214 = 27.0;
        float r27215 = r27213 * r27214;
        float r27216 = k;
        float r27217 = r27215 * r27216;
        float r27218 = r27212 - r27217;
        float r27219 = -5.520878218001742e+307;
        bool r27220 = r27218 <= r27219;
        float r27221 = r27210 * r27209;
        float r27222 = r27207 - r27221;
        float r27223 = r27214 * r27216;
        float r27224 = r27213 * r27223;
        float r27225 = r27222 - r27224;
        float r27226 = r27196 * r27191;
        float r27227 = r27194 * r27192;
        float r27228 = r27226 * r27227;
        float r27229 = r27201 * r27200;
        float r27230 = r27228 - r27229;
        float r27231 = r27197 * r27230;
        float r27232 = r27225 + r27231;
        float r27233 = 9.83958488566865e+306;
        bool r27234 = r27218 <= r27233;
        float r27235 = r27234 ? r27218 : r27232;
        float r27236 = r27220 ? r27232 : r27235;
        return r27236;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r27237 = x;
        double r27238 = 18.0;
        double r27239 = r27237 * r27238;
        double r27240 = y;
        double r27241 = r27239 * r27240;
        double r27242 = z;
        double r27243 = t;
        double r27244 = r27242 * r27243;
        double r27245 = r27241 * r27244;
        double r27246 = a;
        double r27247 = 4.0;
        double r27248 = r27246 * r27247;
        double r27249 = r27248 * r27243;
        double r27250 = r27245 - r27249;
        double r27251 = b;
        double r27252 = c;
        double r27253 = r27251 * r27252;
        double r27254 = r27250 + r27253;
        double r27255 = r27237 * r27247;
        double r27256 = i;
        double r27257 = r27255 * r27256;
        double r27258 = r27254 - r27257;
        double r27259 = j;
        double r27260 = 27.0;
        double r27261 = r27259 * r27260;
        double r27262 = k;
        double r27263 = r27261 * r27262;
        double r27264 = r27258 - r27263;
        double r27265 = -5.520878218001742e+307;
        bool r27266 = r27264 <= r27265;
        double r27267 = r27256 * r27255;
        double r27268 = r27253 - r27267;
        double r27269 = r27260 * r27262;
        double r27270 = r27259 * r27269;
        double r27271 = r27268 - r27270;
        double r27272 = r27242 * r27237;
        double r27273 = r27240 * r27238;
        double r27274 = r27272 * r27273;
        double r27275 = r27247 * r27246;
        double r27276 = r27274 - r27275;
        double r27277 = r27243 * r27276;
        double r27278 = r27271 + r27277;
        double r27279 = 9.83958488566865e+306;
        bool r27280 = r27264 <= r27279;
        double r27281 = r27280 ? r27264 : r27278;
        double r27282 = r27266 ? r27278 : r27281;
        return r27282;
}

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 r27283, r27284, r27285, r27286, r27287, r27288, r27289, r27290, r27291, r27292, r27293, r27294, r27295, r27296, r27297, r27298, r27299, r27300, r27301, r27302, r27303, r27304, r27305, r27306, r27307, r27308, r27309, r27310;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r27283);
        mpfr_init_set_str(r27284, "18.0", 10, MPFR_RNDN);
        mpfr_init(r27285);
        mpfr_init(r27286);
        mpfr_init(r27287);
        mpfr_init(r27288);
        mpfr_init(r27289);
        mpfr_init(r27290);
        mpfr_init(r27291);
        mpfr_init(r27292);
        mpfr_init_set_str(r27293, "4.0", 10, MPFR_RNDN);
        mpfr_init(r27294);
        mpfr_init(r27295);
        mpfr_init(r27296);
        mpfr_init(r27297);
        mpfr_init(r27298);
        mpfr_init(r27299);
        mpfr_init(r27300);
        mpfr_init(r27301);
        mpfr_init(r27302);
        mpfr_init(r27303);
        mpfr_init(r27304);
        mpfr_init(r27305);
        mpfr_init_set_str(r27306, "27.0", 10, MPFR_RNDN);
        mpfr_init(r27307);
        mpfr_init(r27308);
        mpfr_init(r27309);
        mpfr_init(r27310);
}

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(r27283, x, MPFR_RNDN);
        ;
        mpfr_mul(r27285, r27283, r27284, MPFR_RNDN);
        mpfr_set_d(r27286, y, MPFR_RNDN);
        mpfr_mul(r27287, r27285, r27286, MPFR_RNDN);
        mpfr_set_d(r27288, z, MPFR_RNDN);
        mpfr_mul(r27289, r27287, r27288, MPFR_RNDN);
        mpfr_set_d(r27290, t, MPFR_RNDN);
        mpfr_mul(r27291, r27289, r27290, MPFR_RNDN);
        mpfr_set_d(r27292, a, MPFR_RNDN);
        ;
        mpfr_mul(r27294, r27292, r27293, MPFR_RNDN);
        mpfr_mul(r27295, r27294, r27290, MPFR_RNDN);
        mpfr_sub(r27296, r27291, r27295, MPFR_RNDN);
        mpfr_set_d(r27297, b, MPFR_RNDN);
        mpfr_set_d(r27298, c, MPFR_RNDN);
        mpfr_mul(r27299, r27297, r27298, MPFR_RNDN);
        mpfr_add(r27300, r27296, r27299, MPFR_RNDN);
        mpfr_mul(r27301, r27283, r27293, MPFR_RNDN);
        mpfr_set_d(r27302, i, MPFR_RNDN);
        mpfr_mul(r27303, r27301, r27302, MPFR_RNDN);
        mpfr_sub(r27304, r27300, r27303, MPFR_RNDN);
        mpfr_set_d(r27305, j, MPFR_RNDN);
        ;
        mpfr_mul(r27307, r27305, r27306, MPFR_RNDN);
        mpfr_set_d(r27308, k, MPFR_RNDN);
        mpfr_mul(r27309, r27307, r27308, MPFR_RNDN);
        mpfr_sub(r27310, r27304, r27309, MPFR_RNDN);
        return mpfr_get_d(r27310, MPFR_RNDN);
}

static mpfr_t r27311, r27312, r27313, r27314, r27315, r27316, r27317, r27318, r27319, r27320, r27321, r27322, r27323, r27324, r27325, r27326, r27327, r27328, r27329, r27330, r27331, r27332, r27333, r27334, r27335, r27336, r27337, r27338, r27339, r27340, r27341, r27342, r27343, r27344, r27345, r27346, r27347, r27348, r27349, r27350, r27351, r27352, r27353, r27354, r27355, r27356;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27311);
        mpfr_init_set_str(r27312, "18.0", 10, MPFR_RNDN);
        mpfr_init(r27313);
        mpfr_init(r27314);
        mpfr_init(r27315);
        mpfr_init(r27316);
        mpfr_init(r27317);
        mpfr_init(r27318);
        mpfr_init(r27319);
        mpfr_init(r27320);
        mpfr_init_set_str(r27321, "4.0", 10, MPFR_RNDN);
        mpfr_init(r27322);
        mpfr_init(r27323);
        mpfr_init(r27324);
        mpfr_init(r27325);
        mpfr_init(r27326);
        mpfr_init(r27327);
        mpfr_init(r27328);
        mpfr_init(r27329);
        mpfr_init(r27330);
        mpfr_init(r27331);
        mpfr_init(r27332);
        mpfr_init(r27333);
        mpfr_init_set_str(r27334, "27.0", 10, MPFR_RNDN);
        mpfr_init(r27335);
        mpfr_init(r27336);
        mpfr_init(r27337);
        mpfr_init(r27338);
        mpfr_init_set_str(r27339, "-5.520878218001742e+307", 10, MPFR_RNDN);
        mpfr_init(r27340);
        mpfr_init(r27341);
        mpfr_init(r27342);
        mpfr_init(r27343);
        mpfr_init(r27344);
        mpfr_init(r27345);
        mpfr_init(r27346);
        mpfr_init(r27347);
        mpfr_init(r27348);
        mpfr_init(r27349);
        mpfr_init(r27350);
        mpfr_init(r27351);
        mpfr_init(r27352);
        mpfr_init_set_str(r27353, "9.83958488566865e+306", 10, MPFR_RNDN);
        mpfr_init(r27354);
        mpfr_init(r27355);
        mpfr_init(r27356);
}

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(r27311, x, MPFR_RNDN);
        ;
        mpfr_mul(r27313, r27311, r27312, MPFR_RNDN);
        mpfr_set_d(r27314, y, MPFR_RNDN);
        mpfr_mul(r27315, r27313, r27314, MPFR_RNDN);
        mpfr_set_d(r27316, z, MPFR_RNDN);
        mpfr_set_d(r27317, t, MPFR_RNDN);
        mpfr_mul(r27318, r27316, r27317, MPFR_RNDN);
        mpfr_mul(r27319, r27315, r27318, MPFR_RNDN);
        mpfr_set_d(r27320, a, MPFR_RNDN);
        ;
        mpfr_mul(r27322, r27320, r27321, MPFR_RNDN);
        mpfr_mul(r27323, r27322, r27317, MPFR_RNDN);
        mpfr_sub(r27324, r27319, r27323, MPFR_RNDN);
        mpfr_set_d(r27325, b, MPFR_RNDN);
        mpfr_set_d(r27326, c, MPFR_RNDN);
        mpfr_mul(r27327, r27325, r27326, MPFR_RNDN);
        mpfr_add(r27328, r27324, r27327, MPFR_RNDN);
        mpfr_mul(r27329, r27311, r27321, MPFR_RNDN);
        mpfr_set_d(r27330, i, MPFR_RNDN);
        mpfr_mul(r27331, r27329, r27330, MPFR_RNDN);
        mpfr_sub(r27332, r27328, r27331, MPFR_RNDN);
        mpfr_set_d(r27333, j, MPFR_RNDN);
        ;
        mpfr_mul(r27335, r27333, r27334, MPFR_RNDN);
        mpfr_set_d(r27336, k, MPFR_RNDN);
        mpfr_mul(r27337, r27335, r27336, MPFR_RNDN);
        mpfr_sub(r27338, r27332, r27337, MPFR_RNDN);
        ;
        mpfr_set_si(r27340, mpfr_cmp(r27338, r27339) <= 0, MPFR_RNDN);
        mpfr_mul(r27341, r27330, r27329, MPFR_RNDN);
        mpfr_sub(r27342, r27327, r27341, MPFR_RNDN);
        mpfr_mul(r27343, r27334, r27336, MPFR_RNDN);
        mpfr_mul(r27344, r27333, r27343, MPFR_RNDN);
        mpfr_sub(r27345, r27342, r27344, MPFR_RNDN);
        mpfr_mul(r27346, r27316, r27311, MPFR_RNDN);
        mpfr_mul(r27347, r27314, r27312, MPFR_RNDN);
        mpfr_mul(r27348, r27346, r27347, MPFR_RNDN);
        mpfr_mul(r27349, r27321, r27320, MPFR_RNDN);
        mpfr_sub(r27350, r27348, r27349, MPFR_RNDN);
        mpfr_mul(r27351, r27317, r27350, MPFR_RNDN);
        mpfr_add(r27352, r27345, r27351, MPFR_RNDN);
        ;
        mpfr_set_si(r27354, mpfr_cmp(r27338, r27353) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r27354, MPFR_RNDN)) { mpfr_set(r27355, r27338, MPFR_RNDN); } else { mpfr_set(r27355, r27352, MPFR_RNDN); };
        if (mpfr_get_si(r27340, MPFR_RNDN)) { mpfr_set(r27356, r27352, MPFR_RNDN); } else { mpfr_set(r27356, r27355, MPFR_RNDN); };
        return mpfr_get_d(r27356, MPFR_RNDN);
}

static mpfr_t r27357, r27358, r27359, r27360, r27361, r27362, r27363, r27364, r27365, r27366, r27367, r27368, r27369, r27370, r27371, r27372, r27373, r27374, r27375, r27376, r27377, r27378, r27379, r27380, r27381, r27382, r27383, r27384, r27385, r27386, r27387, r27388, r27389, r27390, r27391, r27392, r27393, r27394, r27395, r27396, r27397, r27398, r27399, r27400, r27401, r27402;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27357);
        mpfr_init_set_str(r27358, "18.0", 10, MPFR_RNDN);
        mpfr_init(r27359);
        mpfr_init(r27360);
        mpfr_init(r27361);
        mpfr_init(r27362);
        mpfr_init(r27363);
        mpfr_init(r27364);
        mpfr_init(r27365);
        mpfr_init(r27366);
        mpfr_init_set_str(r27367, "4.0", 10, MPFR_RNDN);
        mpfr_init(r27368);
        mpfr_init(r27369);
        mpfr_init(r27370);
        mpfr_init(r27371);
        mpfr_init(r27372);
        mpfr_init(r27373);
        mpfr_init(r27374);
        mpfr_init(r27375);
        mpfr_init(r27376);
        mpfr_init(r27377);
        mpfr_init(r27378);
        mpfr_init(r27379);
        mpfr_init_set_str(r27380, "27.0", 10, MPFR_RNDN);
        mpfr_init(r27381);
        mpfr_init(r27382);
        mpfr_init(r27383);
        mpfr_init(r27384);
        mpfr_init_set_str(r27385, "-5.520878218001742e+307", 10, MPFR_RNDN);
        mpfr_init(r27386);
        mpfr_init(r27387);
        mpfr_init(r27388);
        mpfr_init(r27389);
        mpfr_init(r27390);
        mpfr_init(r27391);
        mpfr_init(r27392);
        mpfr_init(r27393);
        mpfr_init(r27394);
        mpfr_init(r27395);
        mpfr_init(r27396);
        mpfr_init(r27397);
        mpfr_init(r27398);
        mpfr_init_set_str(r27399, "9.83958488566865e+306", 10, MPFR_RNDN);
        mpfr_init(r27400);
        mpfr_init(r27401);
        mpfr_init(r27402);
}

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(r27357, x, MPFR_RNDN);
        ;
        mpfr_mul(r27359, r27357, r27358, MPFR_RNDN);
        mpfr_set_d(r27360, y, MPFR_RNDN);
        mpfr_mul(r27361, r27359, r27360, MPFR_RNDN);
        mpfr_set_d(r27362, z, MPFR_RNDN);
        mpfr_set_d(r27363, t, MPFR_RNDN);
        mpfr_mul(r27364, r27362, r27363, MPFR_RNDN);
        mpfr_mul(r27365, r27361, r27364, MPFR_RNDN);
        mpfr_set_d(r27366, a, MPFR_RNDN);
        ;
        mpfr_mul(r27368, r27366, r27367, MPFR_RNDN);
        mpfr_mul(r27369, r27368, r27363, MPFR_RNDN);
        mpfr_sub(r27370, r27365, r27369, MPFR_RNDN);
        mpfr_set_d(r27371, b, MPFR_RNDN);
        mpfr_set_d(r27372, c, MPFR_RNDN);
        mpfr_mul(r27373, r27371, r27372, MPFR_RNDN);
        mpfr_add(r27374, r27370, r27373, MPFR_RNDN);
        mpfr_mul(r27375, r27357, r27367, MPFR_RNDN);
        mpfr_set_d(r27376, i, MPFR_RNDN);
        mpfr_mul(r27377, r27375, r27376, MPFR_RNDN);
        mpfr_sub(r27378, r27374, r27377, MPFR_RNDN);
        mpfr_set_d(r27379, j, MPFR_RNDN);
        ;
        mpfr_mul(r27381, r27379, r27380, MPFR_RNDN);
        mpfr_set_d(r27382, k, MPFR_RNDN);
        mpfr_mul(r27383, r27381, r27382, MPFR_RNDN);
        mpfr_sub(r27384, r27378, r27383, MPFR_RNDN);
        ;
        mpfr_set_si(r27386, mpfr_cmp(r27384, r27385) <= 0, MPFR_RNDN);
        mpfr_mul(r27387, r27376, r27375, MPFR_RNDN);
        mpfr_sub(r27388, r27373, r27387, MPFR_RNDN);
        mpfr_mul(r27389, r27380, r27382, MPFR_RNDN);
        mpfr_mul(r27390, r27379, r27389, MPFR_RNDN);
        mpfr_sub(r27391, r27388, r27390, MPFR_RNDN);
        mpfr_mul(r27392, r27362, r27357, MPFR_RNDN);
        mpfr_mul(r27393, r27360, r27358, MPFR_RNDN);
        mpfr_mul(r27394, r27392, r27393, MPFR_RNDN);
        mpfr_mul(r27395, r27367, r27366, MPFR_RNDN);
        mpfr_sub(r27396, r27394, r27395, MPFR_RNDN);
        mpfr_mul(r27397, r27363, r27396, MPFR_RNDN);
        mpfr_add(r27398, r27391, r27397, MPFR_RNDN);
        ;
        mpfr_set_si(r27400, mpfr_cmp(r27384, r27399) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r27400, MPFR_RNDN)) { mpfr_set(r27401, r27384, MPFR_RNDN); } else { mpfr_set(r27401, r27398, MPFR_RNDN); };
        if (mpfr_get_si(r27386, MPFR_RNDN)) { mpfr_set(r27402, r27398, MPFR_RNDN); } else { mpfr_set(r27402, r27401, MPFR_RNDN); };
        return mpfr_get_d(r27402, MPFR_RNDN);
}

