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

char *name = "Linear.Matrix:det33 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 r10324 = x;
        float r10325 = y;
        float r10326 = z;
        float r10327 = r10325 * r10326;
        float r10328 = t;
        float r10329 = a;
        float r10330 = r10328 * r10329;
        float r10331 = r10327 - r10330;
        float r10332 = r10324 * r10331;
        float r10333 = b;
        float r10334 = c;
        float r10335 = r10334 * r10326;
        float r10336 = i;
        float r10337 = r10336 * r10329;
        float r10338 = r10335 - r10337;
        float r10339 = r10333 * r10338;
        float r10340 = r10332 - r10339;
        float r10341 = j;
        float r10342 = r10334 * r10328;
        float r10343 = r10336 * r10325;
        float r10344 = r10342 - r10343;
        float r10345 = r10341 * r10344;
        float r10346 = r10340 + r10345;
        return r10346;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r10347 = x;
        double r10348 = y;
        double r10349 = z;
        double r10350 = r10348 * r10349;
        double r10351 = t;
        double r10352 = a;
        double r10353 = r10351 * r10352;
        double r10354 = r10350 - r10353;
        double r10355 = r10347 * r10354;
        double r10356 = b;
        double r10357 = c;
        double r10358 = r10357 * r10349;
        double r10359 = i;
        double r10360 = r10359 * r10352;
        double r10361 = r10358 - r10360;
        double r10362 = r10356 * r10361;
        double r10363 = r10355 - r10362;
        double r10364 = j;
        double r10365 = r10357 * r10351;
        double r10366 = r10359 * r10348;
        double r10367 = r10365 - r10366;
        double r10368 = r10364 * r10367;
        double r10369 = r10363 + r10368;
        return r10369;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r10370 = y;
        float r10371 = z;
        float r10372 = x;
        float r10373 = r10371 * r10372;
        float r10374 = r10370 * r10373;
        float r10375 = c;
        float r10376 = t;
        float r10377 = r10375 * r10376;
        float r10378 = i;
        float r10379 = r10370 * r10378;
        float r10380 = r10377 - r10379;
        float r10381 = j;
        float r10382 = r10380 * r10381;
        float r10383 = r10372 * r10376;
        float r10384 = a;
        float r10385 = r10383 * r10384;
        float r10386 = r10371 * r10375;
        float r10387 = r10378 * r10384;
        float r10388 = r10386 - r10387;
        float r10389 = b;
        float r10390 = r10388 * r10389;
        float r10391 = r10385 + r10390;
        float r10392 = r10382 - r10391;
        float r10393 = r10374 + r10392;
        float r10394 = -1.2938856282681744e+307;
        bool r10395 = r10393 <= r10394;
        float r10396 = r10370 * r10371;
        float r10397 = r10376 * r10384;
        float r10398 = r10396 - r10397;
        float r10399 = r10372 * r10398;
        float r10400 = r10384 * r10389;
        float r10401 = r10370 * r10381;
        float r10402 = r10400 - r10401;
        float r10403 = r10402 * r10378;
        float r10404 = cbrt(r10403);
        float r10405 = r10404 * r10404;
        float r10406 = r10405 * r10404;
        float r10407 = r10376 * r10381;
        float r10408 = r10389 * r10371;
        float r10409 = r10407 - r10408;
        float r10410 = r10375 * r10409;
        float r10411 = r10406 + r10410;
        float r10412 = r10399 + r10411;
        float r10413 = 3.261760181174107e+304;
        bool r10414 = r10393 <= r10413;
        float r10415 = r10414 ? r10393 : r10412;
        float r10416 = r10395 ? r10412 : r10415;
        return r10416;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r10417 = y;
        double r10418 = z;
        double r10419 = x;
        double r10420 = r10418 * r10419;
        double r10421 = r10417 * r10420;
        double r10422 = c;
        double r10423 = t;
        double r10424 = r10422 * r10423;
        double r10425 = i;
        double r10426 = r10417 * r10425;
        double r10427 = r10424 - r10426;
        double r10428 = j;
        double r10429 = r10427 * r10428;
        double r10430 = r10419 * r10423;
        double r10431 = a;
        double r10432 = r10430 * r10431;
        double r10433 = r10418 * r10422;
        double r10434 = r10425 * r10431;
        double r10435 = r10433 - r10434;
        double r10436 = b;
        double r10437 = r10435 * r10436;
        double r10438 = r10432 + r10437;
        double r10439 = r10429 - r10438;
        double r10440 = r10421 + r10439;
        double r10441 = -1.2938856282681744e+307;
        bool r10442 = r10440 <= r10441;
        double r10443 = r10417 * r10418;
        double r10444 = r10423 * r10431;
        double r10445 = r10443 - r10444;
        double r10446 = r10419 * r10445;
        double r10447 = r10431 * r10436;
        double r10448 = r10417 * r10428;
        double r10449 = r10447 - r10448;
        double r10450 = r10449 * r10425;
        double r10451 = cbrt(r10450);
        double r10452 = r10451 * r10451;
        double r10453 = r10452 * r10451;
        double r10454 = r10423 * r10428;
        double r10455 = r10436 * r10418;
        double r10456 = r10454 - r10455;
        double r10457 = r10422 * r10456;
        double r10458 = r10453 + r10457;
        double r10459 = r10446 + r10458;
        double r10460 = 3.261760181174107e+304;
        bool r10461 = r10440 <= r10460;
        double r10462 = r10461 ? r10440 : r10459;
        double r10463 = r10442 ? r10459 : r10462;
        return r10463;
}

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 r10464, r10465, r10466, r10467, r10468, r10469, r10470, r10471, r10472, r10473, r10474, r10475, r10476, r10477, r10478, r10479, r10480, r10481, r10482, r10483, r10484, r10485, r10486;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r10464);
        mpfr_init(r10465);
        mpfr_init(r10466);
        mpfr_init(r10467);
        mpfr_init(r10468);
        mpfr_init(r10469);
        mpfr_init(r10470);
        mpfr_init(r10471);
        mpfr_init(r10472);
        mpfr_init(r10473);
        mpfr_init(r10474);
        mpfr_init(r10475);
        mpfr_init(r10476);
        mpfr_init(r10477);
        mpfr_init(r10478);
        mpfr_init(r10479);
        mpfr_init(r10480);
        mpfr_init(r10481);
        mpfr_init(r10482);
        mpfr_init(r10483);
        mpfr_init(r10484);
        mpfr_init(r10485);
        mpfr_init(r10486);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10464, x, MPFR_RNDN);
        mpfr_set_d(r10465, y, MPFR_RNDN);
        mpfr_set_d(r10466, z, MPFR_RNDN);
        mpfr_mul(r10467, r10465, r10466, MPFR_RNDN);
        mpfr_set_d(r10468, t, MPFR_RNDN);
        mpfr_set_d(r10469, a, MPFR_RNDN);
        mpfr_mul(r10470, r10468, r10469, MPFR_RNDN);
        mpfr_sub(r10471, r10467, r10470, MPFR_RNDN);
        mpfr_mul(r10472, r10464, r10471, MPFR_RNDN);
        mpfr_set_d(r10473, b, MPFR_RNDN);
        mpfr_set_d(r10474, c, MPFR_RNDN);
        mpfr_mul(r10475, r10474, r10466, MPFR_RNDN);
        mpfr_set_d(r10476, i, MPFR_RNDN);
        mpfr_mul(r10477, r10476, r10469, MPFR_RNDN);
        mpfr_sub(r10478, r10475, r10477, MPFR_RNDN);
        mpfr_mul(r10479, r10473, r10478, MPFR_RNDN);
        mpfr_sub(r10480, r10472, r10479, MPFR_RNDN);
        mpfr_set_d(r10481, j, MPFR_RNDN);
        mpfr_mul(r10482, r10474, r10468, MPFR_RNDN);
        mpfr_mul(r10483, r10476, r10465, MPFR_RNDN);
        mpfr_sub(r10484, r10482, r10483, MPFR_RNDN);
        mpfr_mul(r10485, r10481, r10484, MPFR_RNDN);
        mpfr_add(r10486, r10480, r10485, MPFR_RNDN);
        return mpfr_get_d(r10486, MPFR_RNDN);
}

static mpfr_t r10487, r10488, r10489, r10490, r10491, r10492, r10493, r10494, r10495, r10496, r10497, r10498, r10499, r10500, r10501, r10502, r10503, r10504, r10505, r10506, r10507, r10508, r10509, r10510, r10511, r10512, r10513, r10514, r10515, r10516, r10517, r10518, r10519, r10520, r10521, r10522, r10523, r10524, r10525, r10526, r10527, r10528, r10529, r10530, r10531, r10532, r10533;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r10487);
        mpfr_init(r10488);
        mpfr_init(r10489);
        mpfr_init(r10490);
        mpfr_init(r10491);
        mpfr_init(r10492);
        mpfr_init(r10493);
        mpfr_init(r10494);
        mpfr_init(r10495);
        mpfr_init(r10496);
        mpfr_init(r10497);
        mpfr_init(r10498);
        mpfr_init(r10499);
        mpfr_init(r10500);
        mpfr_init(r10501);
        mpfr_init(r10502);
        mpfr_init(r10503);
        mpfr_init(r10504);
        mpfr_init(r10505);
        mpfr_init(r10506);
        mpfr_init(r10507);
        mpfr_init(r10508);
        mpfr_init(r10509);
        mpfr_init(r10510);
        mpfr_init_set_str(r10511, "-1.2938856282681744e+307", 10, MPFR_RNDN);
        mpfr_init(r10512);
        mpfr_init(r10513);
        mpfr_init(r10514);
        mpfr_init(r10515);
        mpfr_init(r10516);
        mpfr_init(r10517);
        mpfr_init(r10518);
        mpfr_init(r10519);
        mpfr_init(r10520);
        mpfr_init(r10521);
        mpfr_init(r10522);
        mpfr_init(r10523);
        mpfr_init(r10524);
        mpfr_init(r10525);
        mpfr_init(r10526);
        mpfr_init(r10527);
        mpfr_init(r10528);
        mpfr_init(r10529);
        mpfr_init_set_str(r10530, "3.261760181174107e+304", 10, MPFR_RNDN);
        mpfr_init(r10531);
        mpfr_init(r10532);
        mpfr_init(r10533);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10487, y, MPFR_RNDN);
        mpfr_set_d(r10488, z, MPFR_RNDN);
        mpfr_set_d(r10489, x, MPFR_RNDN);
        mpfr_mul(r10490, r10488, r10489, MPFR_RNDN);
        mpfr_mul(r10491, r10487, r10490, MPFR_RNDN);
        mpfr_set_d(r10492, c, MPFR_RNDN);
        mpfr_set_d(r10493, t, MPFR_RNDN);
        mpfr_mul(r10494, r10492, r10493, MPFR_RNDN);
        mpfr_set_d(r10495, i, MPFR_RNDN);
        mpfr_mul(r10496, r10487, r10495, MPFR_RNDN);
        mpfr_sub(r10497, r10494, r10496, MPFR_RNDN);
        mpfr_set_d(r10498, j, MPFR_RNDN);
        mpfr_mul(r10499, r10497, r10498, MPFR_RNDN);
        mpfr_mul(r10500, r10489, r10493, MPFR_RNDN);
        mpfr_set_d(r10501, a, MPFR_RNDN);
        mpfr_mul(r10502, r10500, r10501, MPFR_RNDN);
        mpfr_mul(r10503, r10488, r10492, MPFR_RNDN);
        mpfr_mul(r10504, r10495, r10501, MPFR_RNDN);
        mpfr_sub(r10505, r10503, r10504, MPFR_RNDN);
        mpfr_set_d(r10506, b, MPFR_RNDN);
        mpfr_mul(r10507, r10505, r10506, MPFR_RNDN);
        mpfr_add(r10508, r10502, r10507, MPFR_RNDN);
        mpfr_sub(r10509, r10499, r10508, MPFR_RNDN);
        mpfr_add(r10510, r10491, r10509, MPFR_RNDN);
        ;
        mpfr_set_si(r10512, mpfr_cmp(r10510, r10511) <= 0, MPFR_RNDN);
        mpfr_mul(r10513, r10487, r10488, MPFR_RNDN);
        mpfr_mul(r10514, r10493, r10501, MPFR_RNDN);
        mpfr_sub(r10515, r10513, r10514, MPFR_RNDN);
        mpfr_mul(r10516, r10489, r10515, MPFR_RNDN);
        mpfr_mul(r10517, r10501, r10506, MPFR_RNDN);
        mpfr_mul(r10518, r10487, r10498, MPFR_RNDN);
        mpfr_sub(r10519, r10517, r10518, MPFR_RNDN);
        mpfr_mul(r10520, r10519, r10495, MPFR_RNDN);
        mpfr_cbrt(r10521, r10520, MPFR_RNDN);
        mpfr_mul(r10522, r10521, r10521, MPFR_RNDN);
        mpfr_mul(r10523, r10522, r10521, MPFR_RNDN);
        mpfr_mul(r10524, r10493, r10498, MPFR_RNDN);
        mpfr_mul(r10525, r10506, r10488, MPFR_RNDN);
        mpfr_sub(r10526, r10524, r10525, MPFR_RNDN);
        mpfr_mul(r10527, r10492, r10526, MPFR_RNDN);
        mpfr_add(r10528, r10523, r10527, MPFR_RNDN);
        mpfr_add(r10529, r10516, r10528, MPFR_RNDN);
        ;
        mpfr_set_si(r10531, mpfr_cmp(r10510, r10530) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r10531, MPFR_RNDN)) { mpfr_set(r10532, r10510, MPFR_RNDN); } else { mpfr_set(r10532, r10529, MPFR_RNDN); };
        if (mpfr_get_si(r10512, MPFR_RNDN)) { mpfr_set(r10533, r10529, MPFR_RNDN); } else { mpfr_set(r10533, r10532, MPFR_RNDN); };
        return mpfr_get_d(r10533, MPFR_RNDN);
}

static mpfr_t r10534, r10535, r10536, r10537, r10538, r10539, r10540, r10541, r10542, r10543, r10544, r10545, r10546, r10547, r10548, r10549, r10550, r10551, r10552, r10553, r10554, r10555, r10556, r10557, r10558, r10559, r10560, r10561, r10562, r10563, r10564, r10565, r10566, r10567, r10568, r10569, r10570, r10571, r10572, r10573, r10574, r10575, r10576, r10577, r10578, r10579, r10580;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r10534);
        mpfr_init(r10535);
        mpfr_init(r10536);
        mpfr_init(r10537);
        mpfr_init(r10538);
        mpfr_init(r10539);
        mpfr_init(r10540);
        mpfr_init(r10541);
        mpfr_init(r10542);
        mpfr_init(r10543);
        mpfr_init(r10544);
        mpfr_init(r10545);
        mpfr_init(r10546);
        mpfr_init(r10547);
        mpfr_init(r10548);
        mpfr_init(r10549);
        mpfr_init(r10550);
        mpfr_init(r10551);
        mpfr_init(r10552);
        mpfr_init(r10553);
        mpfr_init(r10554);
        mpfr_init(r10555);
        mpfr_init(r10556);
        mpfr_init(r10557);
        mpfr_init_set_str(r10558, "-1.2938856282681744e+307", 10, MPFR_RNDN);
        mpfr_init(r10559);
        mpfr_init(r10560);
        mpfr_init(r10561);
        mpfr_init(r10562);
        mpfr_init(r10563);
        mpfr_init(r10564);
        mpfr_init(r10565);
        mpfr_init(r10566);
        mpfr_init(r10567);
        mpfr_init(r10568);
        mpfr_init(r10569);
        mpfr_init(r10570);
        mpfr_init(r10571);
        mpfr_init(r10572);
        mpfr_init(r10573);
        mpfr_init(r10574);
        mpfr_init(r10575);
        mpfr_init(r10576);
        mpfr_init_set_str(r10577, "3.261760181174107e+304", 10, MPFR_RNDN);
        mpfr_init(r10578);
        mpfr_init(r10579);
        mpfr_init(r10580);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10534, y, MPFR_RNDN);
        mpfr_set_d(r10535, z, MPFR_RNDN);
        mpfr_set_d(r10536, x, MPFR_RNDN);
        mpfr_mul(r10537, r10535, r10536, MPFR_RNDN);
        mpfr_mul(r10538, r10534, r10537, MPFR_RNDN);
        mpfr_set_d(r10539, c, MPFR_RNDN);
        mpfr_set_d(r10540, t, MPFR_RNDN);
        mpfr_mul(r10541, r10539, r10540, MPFR_RNDN);
        mpfr_set_d(r10542, i, MPFR_RNDN);
        mpfr_mul(r10543, r10534, r10542, MPFR_RNDN);
        mpfr_sub(r10544, r10541, r10543, MPFR_RNDN);
        mpfr_set_d(r10545, j, MPFR_RNDN);
        mpfr_mul(r10546, r10544, r10545, MPFR_RNDN);
        mpfr_mul(r10547, r10536, r10540, MPFR_RNDN);
        mpfr_set_d(r10548, a, MPFR_RNDN);
        mpfr_mul(r10549, r10547, r10548, MPFR_RNDN);
        mpfr_mul(r10550, r10535, r10539, MPFR_RNDN);
        mpfr_mul(r10551, r10542, r10548, MPFR_RNDN);
        mpfr_sub(r10552, r10550, r10551, MPFR_RNDN);
        mpfr_set_d(r10553, b, MPFR_RNDN);
        mpfr_mul(r10554, r10552, r10553, MPFR_RNDN);
        mpfr_add(r10555, r10549, r10554, MPFR_RNDN);
        mpfr_sub(r10556, r10546, r10555, MPFR_RNDN);
        mpfr_add(r10557, r10538, r10556, MPFR_RNDN);
        ;
        mpfr_set_si(r10559, mpfr_cmp(r10557, r10558) <= 0, MPFR_RNDN);
        mpfr_mul(r10560, r10534, r10535, MPFR_RNDN);
        mpfr_mul(r10561, r10540, r10548, MPFR_RNDN);
        mpfr_sub(r10562, r10560, r10561, MPFR_RNDN);
        mpfr_mul(r10563, r10536, r10562, MPFR_RNDN);
        mpfr_mul(r10564, r10548, r10553, MPFR_RNDN);
        mpfr_mul(r10565, r10534, r10545, MPFR_RNDN);
        mpfr_sub(r10566, r10564, r10565, MPFR_RNDN);
        mpfr_mul(r10567, r10566, r10542, MPFR_RNDN);
        mpfr_cbrt(r10568, r10567, MPFR_RNDN);
        mpfr_mul(r10569, r10568, r10568, MPFR_RNDN);
        mpfr_mul(r10570, r10569, r10568, MPFR_RNDN);
        mpfr_mul(r10571, r10540, r10545, MPFR_RNDN);
        mpfr_mul(r10572, r10553, r10535, MPFR_RNDN);
        mpfr_sub(r10573, r10571, r10572, MPFR_RNDN);
        mpfr_mul(r10574, r10539, r10573, MPFR_RNDN);
        mpfr_add(r10575, r10570, r10574, MPFR_RNDN);
        mpfr_add(r10576, r10563, r10575, MPFR_RNDN);
        ;
        mpfr_set_si(r10578, mpfr_cmp(r10557, r10577) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r10578, MPFR_RNDN)) { mpfr_set(r10579, r10557, MPFR_RNDN); } else { mpfr_set(r10579, r10576, MPFR_RNDN); };
        if (mpfr_get_si(r10559, MPFR_RNDN)) { mpfr_set(r10580, r10576, MPFR_RNDN); } else { mpfr_set(r10580, r10579, MPFR_RNDN); };
        return mpfr_get_d(r10580, MPFR_RNDN);
}

