#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Linear.Matrix:det44 from linear-1.19.1.3";

double f_if(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k, float y0, float y1, float y2, float y3, float y4, float y5) {
        float r17145 = x;
        float r17146 = y;
        float r17147 = r17145 * r17146;
        float r17148 = z;
        float r17149 = t;
        float r17150 = r17148 * r17149;
        float r17151 = r17147 - r17150;
        float r17152 = a;
        float r17153 = b;
        float r17154 = r17152 * r17153;
        float r17155 = c;
        float r17156 = i;
        float r17157 = r17155 * r17156;
        float r17158 = r17154 - r17157;
        float r17159 = r17151 * r17158;
        float r17160 = j;
        float r17161 = r17145 * r17160;
        float r17162 = k;
        float r17163 = r17148 * r17162;
        float r17164 = r17161 - r17163;
        float r17165 = y0;
        float r17166 = r17165 * r17153;
        float r17167 = y1;
        float r17168 = r17167 * r17156;
        float r17169 = r17166 - r17168;
        float r17170 = r17164 * r17169;
        float r17171 = r17159 - r17170;
        float r17172 = y2;
        float r17173 = r17145 * r17172;
        float r17174 = y3;
        float r17175 = r17148 * r17174;
        float r17176 = r17173 - r17175;
        float r17177 = r17165 * r17155;
        float r17178 = r17167 * r17152;
        float r17179 = r17177 - r17178;
        float r17180 = r17176 * r17179;
        float r17181 = r17171 + r17180;
        float r17182 = r17149 * r17160;
        float r17183 = r17146 * r17162;
        float r17184 = r17182 - r17183;
        float r17185 = y4;
        float r17186 = r17185 * r17153;
        float r17187 = y5;
        float r17188 = r17187 * r17156;
        float r17189 = r17186 - r17188;
        float r17190 = r17184 * r17189;
        float r17191 = r17181 + r17190;
        float r17192 = r17149 * r17172;
        float r17193 = r17146 * r17174;
        float r17194 = r17192 - r17193;
        float r17195 = r17185 * r17155;
        float r17196 = r17187 * r17152;
        float r17197 = r17195 - r17196;
        float r17198 = r17194 * r17197;
        float r17199 = r17191 - r17198;
        float r17200 = r17162 * r17172;
        float r17201 = r17160 * r17174;
        float r17202 = r17200 - r17201;
        float r17203 = r17185 * r17167;
        float r17204 = r17187 * r17165;
        float r17205 = r17203 - r17204;
        float r17206 = r17202 * r17205;
        float r17207 = r17199 + r17206;
        return r17207;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
        double r17208 = x;
        double r17209 = y;
        double r17210 = r17208 * r17209;
        double r17211 = z;
        double r17212 = t;
        double r17213 = r17211 * r17212;
        double r17214 = r17210 - r17213;
        double r17215 = a;
        double r17216 = b;
        double r17217 = r17215 * r17216;
        double r17218 = c;
        double r17219 = i;
        double r17220 = r17218 * r17219;
        double r17221 = r17217 - r17220;
        double r17222 = r17214 * r17221;
        double r17223 = j;
        double r17224 = r17208 * r17223;
        double r17225 = k;
        double r17226 = r17211 * r17225;
        double r17227 = r17224 - r17226;
        double r17228 = y0;
        double r17229 = r17228 * r17216;
        double r17230 = y1;
        double r17231 = r17230 * r17219;
        double r17232 = r17229 - r17231;
        double r17233 = r17227 * r17232;
        double r17234 = r17222 - r17233;
        double r17235 = y2;
        double r17236 = r17208 * r17235;
        double r17237 = y3;
        double r17238 = r17211 * r17237;
        double r17239 = r17236 - r17238;
        double r17240 = r17228 * r17218;
        double r17241 = r17230 * r17215;
        double r17242 = r17240 - r17241;
        double r17243 = r17239 * r17242;
        double r17244 = r17234 + r17243;
        double r17245 = r17212 * r17223;
        double r17246 = r17209 * r17225;
        double r17247 = r17245 - r17246;
        double r17248 = y4;
        double r17249 = r17248 * r17216;
        double r17250 = y5;
        double r17251 = r17250 * r17219;
        double r17252 = r17249 - r17251;
        double r17253 = r17247 * r17252;
        double r17254 = r17244 + r17253;
        double r17255 = r17212 * r17235;
        double r17256 = r17209 * r17237;
        double r17257 = r17255 - r17256;
        double r17258 = r17248 * r17218;
        double r17259 = r17250 * r17215;
        double r17260 = r17258 - r17259;
        double r17261 = r17257 * r17260;
        double r17262 = r17254 - r17261;
        double r17263 = r17225 * r17235;
        double r17264 = r17223 * r17237;
        double r17265 = r17263 - r17264;
        double r17266 = r17248 * r17230;
        double r17267 = r17250 * r17228;
        double r17268 = r17266 - r17267;
        double r17269 = r17265 * r17268;
        double r17270 = r17262 + r17269;
        return r17270;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k, float y0, float y1, float y2, float y3, float y4, float y5) {
        float r17271 = y0;
        float r17272 = -2.226329217802607e+54f;
        bool r17273 = r17271 <= r17272;
        float r17274 = y1;
        float r17275 = y4;
        float r17276 = r17274 * r17275;
        float r17277 = y5;
        float r17278 = r17277 * r17271;
        float r17279 = r17276 - r17278;
        float r17280 = y2;
        float r17281 = k;
        float r17282 = r17280 * r17281;
        float r17283 = y3;
        float r17284 = j;
        float r17285 = r17283 * r17284;
        float r17286 = r17282 - r17285;
        float r17287 = t;
        float r17288 = r17284 * r17287;
        float r17289 = y;
        float r17290 = r17281 * r17289;
        float r17291 = r17288 - r17290;
        float r17292 = b;
        float r17293 = r17292 * r17275;
        float r17294 = i;
        float r17295 = r17277 * r17294;
        float r17296 = r17293 - r17295;
        float r17297 = x;
        float r17298 = r17297 * r17280;
        float r17299 = z;
        float r17300 = r17299 * r17283;
        float r17301 = r17298 - r17300;
        float r17302 = c;
        float r17303 = r17271 * r17302;
        float r17304 = a;
        float r17305 = r17274 * r17304;
        float r17306 = r17303 - r17305;
        float r17307 = r17301 * r17306;
        float r17308 = fma(r17291, r17296, r17307);
        float r17309 = fma(r17279, r17286, r17308);
        float r17310 = r17287 * r17299;
        float r17311 = r17294 * r17302;
        float r17312 = r17292 * r17304;
        float r17313 = r17311 - r17312;
        float r17314 = r17310 * r17313;
        float r17315 = r17302 * r17289;
        float r17316 = r17297 * r17294;
        float r17317 = r17315 * r17316;
        float r17318 = r17314 - r17317;
        float r17319 = r17309 + r17318;
        float r17320 = -9.074317245156488e-59f;
        bool r17321 = r17271 <= r17320;
        float r17322 = r17275 * r17274;
        float r17323 = r17322 - r17278;
        float r17324 = r17281 * r17280;
        float r17325 = r17284 * r17283;
        float r17326 = r17324 - r17325;
        float r17327 = r17289 * r17281;
        float r17328 = r17288 - r17327;
        float r17329 = r17275 * r17292;
        float r17330 = r17329 - r17295;
        float r17331 = r17302 * r17271;
        float r17332 = r17331 - r17305;
        float r17333 = r17301 * r17332;
        float r17334 = fma(r17328, r17330, r17333);
        float r17335 = fma(r17323, r17326, r17334);
        float r17336 = r17284 * r17297;
        float r17337 = r17281 * r17299;
        float r17338 = r17336 - r17337;
        float r17339 = r17292 * r17271;
        float r17340 = r17274 * r17294;
        float r17341 = r17339 - r17340;
        float r17342 = r17275 * r17302;
        float r17343 = r17277 * r17304;
        float r17344 = r17342 - r17343;
        float r17345 = r17287 * r17280;
        float r17346 = r17289 * r17283;
        float r17347 = r17345 - r17346;
        float r17348 = r17344 * r17347;
        float r17349 = fma(r17338, r17341, r17348);
        float r17350 = r17335 - r17349;
        float r17351 = r17271 * r17277;
        float r17352 = r17322 - r17351;
        float r17353 = r17282 - r17325;
        float r17354 = r17294 * r17277;
        float r17355 = r17329 - r17354;
        float r17356 = r17304 * r17274;
        float r17357 = r17303 - r17356;
        float r17358 = r17301 * r17357;
        float r17359 = fma(r17328, r17355, r17358);
        float r17360 = fma(r17352, r17353, r17359);
        float r17361 = r17304 * r17292;
        float r17362 = r17361 - r17311;
        float r17363 = r17289 * r17297;
        float r17364 = r17363 - r17310;
        float r17365 = r17362 * r17364;
        float r17366 = r17271 * r17292;
        float r17367 = r17366 - r17340;
        float r17368 = cbrt(r17347);
        float r17369 = r17302 * r17275;
        float r17370 = r17304 * r17277;
        float r17371 = r17369 - r17370;
        float r17372 = cbrt(r17371);
        float r17373 = r17368 * r17372;
        float r17374 = r17373 * (r17373 * r17373);
        float r17375 = fma(r17338, r17367, r17374);
        float r17376 = r17365 - r17375;
        float r17377 = r17360 + r17376;
        float r17378 = r17321 ? r17350 : r17377;
        float r17379 = r17273 ? r17319 : r17378;
        return r17379;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
        double r17380 = y0;
        double r17381 = -2.226329217802607e+54;
        bool r17382 = r17380 <= r17381;
        double r17383 = y1;
        double r17384 = y4;
        double r17385 = r17383 * r17384;
        double r17386 = y5;
        double r17387 = r17386 * r17380;
        double r17388 = r17385 - r17387;
        double r17389 = y2;
        double r17390 = k;
        double r17391 = r17389 * r17390;
        double r17392 = y3;
        double r17393 = j;
        double r17394 = r17392 * r17393;
        double r17395 = r17391 - r17394;
        double r17396 = t;
        double r17397 = r17393 * r17396;
        double r17398 = y;
        double r17399 = r17390 * r17398;
        double r17400 = r17397 - r17399;
        double r17401 = b;
        double r17402 = r17401 * r17384;
        double r17403 = i;
        double r17404 = r17386 * r17403;
        double r17405 = r17402 - r17404;
        double r17406 = x;
        double r17407 = r17406 * r17389;
        double r17408 = z;
        double r17409 = r17408 * r17392;
        double r17410 = r17407 - r17409;
        double r17411 = c;
        double r17412 = r17380 * r17411;
        double r17413 = a;
        double r17414 = r17383 * r17413;
        double r17415 = r17412 - r17414;
        double r17416 = r17410 * r17415;
        double r17417 = fma(r17400, r17405, r17416);
        double r17418 = fma(r17388, r17395, r17417);
        double r17419 = r17396 * r17408;
        double r17420 = r17403 * r17411;
        double r17421 = r17401 * r17413;
        double r17422 = r17420 - r17421;
        double r17423 = r17419 * r17422;
        double r17424 = r17411 * r17398;
        double r17425 = r17406 * r17403;
        double r17426 = r17424 * r17425;
        double r17427 = r17423 - r17426;
        double r17428 = r17418 + r17427;
        double r17429 = -9.074317245156488e-59;
        bool r17430 = r17380 <= r17429;
        double r17431 = r17384 * r17383;
        double r17432 = r17431 - r17387;
        double r17433 = r17390 * r17389;
        double r17434 = r17393 * r17392;
        double r17435 = r17433 - r17434;
        double r17436 = r17398 * r17390;
        double r17437 = r17397 - r17436;
        double r17438 = r17384 * r17401;
        double r17439 = r17438 - r17404;
        double r17440 = r17411 * r17380;
        double r17441 = r17440 - r17414;
        double r17442 = r17410 * r17441;
        double r17443 = fma(r17437, r17439, r17442);
        double r17444 = fma(r17432, r17435, r17443);
        double r17445 = r17393 * r17406;
        double r17446 = r17390 * r17408;
        double r17447 = r17445 - r17446;
        double r17448 = r17401 * r17380;
        double r17449 = r17383 * r17403;
        double r17450 = r17448 - r17449;
        double r17451 = r17384 * r17411;
        double r17452 = r17386 * r17413;
        double r17453 = r17451 - r17452;
        double r17454 = r17396 * r17389;
        double r17455 = r17398 * r17392;
        double r17456 = r17454 - r17455;
        double r17457 = r17453 * r17456;
        double r17458 = fma(r17447, r17450, r17457);
        double r17459 = r17444 - r17458;
        double r17460 = r17380 * r17386;
        double r17461 = r17431 - r17460;
        double r17462 = r17391 - r17434;
        double r17463 = r17403 * r17386;
        double r17464 = r17438 - r17463;
        double r17465 = r17413 * r17383;
        double r17466 = r17412 - r17465;
        double r17467 = r17410 * r17466;
        double r17468 = fma(r17437, r17464, r17467);
        double r17469 = fma(r17461, r17462, r17468);
        double r17470 = r17413 * r17401;
        double r17471 = r17470 - r17420;
        double r17472 = r17398 * r17406;
        double r17473 = r17472 - r17419;
        double r17474 = r17471 * r17473;
        double r17475 = r17380 * r17401;
        double r17476 = r17475 - r17449;
        double r17477 = cbrt(r17456);
        double r17478 = r17411 * r17384;
        double r17479 = r17413 * r17386;
        double r17480 = r17478 - r17479;
        double r17481 = cbrt(r17480);
        double r17482 = r17477 * r17481;
        double r17483 = r17482 * (r17482 * r17482);
        double r17484 = fma(r17447, r17476, r17483);
        double r17485 = r17474 - r17484;
        double r17486 = r17469 + r17485;
        double r17487 = r17430 ? r17459 : r17486;
        double r17488 = r17382 ? r17428 : r17487;
        return r17488;
}

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 r17489, r17490, r17491, r17492, r17493, r17494, r17495, r17496, r17497, r17498, r17499, r17500, r17501, r17502, r17503, r17504, r17505, r17506, r17507, r17508, r17509, r17510, r17511, r17512, r17513, r17514, r17515, r17516, r17517, r17518, r17519, r17520, r17521, r17522, r17523, r17524, r17525, r17526, r17527, r17528, r17529, r17530, r17531, r17532, r17533, r17534, r17535, r17536, r17537, r17538, r17539, r17540, r17541, r17542, r17543, r17544, r17545, r17546, r17547, r17548, r17549, r17550, r17551;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r17489);
        mpfr_init(r17490);
        mpfr_init(r17491);
        mpfr_init(r17492);
        mpfr_init(r17493);
        mpfr_init(r17494);
        mpfr_init(r17495);
        mpfr_init(r17496);
        mpfr_init(r17497);
        mpfr_init(r17498);
        mpfr_init(r17499);
        mpfr_init(r17500);
        mpfr_init(r17501);
        mpfr_init(r17502);
        mpfr_init(r17503);
        mpfr_init(r17504);
        mpfr_init(r17505);
        mpfr_init(r17506);
        mpfr_init(r17507);
        mpfr_init(r17508);
        mpfr_init(r17509);
        mpfr_init(r17510);
        mpfr_init(r17511);
        mpfr_init(r17512);
        mpfr_init(r17513);
        mpfr_init(r17514);
        mpfr_init(r17515);
        mpfr_init(r17516);
        mpfr_init(r17517);
        mpfr_init(r17518);
        mpfr_init(r17519);
        mpfr_init(r17520);
        mpfr_init(r17521);
        mpfr_init(r17522);
        mpfr_init(r17523);
        mpfr_init(r17524);
        mpfr_init(r17525);
        mpfr_init(r17526);
        mpfr_init(r17527);
        mpfr_init(r17528);
        mpfr_init(r17529);
        mpfr_init(r17530);
        mpfr_init(r17531);
        mpfr_init(r17532);
        mpfr_init(r17533);
        mpfr_init(r17534);
        mpfr_init(r17535);
        mpfr_init(r17536);
        mpfr_init(r17537);
        mpfr_init(r17538);
        mpfr_init(r17539);
        mpfr_init(r17540);
        mpfr_init(r17541);
        mpfr_init(r17542);
        mpfr_init(r17543);
        mpfr_init(r17544);
        mpfr_init(r17545);
        mpfr_init(r17546);
        mpfr_init(r17547);
        mpfr_init(r17548);
        mpfr_init(r17549);
        mpfr_init(r17550);
        mpfr_init(r17551);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
        mpfr_set_d(r17489, x, MPFR_RNDN);
        mpfr_set_d(r17490, y, MPFR_RNDN);
        mpfr_mul(r17491, r17489, r17490, MPFR_RNDN);
        mpfr_set_d(r17492, z, MPFR_RNDN);
        mpfr_set_d(r17493, t, MPFR_RNDN);
        mpfr_mul(r17494, r17492, r17493, MPFR_RNDN);
        mpfr_sub(r17495, r17491, r17494, MPFR_RNDN);
        mpfr_set_d(r17496, a, MPFR_RNDN);
        mpfr_set_d(r17497, b, MPFR_RNDN);
        mpfr_mul(r17498, r17496, r17497, MPFR_RNDN);
        mpfr_set_d(r17499, c, MPFR_RNDN);
        mpfr_set_d(r17500, i, MPFR_RNDN);
        mpfr_mul(r17501, r17499, r17500, MPFR_RNDN);
        mpfr_sub(r17502, r17498, r17501, MPFR_RNDN);
        mpfr_mul(r17503, r17495, r17502, MPFR_RNDN);
        mpfr_set_d(r17504, j, MPFR_RNDN);
        mpfr_mul(r17505, r17489, r17504, MPFR_RNDN);
        mpfr_set_d(r17506, k, MPFR_RNDN);
        mpfr_mul(r17507, r17492, r17506, MPFR_RNDN);
        mpfr_sub(r17508, r17505, r17507, MPFR_RNDN);
        mpfr_set_d(r17509, y0, MPFR_RNDN);
        mpfr_mul(r17510, r17509, r17497, MPFR_RNDN);
        mpfr_set_d(r17511, y1, MPFR_RNDN);
        mpfr_mul(r17512, r17511, r17500, MPFR_RNDN);
        mpfr_sub(r17513, r17510, r17512, MPFR_RNDN);
        mpfr_mul(r17514, r17508, r17513, MPFR_RNDN);
        mpfr_sub(r17515, r17503, r17514, MPFR_RNDN);
        mpfr_set_d(r17516, y2, MPFR_RNDN);
        mpfr_mul(r17517, r17489, r17516, MPFR_RNDN);
        mpfr_set_d(r17518, y3, MPFR_RNDN);
        mpfr_mul(r17519, r17492, r17518, MPFR_RNDN);
        mpfr_sub(r17520, r17517, r17519, MPFR_RNDN);
        mpfr_mul(r17521, r17509, r17499, MPFR_RNDN);
        mpfr_mul(r17522, r17511, r17496, MPFR_RNDN);
        mpfr_sub(r17523, r17521, r17522, MPFR_RNDN);
        mpfr_mul(r17524, r17520, r17523, MPFR_RNDN);
        mpfr_add(r17525, r17515, r17524, MPFR_RNDN);
        mpfr_mul(r17526, r17493, r17504, MPFR_RNDN);
        mpfr_mul(r17527, r17490, r17506, MPFR_RNDN);
        mpfr_sub(r17528, r17526, r17527, MPFR_RNDN);
        mpfr_set_d(r17529, y4, MPFR_RNDN);
        mpfr_mul(r17530, r17529, r17497, MPFR_RNDN);
        mpfr_set_d(r17531, y5, MPFR_RNDN);
        mpfr_mul(r17532, r17531, r17500, MPFR_RNDN);
        mpfr_sub(r17533, r17530, r17532, MPFR_RNDN);
        mpfr_mul(r17534, r17528, r17533, MPFR_RNDN);
        mpfr_add(r17535, r17525, r17534, MPFR_RNDN);
        mpfr_mul(r17536, r17493, r17516, MPFR_RNDN);
        mpfr_mul(r17537, r17490, r17518, MPFR_RNDN);
        mpfr_sub(r17538, r17536, r17537, MPFR_RNDN);
        mpfr_mul(r17539, r17529, r17499, MPFR_RNDN);
        mpfr_mul(r17540, r17531, r17496, MPFR_RNDN);
        mpfr_sub(r17541, r17539, r17540, MPFR_RNDN);
        mpfr_mul(r17542, r17538, r17541, MPFR_RNDN);
        mpfr_sub(r17543, r17535, r17542, MPFR_RNDN);
        mpfr_mul(r17544, r17506, r17516, MPFR_RNDN);
        mpfr_mul(r17545, r17504, r17518, MPFR_RNDN);
        mpfr_sub(r17546, r17544, r17545, MPFR_RNDN);
        mpfr_mul(r17547, r17529, r17511, MPFR_RNDN);
        mpfr_mul(r17548, r17531, r17509, MPFR_RNDN);
        mpfr_sub(r17549, r17547, r17548, MPFR_RNDN);
        mpfr_mul(r17550, r17546, r17549, MPFR_RNDN);
        mpfr_add(r17551, r17543, r17550, MPFR_RNDN);
        return mpfr_get_d(r17551, MPFR_RNDN);
}

static mpfr_t r17552, r17553, r17554, r17555, r17556, r17557, r17558, r17559, r17560, r17561, r17562, r17563, r17564, r17565, r17566, r17567, r17568, r17569, r17570, r17571, r17572, r17573, r17574, r17575, r17576, r17577, r17578, r17579, r17580, r17581, r17582, r17583, r17584, r17585, r17586, r17587, r17588, r17589, r17590, r17591, r17592, r17593, r17594, r17595, r17596, r17597, r17598, r17599, r17600, r17601, r17602, r17603, r17604, r17605, r17606, r17607, r17608, r17609, r17610, r17611, r17612, r17613, r17614, r17615, r17616, r17617, r17618, r17619, r17620, r17621, r17622, r17623, r17624, r17625, r17626, r17627, r17628, r17629, r17630, r17631, r17632, r17633, r17634, r17635, r17636, r17637, r17638, r17639, r17640, r17641, r17642, r17643, r17644, r17645, r17646, r17647, r17648, r17649, r17650, r17651, r17652, r17653, r17654, r17655, r17656, r17657, r17658, r17659, r17660;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17552);
        mpfr_init_set_str(r17553, "-2.226329217802607e+54", 10, MPFR_RNDN);
        mpfr_init(r17554);
        mpfr_init(r17555);
        mpfr_init(r17556);
        mpfr_init(r17557);
        mpfr_init(r17558);
        mpfr_init(r17559);
        mpfr_init(r17560);
        mpfr_init(r17561);
        mpfr_init(r17562);
        mpfr_init(r17563);
        mpfr_init(r17564);
        mpfr_init(r17565);
        mpfr_init(r17566);
        mpfr_init(r17567);
        mpfr_init(r17568);
        mpfr_init(r17569);
        mpfr_init(r17570);
        mpfr_init(r17571);
        mpfr_init(r17572);
        mpfr_init(r17573);
        mpfr_init(r17574);
        mpfr_init(r17575);
        mpfr_init(r17576);
        mpfr_init(r17577);
        mpfr_init(r17578);
        mpfr_init(r17579);
        mpfr_init(r17580);
        mpfr_init(r17581);
        mpfr_init(r17582);
        mpfr_init(r17583);
        mpfr_init(r17584);
        mpfr_init(r17585);
        mpfr_init(r17586);
        mpfr_init(r17587);
        mpfr_init(r17588);
        mpfr_init(r17589);
        mpfr_init(r17590);
        mpfr_init(r17591);
        mpfr_init(r17592);
        mpfr_init(r17593);
        mpfr_init(r17594);
        mpfr_init(r17595);
        mpfr_init(r17596);
        mpfr_init(r17597);
        mpfr_init(r17598);
        mpfr_init(r17599);
        mpfr_init(r17600);
        mpfr_init_set_str(r17601, "-9.074317245156488e-59", 10, MPFR_RNDN);
        mpfr_init(r17602);
        mpfr_init(r17603);
        mpfr_init(r17604);
        mpfr_init(r17605);
        mpfr_init(r17606);
        mpfr_init(r17607);
        mpfr_init(r17608);
        mpfr_init(r17609);
        mpfr_init(r17610);
        mpfr_init(r17611);
        mpfr_init(r17612);
        mpfr_init(r17613);
        mpfr_init(r17614);
        mpfr_init(r17615);
        mpfr_init(r17616);
        mpfr_init(r17617);
        mpfr_init(r17618);
        mpfr_init(r17619);
        mpfr_init(r17620);
        mpfr_init(r17621);
        mpfr_init(r17622);
        mpfr_init(r17623);
        mpfr_init(r17624);
        mpfr_init(r17625);
        mpfr_init(r17626);
        mpfr_init(r17627);
        mpfr_init(r17628);
        mpfr_init(r17629);
        mpfr_init(r17630);
        mpfr_init(r17631);
        mpfr_init(r17632);
        mpfr_init(r17633);
        mpfr_init(r17634);
        mpfr_init(r17635);
        mpfr_init(r17636);
        mpfr_init(r17637);
        mpfr_init(r17638);
        mpfr_init(r17639);
        mpfr_init(r17640);
        mpfr_init(r17641);
        mpfr_init(r17642);
        mpfr_init(r17643);
        mpfr_init(r17644);
        mpfr_init(r17645);
        mpfr_init(r17646);
        mpfr_init(r17647);
        mpfr_init(r17648);
        mpfr_init(r17649);
        mpfr_init(r17650);
        mpfr_init(r17651);
        mpfr_init(r17652);
        mpfr_init(r17653);
        mpfr_init(r17654);
        mpfr_init(r17655);
        mpfr_init(r17656);
        mpfr_init(r17657);
        mpfr_init(r17658);
        mpfr_init(r17659);
        mpfr_init(r17660);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
        mpfr_set_d(r17552, y0, MPFR_RNDN);
        ;
        mpfr_set_si(r17554, mpfr_cmp(r17552, r17553) <= 0, MPFR_RNDN);
        mpfr_set_d(r17555, y1, MPFR_RNDN);
        mpfr_set_d(r17556, y4, MPFR_RNDN);
        mpfr_mul(r17557, r17555, r17556, MPFR_RNDN);
        mpfr_set_d(r17558, y5, MPFR_RNDN);
        mpfr_mul(r17559, r17558, r17552, MPFR_RNDN);
        mpfr_sub(r17560, r17557, r17559, MPFR_RNDN);
        mpfr_set_d(r17561, y2, MPFR_RNDN);
        mpfr_set_d(r17562, k, MPFR_RNDN);
        mpfr_mul(r17563, r17561, r17562, MPFR_RNDN);
        mpfr_set_d(r17564, y3, MPFR_RNDN);
        mpfr_set_d(r17565, j, MPFR_RNDN);
        mpfr_mul(r17566, r17564, r17565, MPFR_RNDN);
        mpfr_sub(r17567, r17563, r17566, MPFR_RNDN);
        mpfr_set_d(r17568, t, MPFR_RNDN);
        mpfr_mul(r17569, r17565, r17568, MPFR_RNDN);
        mpfr_set_d(r17570, y, MPFR_RNDN);
        mpfr_mul(r17571, r17562, r17570, MPFR_RNDN);
        mpfr_sub(r17572, r17569, r17571, MPFR_RNDN);
        mpfr_set_d(r17573, b, MPFR_RNDN);
        mpfr_mul(r17574, r17573, r17556, MPFR_RNDN);
        mpfr_set_d(r17575, i, MPFR_RNDN);
        mpfr_mul(r17576, r17558, r17575, MPFR_RNDN);
        mpfr_sub(r17577, r17574, r17576, MPFR_RNDN);
        mpfr_set_d(r17578, x, MPFR_RNDN);
        mpfr_mul(r17579, r17578, r17561, MPFR_RNDN);
        mpfr_set_d(r17580, z, MPFR_RNDN);
        mpfr_mul(r17581, r17580, r17564, MPFR_RNDN);
        mpfr_sub(r17582, r17579, r17581, MPFR_RNDN);
        mpfr_set_d(r17583, c, MPFR_RNDN);
        mpfr_mul(r17584, r17552, r17583, MPFR_RNDN);
        mpfr_set_d(r17585, a, MPFR_RNDN);
        mpfr_mul(r17586, r17555, r17585, MPFR_RNDN);
        mpfr_sub(r17587, r17584, r17586, MPFR_RNDN);
        mpfr_mul(r17588, r17582, r17587, MPFR_RNDN);
        mpfr_fma(r17589, r17572, r17577, r17588, MPFR_RNDN);
        mpfr_fma(r17590, r17560, r17567, r17589, MPFR_RNDN);
        mpfr_mul(r17591, r17568, r17580, MPFR_RNDN);
        mpfr_mul(r17592, r17575, r17583, MPFR_RNDN);
        mpfr_mul(r17593, r17573, r17585, MPFR_RNDN);
        mpfr_sub(r17594, r17592, r17593, MPFR_RNDN);
        mpfr_mul(r17595, r17591, r17594, MPFR_RNDN);
        mpfr_mul(r17596, r17583, r17570, MPFR_RNDN);
        mpfr_mul(r17597, r17578, r17575, MPFR_RNDN);
        mpfr_mul(r17598, r17596, r17597, MPFR_RNDN);
        mpfr_sub(r17599, r17595, r17598, MPFR_RNDN);
        mpfr_add(r17600, r17590, r17599, MPFR_RNDN);
        ;
        mpfr_set_si(r17602, mpfr_cmp(r17552, r17601) <= 0, MPFR_RNDN);
        mpfr_mul(r17603, r17556, r17555, MPFR_RNDN);
        mpfr_sub(r17604, r17603, r17559, MPFR_RNDN);
        mpfr_mul(r17605, r17562, r17561, MPFR_RNDN);
        mpfr_mul(r17606, r17565, r17564, MPFR_RNDN);
        mpfr_sub(r17607, r17605, r17606, MPFR_RNDN);
        mpfr_mul(r17608, r17570, r17562, MPFR_RNDN);
        mpfr_sub(r17609, r17569, r17608, MPFR_RNDN);
        mpfr_mul(r17610, r17556, r17573, MPFR_RNDN);
        mpfr_sub(r17611, r17610, r17576, MPFR_RNDN);
        mpfr_mul(r17612, r17583, r17552, MPFR_RNDN);
        mpfr_sub(r17613, r17612, r17586, MPFR_RNDN);
        mpfr_mul(r17614, r17582, r17613, MPFR_RNDN);
        mpfr_fma(r17615, r17609, r17611, r17614, MPFR_RNDN);
        mpfr_fma(r17616, r17604, r17607, r17615, MPFR_RNDN);
        mpfr_mul(r17617, r17565, r17578, MPFR_RNDN);
        mpfr_mul(r17618, r17562, r17580, MPFR_RNDN);
        mpfr_sub(r17619, r17617, r17618, MPFR_RNDN);
        mpfr_mul(r17620, r17573, r17552, MPFR_RNDN);
        mpfr_mul(r17621, r17555, r17575, MPFR_RNDN);
        mpfr_sub(r17622, r17620, r17621, MPFR_RNDN);
        mpfr_mul(r17623, r17556, r17583, MPFR_RNDN);
        mpfr_mul(r17624, r17558, r17585, MPFR_RNDN);
        mpfr_sub(r17625, r17623, r17624, MPFR_RNDN);
        mpfr_mul(r17626, r17568, r17561, MPFR_RNDN);
        mpfr_mul(r17627, r17570, r17564, MPFR_RNDN);
        mpfr_sub(r17628, r17626, r17627, MPFR_RNDN);
        mpfr_mul(r17629, r17625, r17628, MPFR_RNDN);
        mpfr_fma(r17630, r17619, r17622, r17629, MPFR_RNDN);
        mpfr_sub(r17631, r17616, r17630, MPFR_RNDN);
        mpfr_mul(r17632, r17552, r17558, MPFR_RNDN);
        mpfr_sub(r17633, r17603, r17632, MPFR_RNDN);
        mpfr_sub(r17634, r17563, r17606, MPFR_RNDN);
        mpfr_mul(r17635, r17575, r17558, MPFR_RNDN);
        mpfr_sub(r17636, r17610, r17635, MPFR_RNDN);
        mpfr_mul(r17637, r17585, r17555, MPFR_RNDN);
        mpfr_sub(r17638, r17584, r17637, MPFR_RNDN);
        mpfr_mul(r17639, r17582, r17638, MPFR_RNDN);
        mpfr_fma(r17640, r17609, r17636, r17639, MPFR_RNDN);
        mpfr_fma(r17641, r17633, r17634, r17640, MPFR_RNDN);
        mpfr_mul(r17642, r17585, r17573, MPFR_RNDN);
        mpfr_sub(r17643, r17642, r17592, MPFR_RNDN);
        mpfr_mul(r17644, r17570, r17578, MPFR_RNDN);
        mpfr_sub(r17645, r17644, r17591, MPFR_RNDN);
        mpfr_mul(r17646, r17643, r17645, MPFR_RNDN);
        mpfr_mul(r17647, r17552, r17573, MPFR_RNDN);
        mpfr_sub(r17648, r17647, r17621, MPFR_RNDN);
        mpfr_cbrt(r17649, r17628, MPFR_RNDN);
        mpfr_mul(r17650, r17583, r17556, MPFR_RNDN);
        mpfr_mul(r17651, r17585, r17558, MPFR_RNDN);
        mpfr_sub(r17652, r17650, r17651, MPFR_RNDN);
        mpfr_cbrt(r17653, r17652, MPFR_RNDN);
        mpfr_mul(r17654, r17649, r17653, MPFR_RNDN);
        mpfr_mul(r17655, r17654, r17654, MPFR_RNDN); mpfr_mul(r17655, r17655, r17654, MPFR_RNDN);
        mpfr_fma(r17656, r17619, r17648, r17655, MPFR_RNDN);
        mpfr_sub(r17657, r17646, r17656, MPFR_RNDN);
        mpfr_add(r17658, r17641, r17657, MPFR_RNDN);
        if (mpfr_get_si(r17602, MPFR_RNDN)) { mpfr_set(r17659, r17631, MPFR_RNDN); } else { mpfr_set(r17659, r17658, MPFR_RNDN); };
        if (mpfr_get_si(r17554, MPFR_RNDN)) { mpfr_set(r17660, r17600, MPFR_RNDN); } else { mpfr_set(r17660, r17659, MPFR_RNDN); };
        return mpfr_get_d(r17660, MPFR_RNDN);
}

static mpfr_t r17661, r17662, r17663, r17664, r17665, r17666, r17667, r17668, r17669, r17670, r17671, r17672, r17673, r17674, r17675, r17676, r17677, r17678, r17679, r17680, r17681, r17682, r17683, r17684, r17685, r17686, r17687, r17688, r17689, r17690, r17691, r17692, r17693, r17694, r17695, r17696, r17697, r17698, r17699, r17700, r17701, r17702, r17703, r17704, r17705, r17706, r17707, r17708, r17709, r17710, r17711, r17712, r17713, r17714, r17715, r17716, r17717, r17718, r17719, r17720, r17721, r17722, r17723, r17724, r17725, r17726, r17727, r17728, r17729, r17730, r17731, r17732, r17733, r17734, r17735, r17736, r17737, r17738, r17739, r17740, r17741, r17742, r17743, r17744, r17745, r17746, r17747, r17748, r17749, r17750, r17751, r17752, r17753, r17754, r17755, r17756, r17757, r17758, r17759, r17760, r17761, r17762, r17763, r17764, r17765, r17766, r17767, r17768, r17769;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17661);
        mpfr_init_set_str(r17662, "-2.226329217802607e+54", 10, MPFR_RNDN);
        mpfr_init(r17663);
        mpfr_init(r17664);
        mpfr_init(r17665);
        mpfr_init(r17666);
        mpfr_init(r17667);
        mpfr_init(r17668);
        mpfr_init(r17669);
        mpfr_init(r17670);
        mpfr_init(r17671);
        mpfr_init(r17672);
        mpfr_init(r17673);
        mpfr_init(r17674);
        mpfr_init(r17675);
        mpfr_init(r17676);
        mpfr_init(r17677);
        mpfr_init(r17678);
        mpfr_init(r17679);
        mpfr_init(r17680);
        mpfr_init(r17681);
        mpfr_init(r17682);
        mpfr_init(r17683);
        mpfr_init(r17684);
        mpfr_init(r17685);
        mpfr_init(r17686);
        mpfr_init(r17687);
        mpfr_init(r17688);
        mpfr_init(r17689);
        mpfr_init(r17690);
        mpfr_init(r17691);
        mpfr_init(r17692);
        mpfr_init(r17693);
        mpfr_init(r17694);
        mpfr_init(r17695);
        mpfr_init(r17696);
        mpfr_init(r17697);
        mpfr_init(r17698);
        mpfr_init(r17699);
        mpfr_init(r17700);
        mpfr_init(r17701);
        mpfr_init(r17702);
        mpfr_init(r17703);
        mpfr_init(r17704);
        mpfr_init(r17705);
        mpfr_init(r17706);
        mpfr_init(r17707);
        mpfr_init(r17708);
        mpfr_init(r17709);
        mpfr_init_set_str(r17710, "-9.074317245156488e-59", 10, MPFR_RNDN);
        mpfr_init(r17711);
        mpfr_init(r17712);
        mpfr_init(r17713);
        mpfr_init(r17714);
        mpfr_init(r17715);
        mpfr_init(r17716);
        mpfr_init(r17717);
        mpfr_init(r17718);
        mpfr_init(r17719);
        mpfr_init(r17720);
        mpfr_init(r17721);
        mpfr_init(r17722);
        mpfr_init(r17723);
        mpfr_init(r17724);
        mpfr_init(r17725);
        mpfr_init(r17726);
        mpfr_init(r17727);
        mpfr_init(r17728);
        mpfr_init(r17729);
        mpfr_init(r17730);
        mpfr_init(r17731);
        mpfr_init(r17732);
        mpfr_init(r17733);
        mpfr_init(r17734);
        mpfr_init(r17735);
        mpfr_init(r17736);
        mpfr_init(r17737);
        mpfr_init(r17738);
        mpfr_init(r17739);
        mpfr_init(r17740);
        mpfr_init(r17741);
        mpfr_init(r17742);
        mpfr_init(r17743);
        mpfr_init(r17744);
        mpfr_init(r17745);
        mpfr_init(r17746);
        mpfr_init(r17747);
        mpfr_init(r17748);
        mpfr_init(r17749);
        mpfr_init(r17750);
        mpfr_init(r17751);
        mpfr_init(r17752);
        mpfr_init(r17753);
        mpfr_init(r17754);
        mpfr_init(r17755);
        mpfr_init(r17756);
        mpfr_init(r17757);
        mpfr_init(r17758);
        mpfr_init(r17759);
        mpfr_init(r17760);
        mpfr_init(r17761);
        mpfr_init(r17762);
        mpfr_init(r17763);
        mpfr_init(r17764);
        mpfr_init(r17765);
        mpfr_init(r17766);
        mpfr_init(r17767);
        mpfr_init(r17768);
        mpfr_init(r17769);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
        mpfr_set_d(r17661, y0, MPFR_RNDN);
        ;
        mpfr_set_si(r17663, mpfr_cmp(r17661, r17662) <= 0, MPFR_RNDN);
        mpfr_set_d(r17664, y1, MPFR_RNDN);
        mpfr_set_d(r17665, y4, MPFR_RNDN);
        mpfr_mul(r17666, r17664, r17665, MPFR_RNDN);
        mpfr_set_d(r17667, y5, MPFR_RNDN);
        mpfr_mul(r17668, r17667, r17661, MPFR_RNDN);
        mpfr_sub(r17669, r17666, r17668, MPFR_RNDN);
        mpfr_set_d(r17670, y2, MPFR_RNDN);
        mpfr_set_d(r17671, k, MPFR_RNDN);
        mpfr_mul(r17672, r17670, r17671, MPFR_RNDN);
        mpfr_set_d(r17673, y3, MPFR_RNDN);
        mpfr_set_d(r17674, j, MPFR_RNDN);
        mpfr_mul(r17675, r17673, r17674, MPFR_RNDN);
        mpfr_sub(r17676, r17672, r17675, MPFR_RNDN);
        mpfr_set_d(r17677, t, MPFR_RNDN);
        mpfr_mul(r17678, r17674, r17677, MPFR_RNDN);
        mpfr_set_d(r17679, y, MPFR_RNDN);
        mpfr_mul(r17680, r17671, r17679, MPFR_RNDN);
        mpfr_sub(r17681, r17678, r17680, MPFR_RNDN);
        mpfr_set_d(r17682, b, MPFR_RNDN);
        mpfr_mul(r17683, r17682, r17665, MPFR_RNDN);
        mpfr_set_d(r17684, i, MPFR_RNDN);
        mpfr_mul(r17685, r17667, r17684, MPFR_RNDN);
        mpfr_sub(r17686, r17683, r17685, MPFR_RNDN);
        mpfr_set_d(r17687, x, MPFR_RNDN);
        mpfr_mul(r17688, r17687, r17670, MPFR_RNDN);
        mpfr_set_d(r17689, z, MPFR_RNDN);
        mpfr_mul(r17690, r17689, r17673, MPFR_RNDN);
        mpfr_sub(r17691, r17688, r17690, MPFR_RNDN);
        mpfr_set_d(r17692, c, MPFR_RNDN);
        mpfr_mul(r17693, r17661, r17692, MPFR_RNDN);
        mpfr_set_d(r17694, a, MPFR_RNDN);
        mpfr_mul(r17695, r17664, r17694, MPFR_RNDN);
        mpfr_sub(r17696, r17693, r17695, MPFR_RNDN);
        mpfr_mul(r17697, r17691, r17696, MPFR_RNDN);
        mpfr_fma(r17698, r17681, r17686, r17697, MPFR_RNDN);
        mpfr_fma(r17699, r17669, r17676, r17698, MPFR_RNDN);
        mpfr_mul(r17700, r17677, r17689, MPFR_RNDN);
        mpfr_mul(r17701, r17684, r17692, MPFR_RNDN);
        mpfr_mul(r17702, r17682, r17694, MPFR_RNDN);
        mpfr_sub(r17703, r17701, r17702, MPFR_RNDN);
        mpfr_mul(r17704, r17700, r17703, MPFR_RNDN);
        mpfr_mul(r17705, r17692, r17679, MPFR_RNDN);
        mpfr_mul(r17706, r17687, r17684, MPFR_RNDN);
        mpfr_mul(r17707, r17705, r17706, MPFR_RNDN);
        mpfr_sub(r17708, r17704, r17707, MPFR_RNDN);
        mpfr_add(r17709, r17699, r17708, MPFR_RNDN);
        ;
        mpfr_set_si(r17711, mpfr_cmp(r17661, r17710) <= 0, MPFR_RNDN);
        mpfr_mul(r17712, r17665, r17664, MPFR_RNDN);
        mpfr_sub(r17713, r17712, r17668, MPFR_RNDN);
        mpfr_mul(r17714, r17671, r17670, MPFR_RNDN);
        mpfr_mul(r17715, r17674, r17673, MPFR_RNDN);
        mpfr_sub(r17716, r17714, r17715, MPFR_RNDN);
        mpfr_mul(r17717, r17679, r17671, MPFR_RNDN);
        mpfr_sub(r17718, r17678, r17717, MPFR_RNDN);
        mpfr_mul(r17719, r17665, r17682, MPFR_RNDN);
        mpfr_sub(r17720, r17719, r17685, MPFR_RNDN);
        mpfr_mul(r17721, r17692, r17661, MPFR_RNDN);
        mpfr_sub(r17722, r17721, r17695, MPFR_RNDN);
        mpfr_mul(r17723, r17691, r17722, MPFR_RNDN);
        mpfr_fma(r17724, r17718, r17720, r17723, MPFR_RNDN);
        mpfr_fma(r17725, r17713, r17716, r17724, MPFR_RNDN);
        mpfr_mul(r17726, r17674, r17687, MPFR_RNDN);
        mpfr_mul(r17727, r17671, r17689, MPFR_RNDN);
        mpfr_sub(r17728, r17726, r17727, MPFR_RNDN);
        mpfr_mul(r17729, r17682, r17661, MPFR_RNDN);
        mpfr_mul(r17730, r17664, r17684, MPFR_RNDN);
        mpfr_sub(r17731, r17729, r17730, MPFR_RNDN);
        mpfr_mul(r17732, r17665, r17692, MPFR_RNDN);
        mpfr_mul(r17733, r17667, r17694, MPFR_RNDN);
        mpfr_sub(r17734, r17732, r17733, MPFR_RNDN);
        mpfr_mul(r17735, r17677, r17670, MPFR_RNDN);
        mpfr_mul(r17736, r17679, r17673, MPFR_RNDN);
        mpfr_sub(r17737, r17735, r17736, MPFR_RNDN);
        mpfr_mul(r17738, r17734, r17737, MPFR_RNDN);
        mpfr_fma(r17739, r17728, r17731, r17738, MPFR_RNDN);
        mpfr_sub(r17740, r17725, r17739, MPFR_RNDN);
        mpfr_mul(r17741, r17661, r17667, MPFR_RNDN);
        mpfr_sub(r17742, r17712, r17741, MPFR_RNDN);
        mpfr_sub(r17743, r17672, r17715, MPFR_RNDN);
        mpfr_mul(r17744, r17684, r17667, MPFR_RNDN);
        mpfr_sub(r17745, r17719, r17744, MPFR_RNDN);
        mpfr_mul(r17746, r17694, r17664, MPFR_RNDN);
        mpfr_sub(r17747, r17693, r17746, MPFR_RNDN);
        mpfr_mul(r17748, r17691, r17747, MPFR_RNDN);
        mpfr_fma(r17749, r17718, r17745, r17748, MPFR_RNDN);
        mpfr_fma(r17750, r17742, r17743, r17749, MPFR_RNDN);
        mpfr_mul(r17751, r17694, r17682, MPFR_RNDN);
        mpfr_sub(r17752, r17751, r17701, MPFR_RNDN);
        mpfr_mul(r17753, r17679, r17687, MPFR_RNDN);
        mpfr_sub(r17754, r17753, r17700, MPFR_RNDN);
        mpfr_mul(r17755, r17752, r17754, MPFR_RNDN);
        mpfr_mul(r17756, r17661, r17682, MPFR_RNDN);
        mpfr_sub(r17757, r17756, r17730, MPFR_RNDN);
        mpfr_cbrt(r17758, r17737, MPFR_RNDN);
        mpfr_mul(r17759, r17692, r17665, MPFR_RNDN);
        mpfr_mul(r17760, r17694, r17667, MPFR_RNDN);
        mpfr_sub(r17761, r17759, r17760, MPFR_RNDN);
        mpfr_cbrt(r17762, r17761, MPFR_RNDN);
        mpfr_mul(r17763, r17758, r17762, MPFR_RNDN);
        mpfr_mul(r17764, r17763, r17763, MPFR_RNDN); mpfr_mul(r17764, r17764, r17763, MPFR_RNDN);
        mpfr_fma(r17765, r17728, r17757, r17764, MPFR_RNDN);
        mpfr_sub(r17766, r17755, r17765, MPFR_RNDN);
        mpfr_add(r17767, r17750, r17766, MPFR_RNDN);
        if (mpfr_get_si(r17711, MPFR_RNDN)) { mpfr_set(r17768, r17740, MPFR_RNDN); } else { mpfr_set(r17768, r17767, MPFR_RNDN); };
        if (mpfr_get_si(r17663, MPFR_RNDN)) { mpfr_set(r17769, r17709, MPFR_RNDN); } else { mpfr_set(r17769, r17768, MPFR_RNDN); };
        return mpfr_get_d(r17769, MPFR_RNDN);
}

