#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, E";

double f_if(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r53159 = x;
        float r53160 = 18.0f;
        float r53161 = r53159 * r53160;
        float r53162 = y;
        float r53163 = r53161 * r53162;
        float r53164 = z;
        float r53165 = r53163 * r53164;
        float r53166 = t;
        float r53167 = r53165 * r53166;
        float r53168 = a;
        float r53169 = 4.0f;
        float r53170 = r53168 * r53169;
        float r53171 = r53170 * r53166;
        float r53172 = r53167 - r53171;
        float r53173 = b;
        float r53174 = c;
        float r53175 = r53173 * r53174;
        float r53176 = r53172 + r53175;
        float r53177 = r53159 * r53169;
        float r53178 = i;
        float r53179 = r53177 * r53178;
        float r53180 = r53176 - r53179;
        float r53181 = j;
        float r53182 = 27.0f;
        float r53183 = r53181 * r53182;
        float r53184 = k;
        float r53185 = r53183 * r53184;
        float r53186 = r53180 - r53185;
        return r53186;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r53187 = x;
        double r53188 = 18.0;
        double r53189 = r53187 * r53188;
        double r53190 = y;
        double r53191 = r53189 * r53190;
        double r53192 = z;
        double r53193 = r53191 * r53192;
        double r53194 = t;
        double r53195 = r53193 * r53194;
        double r53196 = a;
        double r53197 = 4.0;
        double r53198 = r53196 * r53197;
        double r53199 = r53198 * r53194;
        double r53200 = r53195 - r53199;
        double r53201 = b;
        double r53202 = c;
        double r53203 = r53201 * r53202;
        double r53204 = r53200 + r53203;
        double r53205 = r53187 * r53197;
        double r53206 = i;
        double r53207 = r53205 * r53206;
        double r53208 = r53204 - r53207;
        double r53209 = j;
        double r53210 = 27.0;
        double r53211 = r53209 * r53210;
        double r53212 = k;
        double r53213 = r53211 * r53212;
        double r53214 = r53208 - r53213;
        return r53214;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r53215 = z;
        float r53216 = -9.389688531466505e+21f;
        bool r53217 = r53215 <= r53216;
        float r53218 = b;
        float r53219 = c;
        float r53220 = r53218 * r53219;
        float r53221 = 4.0f;
        float r53222 = i;
        float r53223 = x;
        float r53224 = r53222 * r53223;
        float r53225 = a;
        float r53226 = t;
        float r53227 = r53225 * r53226;
        float r53228 = r53224 + r53227;
        float r53229 = r53221 * r53228;
        float r53230 = r53220 - r53229;
        float r53231 = y;
        float r53232 = 18.0f;
        float r53233 = r53231 * r53232;
        float r53234 = r53223 * r53226;
        float r53235 = r53233 * r53234;
        float r53236 = r53235 * r53215;
        float r53237 = 27.0f;
        float r53238 = j;
        float r53239 = r53237 * r53238;
        float r53240 = k;
        float r53241 = r53239 * r53240;
        float r53242 = r53236 - r53241;
        float r53243 = r53230 + r53242;
        float r53244 = 8.34671733747768e-19f;
        bool r53245 = r53215 <= r53244;
        float r53246 = r53215 * r53231;
        float r53247 = r53246 * r53223;
        float r53248 = r53226 * r53232;
        float r53249 = r53247 * r53248;
        float r53250 = r53249 + r53220;
        float r53251 = r53223 * r53222;
        float r53252 = r53226 * r53225;
        float r53253 = r53251 + r53252;
        float r53254 = r53253 * r53221;
        float r53255 = r53238 * r53237;
        float r53256 = r53255 * r53240;
        float r53257 = r53254 + r53256;
        float r53258 = r53250 - r53257;
        float r53259 = r53245 ? r53258 : r53243;
        float r53260 = r53217 ? r53243 : r53259;
        return r53260;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r53261 = z;
        double r53262 = -9.389688531466505e+21;
        bool r53263 = r53261 <= r53262;
        double r53264 = b;
        double r53265 = c;
        double r53266 = r53264 * r53265;
        double r53267 = 4.0;
        double r53268 = i;
        double r53269 = x;
        double r53270 = r53268 * r53269;
        double r53271 = a;
        double r53272 = t;
        double r53273 = r53271 * r53272;
        double r53274 = r53270 + r53273;
        double r53275 = r53267 * r53274;
        double r53276 = r53266 - r53275;
        double r53277 = y;
        double r53278 = 18.0;
        double r53279 = r53277 * r53278;
        double r53280 = r53269 * r53272;
        double r53281 = r53279 * r53280;
        double r53282 = r53281 * r53261;
        double r53283 = 27.0;
        double r53284 = j;
        double r53285 = r53283 * r53284;
        double r53286 = k;
        double r53287 = r53285 * r53286;
        double r53288 = r53282 - r53287;
        double r53289 = r53276 + r53288;
        double r53290 = 8.34671733747768e-19;
        bool r53291 = r53261 <= r53290;
        double r53292 = r53261 * r53277;
        double r53293 = r53292 * r53269;
        double r53294 = r53272 * r53278;
        double r53295 = r53293 * r53294;
        double r53296 = r53295 + r53266;
        double r53297 = r53269 * r53268;
        double r53298 = r53272 * r53271;
        double r53299 = r53297 + r53298;
        double r53300 = r53299 * r53267;
        double r53301 = r53284 * r53283;
        double r53302 = r53301 * r53286;
        double r53303 = r53300 + r53302;
        double r53304 = r53296 - r53303;
        double r53305 = r53291 ? r53304 : r53289;
        double r53306 = r53263 ? r53289 : r53305;
        return r53306;
}

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 r53307, r53308, r53309, r53310, r53311, r53312, r53313, r53314, r53315, r53316, r53317, r53318, r53319, r53320, r53321, r53322, r53323, r53324, r53325, r53326, r53327, r53328, r53329, r53330, r53331, r53332, r53333, r53334;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r53307);
        mpfr_init_set_str(r53308, "18.0", 10, MPFR_RNDN);
        mpfr_init(r53309);
        mpfr_init(r53310);
        mpfr_init(r53311);
        mpfr_init(r53312);
        mpfr_init(r53313);
        mpfr_init(r53314);
        mpfr_init(r53315);
        mpfr_init(r53316);
        mpfr_init_set_str(r53317, "4.0", 10, MPFR_RNDN);
        mpfr_init(r53318);
        mpfr_init(r53319);
        mpfr_init(r53320);
        mpfr_init(r53321);
        mpfr_init(r53322);
        mpfr_init(r53323);
        mpfr_init(r53324);
        mpfr_init(r53325);
        mpfr_init(r53326);
        mpfr_init(r53327);
        mpfr_init(r53328);
        mpfr_init(r53329);
        mpfr_init_set_str(r53330, "27.0", 10, MPFR_RNDN);
        mpfr_init(r53331);
        mpfr_init(r53332);
        mpfr_init(r53333);
        mpfr_init(r53334);
}

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(r53307, x, MPFR_RNDN);
        ;
        mpfr_mul(r53309, r53307, r53308, MPFR_RNDN);
        mpfr_set_d(r53310, y, MPFR_RNDN);
        mpfr_mul(r53311, r53309, r53310, MPFR_RNDN);
        mpfr_set_d(r53312, z, MPFR_RNDN);
        mpfr_mul(r53313, r53311, r53312, MPFR_RNDN);
        mpfr_set_d(r53314, t, MPFR_RNDN);
        mpfr_mul(r53315, r53313, r53314, MPFR_RNDN);
        mpfr_set_d(r53316, a, MPFR_RNDN);
        ;
        mpfr_mul(r53318, r53316, r53317, MPFR_RNDN);
        mpfr_mul(r53319, r53318, r53314, MPFR_RNDN);
        mpfr_sub(r53320, r53315, r53319, MPFR_RNDN);
        mpfr_set_d(r53321, b, MPFR_RNDN);
        mpfr_set_d(r53322, c, MPFR_RNDN);
        mpfr_mul(r53323, r53321, r53322, MPFR_RNDN);
        mpfr_add(r53324, r53320, r53323, MPFR_RNDN);
        mpfr_mul(r53325, r53307, r53317, MPFR_RNDN);
        mpfr_set_d(r53326, i, MPFR_RNDN);
        mpfr_mul(r53327, r53325, r53326, MPFR_RNDN);
        mpfr_sub(r53328, r53324, r53327, MPFR_RNDN);
        mpfr_set_d(r53329, j, MPFR_RNDN);
        ;
        mpfr_mul(r53331, r53329, r53330, MPFR_RNDN);
        mpfr_set_d(r53332, k, MPFR_RNDN);
        mpfr_mul(r53333, r53331, r53332, MPFR_RNDN);
        mpfr_sub(r53334, r53328, r53333, MPFR_RNDN);
        return mpfr_get_d(r53334, MPFR_RNDN);
}

static mpfr_t r53335, r53336, r53337, r53338, r53339, r53340, r53341, r53342, r53343, r53344, r53345, r53346, r53347, r53348, r53349, r53350, r53351, r53352, r53353, r53354, r53355, r53356, r53357, r53358, r53359, r53360, r53361, r53362, r53363, r53364, r53365, r53366, r53367, r53368, r53369, r53370, r53371, r53372, r53373, r53374, r53375, r53376, r53377, r53378, r53379, r53380;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r53335);
        mpfr_init_set_str(r53336, "-9.389688531466505e+21", 10, MPFR_RNDN);
        mpfr_init(r53337);
        mpfr_init(r53338);
        mpfr_init(r53339);
        mpfr_init(r53340);
        mpfr_init_set_str(r53341, "4.0", 10, MPFR_RNDN);
        mpfr_init(r53342);
        mpfr_init(r53343);
        mpfr_init(r53344);
        mpfr_init(r53345);
        mpfr_init(r53346);
        mpfr_init(r53347);
        mpfr_init(r53348);
        mpfr_init(r53349);
        mpfr_init(r53350);
        mpfr_init(r53351);
        mpfr_init_set_str(r53352, "18.0", 10, MPFR_RNDN);
        mpfr_init(r53353);
        mpfr_init(r53354);
        mpfr_init(r53355);
        mpfr_init(r53356);
        mpfr_init_set_str(r53357, "27.0", 10, MPFR_RNDN);
        mpfr_init(r53358);
        mpfr_init(r53359);
        mpfr_init(r53360);
        mpfr_init(r53361);
        mpfr_init(r53362);
        mpfr_init(r53363);
        mpfr_init_set_str(r53364, "8.34671733747768e-19", 10, MPFR_RNDN);
        mpfr_init(r53365);
        mpfr_init(r53366);
        mpfr_init(r53367);
        mpfr_init(r53368);
        mpfr_init(r53369);
        mpfr_init(r53370);
        mpfr_init(r53371);
        mpfr_init(r53372);
        mpfr_init(r53373);
        mpfr_init(r53374);
        mpfr_init(r53375);
        mpfr_init(r53376);
        mpfr_init(r53377);
        mpfr_init(r53378);
        mpfr_init(r53379);
        mpfr_init(r53380);
}

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(r53335, z, MPFR_RNDN);
        ;
        mpfr_set_si(r53337, mpfr_cmp(r53335, r53336) <= 0, MPFR_RNDN);
        mpfr_set_d(r53338, b, MPFR_RNDN);
        mpfr_set_d(r53339, c, MPFR_RNDN);
        mpfr_mul(r53340, r53338, r53339, MPFR_RNDN);
        ;
        mpfr_set_d(r53342, i, MPFR_RNDN);
        mpfr_set_d(r53343, x, MPFR_RNDN);
        mpfr_mul(r53344, r53342, r53343, MPFR_RNDN);
        mpfr_set_d(r53345, a, MPFR_RNDN);
        mpfr_set_d(r53346, t, MPFR_RNDN);
        mpfr_mul(r53347, r53345, r53346, MPFR_RNDN);
        mpfr_add(r53348, r53344, r53347, MPFR_RNDN);
        mpfr_mul(r53349, r53341, r53348, MPFR_RNDN);
        mpfr_sub(r53350, r53340, r53349, MPFR_RNDN);
        mpfr_set_d(r53351, y, MPFR_RNDN);
        ;
        mpfr_mul(r53353, r53351, r53352, MPFR_RNDN);
        mpfr_mul(r53354, r53343, r53346, MPFR_RNDN);
        mpfr_mul(r53355, r53353, r53354, MPFR_RNDN);
        mpfr_mul(r53356, r53355, r53335, MPFR_RNDN);
        ;
        mpfr_set_d(r53358, j, MPFR_RNDN);
        mpfr_mul(r53359, r53357, r53358, MPFR_RNDN);
        mpfr_set_d(r53360, k, MPFR_RNDN);
        mpfr_mul(r53361, r53359, r53360, MPFR_RNDN);
        mpfr_sub(r53362, r53356, r53361, MPFR_RNDN);
        mpfr_add(r53363, r53350, r53362, MPFR_RNDN);
        ;
        mpfr_set_si(r53365, mpfr_cmp(r53335, r53364) <= 0, MPFR_RNDN);
        mpfr_mul(r53366, r53335, r53351, MPFR_RNDN);
        mpfr_mul(r53367, r53366, r53343, MPFR_RNDN);
        mpfr_mul(r53368, r53346, r53352, MPFR_RNDN);
        mpfr_mul(r53369, r53367, r53368, MPFR_RNDN);
        mpfr_add(r53370, r53369, r53340, MPFR_RNDN);
        mpfr_mul(r53371, r53343, r53342, MPFR_RNDN);
        mpfr_mul(r53372, r53346, r53345, MPFR_RNDN);
        mpfr_add(r53373, r53371, r53372, MPFR_RNDN);
        mpfr_mul(r53374, r53373, r53341, MPFR_RNDN);
        mpfr_mul(r53375, r53358, r53357, MPFR_RNDN);
        mpfr_mul(r53376, r53375, r53360, MPFR_RNDN);
        mpfr_add(r53377, r53374, r53376, MPFR_RNDN);
        mpfr_sub(r53378, r53370, r53377, MPFR_RNDN);
        if (mpfr_get_si(r53365, MPFR_RNDN)) { mpfr_set(r53379, r53378, MPFR_RNDN); } else { mpfr_set(r53379, r53363, MPFR_RNDN); };
        if (mpfr_get_si(r53337, MPFR_RNDN)) { mpfr_set(r53380, r53363, MPFR_RNDN); } else { mpfr_set(r53380, r53379, MPFR_RNDN); };
        return mpfr_get_d(r53380, MPFR_RNDN);
}

static mpfr_t r53381, r53382, r53383, r53384, r53385, r53386, r53387, r53388, r53389, r53390, r53391, r53392, r53393, r53394, r53395, r53396, r53397, r53398, r53399, r53400, r53401, r53402, r53403, r53404, r53405, r53406, r53407, r53408, r53409, r53410, r53411, r53412, r53413, r53414, r53415, r53416, r53417, r53418, r53419, r53420, r53421, r53422, r53423, r53424, r53425, r53426;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r53381);
        mpfr_init_set_str(r53382, "-9.389688531466505e+21", 10, MPFR_RNDN);
        mpfr_init(r53383);
        mpfr_init(r53384);
        mpfr_init(r53385);
        mpfr_init(r53386);
        mpfr_init_set_str(r53387, "4.0", 10, MPFR_RNDN);
        mpfr_init(r53388);
        mpfr_init(r53389);
        mpfr_init(r53390);
        mpfr_init(r53391);
        mpfr_init(r53392);
        mpfr_init(r53393);
        mpfr_init(r53394);
        mpfr_init(r53395);
        mpfr_init(r53396);
        mpfr_init(r53397);
        mpfr_init_set_str(r53398, "18.0", 10, MPFR_RNDN);
        mpfr_init(r53399);
        mpfr_init(r53400);
        mpfr_init(r53401);
        mpfr_init(r53402);
        mpfr_init_set_str(r53403, "27.0", 10, MPFR_RNDN);
        mpfr_init(r53404);
        mpfr_init(r53405);
        mpfr_init(r53406);
        mpfr_init(r53407);
        mpfr_init(r53408);
        mpfr_init(r53409);
        mpfr_init_set_str(r53410, "8.34671733747768e-19", 10, MPFR_RNDN);
        mpfr_init(r53411);
        mpfr_init(r53412);
        mpfr_init(r53413);
        mpfr_init(r53414);
        mpfr_init(r53415);
        mpfr_init(r53416);
        mpfr_init(r53417);
        mpfr_init(r53418);
        mpfr_init(r53419);
        mpfr_init(r53420);
        mpfr_init(r53421);
        mpfr_init(r53422);
        mpfr_init(r53423);
        mpfr_init(r53424);
        mpfr_init(r53425);
        mpfr_init(r53426);
}

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(r53381, z, MPFR_RNDN);
        ;
        mpfr_set_si(r53383, mpfr_cmp(r53381, r53382) <= 0, MPFR_RNDN);
        mpfr_set_d(r53384, b, MPFR_RNDN);
        mpfr_set_d(r53385, c, MPFR_RNDN);
        mpfr_mul(r53386, r53384, r53385, MPFR_RNDN);
        ;
        mpfr_set_d(r53388, i, MPFR_RNDN);
        mpfr_set_d(r53389, x, MPFR_RNDN);
        mpfr_mul(r53390, r53388, r53389, MPFR_RNDN);
        mpfr_set_d(r53391, a, MPFR_RNDN);
        mpfr_set_d(r53392, t, MPFR_RNDN);
        mpfr_mul(r53393, r53391, r53392, MPFR_RNDN);
        mpfr_add(r53394, r53390, r53393, MPFR_RNDN);
        mpfr_mul(r53395, r53387, r53394, MPFR_RNDN);
        mpfr_sub(r53396, r53386, r53395, MPFR_RNDN);
        mpfr_set_d(r53397, y, MPFR_RNDN);
        ;
        mpfr_mul(r53399, r53397, r53398, MPFR_RNDN);
        mpfr_mul(r53400, r53389, r53392, MPFR_RNDN);
        mpfr_mul(r53401, r53399, r53400, MPFR_RNDN);
        mpfr_mul(r53402, r53401, r53381, MPFR_RNDN);
        ;
        mpfr_set_d(r53404, j, MPFR_RNDN);
        mpfr_mul(r53405, r53403, r53404, MPFR_RNDN);
        mpfr_set_d(r53406, k, MPFR_RNDN);
        mpfr_mul(r53407, r53405, r53406, MPFR_RNDN);
        mpfr_sub(r53408, r53402, r53407, MPFR_RNDN);
        mpfr_add(r53409, r53396, r53408, MPFR_RNDN);
        ;
        mpfr_set_si(r53411, mpfr_cmp(r53381, r53410) <= 0, MPFR_RNDN);
        mpfr_mul(r53412, r53381, r53397, MPFR_RNDN);
        mpfr_mul(r53413, r53412, r53389, MPFR_RNDN);
        mpfr_mul(r53414, r53392, r53398, MPFR_RNDN);
        mpfr_mul(r53415, r53413, r53414, MPFR_RNDN);
        mpfr_add(r53416, r53415, r53386, MPFR_RNDN);
        mpfr_mul(r53417, r53389, r53388, MPFR_RNDN);
        mpfr_mul(r53418, r53392, r53391, MPFR_RNDN);
        mpfr_add(r53419, r53417, r53418, MPFR_RNDN);
        mpfr_mul(r53420, r53419, r53387, MPFR_RNDN);
        mpfr_mul(r53421, r53404, r53403, MPFR_RNDN);
        mpfr_mul(r53422, r53421, r53406, MPFR_RNDN);
        mpfr_add(r53423, r53420, r53422, MPFR_RNDN);
        mpfr_sub(r53424, r53416, r53423, MPFR_RNDN);
        if (mpfr_get_si(r53411, MPFR_RNDN)) { mpfr_set(r53425, r53424, MPFR_RNDN); } else { mpfr_set(r53425, r53409, MPFR_RNDN); };
        if (mpfr_get_si(r53383, MPFR_RNDN)) { mpfr_set(r53426, r53409, MPFR_RNDN); } else { mpfr_set(r53426, r53425, MPFR_RNDN); };
        return mpfr_get_d(r53426, MPFR_RNDN);
}

