#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 r47368 = x;
        float r47369 = y;
        float r47370 = z;
        float r47371 = r47369 * r47370;
        float r47372 = t;
        float r47373 = a;
        float r47374 = r47372 * r47373;
        float r47375 = r47371 - r47374;
        float r47376 = r47368 * r47375;
        float r47377 = b;
        float r47378 = c;
        float r47379 = r47378 * r47370;
        float r47380 = i;
        float r47381 = r47380 * r47373;
        float r47382 = r47379 - r47381;
        float r47383 = r47377 * r47382;
        float r47384 = r47376 - r47383;
        float r47385 = j;
        float r47386 = r47378 * r47372;
        float r47387 = r47380 * r47369;
        float r47388 = r47386 - r47387;
        float r47389 = r47385 * r47388;
        float r47390 = r47384 + r47389;
        return r47390;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r47391 = x;
        double r47392 = y;
        double r47393 = z;
        double r47394 = r47392 * r47393;
        double r47395 = t;
        double r47396 = a;
        double r47397 = r47395 * r47396;
        double r47398 = r47394 - r47397;
        double r47399 = r47391 * r47398;
        double r47400 = b;
        double r47401 = c;
        double r47402 = r47401 * r47393;
        double r47403 = i;
        double r47404 = r47403 * r47396;
        double r47405 = r47402 - r47404;
        double r47406 = r47400 * r47405;
        double r47407 = r47399 - r47406;
        double r47408 = j;
        double r47409 = r47401 * r47395;
        double r47410 = r47403 * r47392;
        double r47411 = r47409 - r47410;
        double r47412 = r47408 * r47411;
        double r47413 = r47407 + r47412;
        return r47413;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r47414 = x;
        float r47415 = -3.1186130314637846e+124;
        bool r47416 = r47414 <= r47415;
        float r47417 = y;
        float r47418 = z;
        float r47419 = r47417 * r47418;
        float r47420 = t;
        float r47421 = a;
        float r47422 = r47420 * r47421;
        float r47423 = r47419 - r47422;
        float r47424 = r47414 * r47423;
        float r47425 = b;
        float r47426 = c;
        float r47427 = r47426 * r47418;
        float r47428 = i;
        float r47429 = r47428 * r47421;
        float r47430 = r47427 - r47429;
        float r47431 = cbrt(r47430);
        float r47432 = r47431 * r47431;
        float r47433 = r47425 * r47432;
        float r47434 = r47433 * r47431;
        float r47435 = r47424 - r47434;
        float r47436 = j;
        float r47437 = r47426 * r47420;
        float r47438 = r47428 * r47417;
        float r47439 = r47437 - r47438;
        float r47440 = r47436 * r47439;
        float r47441 = r47435 + r47440;
        float r47442 = 4.863955640625947e+121;
        bool r47443 = r47414 <= r47442;
        float r47444 = r47414 * r47418;
        float r47445 = r47444 * r47417;
        float r47446 = r47420 * r47414;
        float r47447 = -r47421;
        float r47448 = r47446 * r47447;
        float r47449 = r47445 + r47448;
        float r47450 = r47430 * r47425;
        float r47451 = r47417 * r47428;
        float r47452 = r47437 - r47451;
        float r47453 = r47436 * r47452;
        float r47454 = r47450 - r47453;
        float r47455 = r47449 - r47454;
        float r47456 = r47443 ? r47455 : r47441;
        float r47457 = r47416 ? r47441 : r47456;
        return r47457;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r47458 = x;
        double r47459 = -3.1186130314637846e+124;
        bool r47460 = r47458 <= r47459;
        double r47461 = y;
        double r47462 = z;
        double r47463 = r47461 * r47462;
        double r47464 = t;
        double r47465 = a;
        double r47466 = r47464 * r47465;
        double r47467 = r47463 - r47466;
        double r47468 = r47458 * r47467;
        double r47469 = b;
        double r47470 = c;
        double r47471 = r47470 * r47462;
        double r47472 = i;
        double r47473 = r47472 * r47465;
        double r47474 = r47471 - r47473;
        double r47475 = cbrt(r47474);
        double r47476 = r47475 * r47475;
        double r47477 = r47469 * r47476;
        double r47478 = r47477 * r47475;
        double r47479 = r47468 - r47478;
        double r47480 = j;
        double r47481 = r47470 * r47464;
        double r47482 = r47472 * r47461;
        double r47483 = r47481 - r47482;
        double r47484 = r47480 * r47483;
        double r47485 = r47479 + r47484;
        double r47486 = 4.863955640625947e+121;
        bool r47487 = r47458 <= r47486;
        double r47488 = r47458 * r47462;
        double r47489 = r47488 * r47461;
        double r47490 = r47464 * r47458;
        double r47491 = -r47465;
        double r47492 = r47490 * r47491;
        double r47493 = r47489 + r47492;
        double r47494 = r47474 * r47469;
        double r47495 = r47461 * r47472;
        double r47496 = r47481 - r47495;
        double r47497 = r47480 * r47496;
        double r47498 = r47494 - r47497;
        double r47499 = r47493 - r47498;
        double r47500 = r47487 ? r47499 : r47485;
        double r47501 = r47460 ? r47485 : r47500;
        return r47501;
}

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 r47502, r47503, r47504, r47505, r47506, r47507, r47508, r47509, r47510, r47511, r47512, r47513, r47514, r47515, r47516, r47517, r47518, r47519, r47520, r47521, r47522, r47523, r47524;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r47502);
        mpfr_init(r47503);
        mpfr_init(r47504);
        mpfr_init(r47505);
        mpfr_init(r47506);
        mpfr_init(r47507);
        mpfr_init(r47508);
        mpfr_init(r47509);
        mpfr_init(r47510);
        mpfr_init(r47511);
        mpfr_init(r47512);
        mpfr_init(r47513);
        mpfr_init(r47514);
        mpfr_init(r47515);
        mpfr_init(r47516);
        mpfr_init(r47517);
        mpfr_init(r47518);
        mpfr_init(r47519);
        mpfr_init(r47520);
        mpfr_init(r47521);
        mpfr_init(r47522);
        mpfr_init(r47523);
        mpfr_init(r47524);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r47502, x, MPFR_RNDN);
        mpfr_set_d(r47503, y, MPFR_RNDN);
        mpfr_set_d(r47504, z, MPFR_RNDN);
        mpfr_mul(r47505, r47503, r47504, MPFR_RNDN);
        mpfr_set_d(r47506, t, MPFR_RNDN);
        mpfr_set_d(r47507, a, MPFR_RNDN);
        mpfr_mul(r47508, r47506, r47507, MPFR_RNDN);
        mpfr_sub(r47509, r47505, r47508, MPFR_RNDN);
        mpfr_mul(r47510, r47502, r47509, MPFR_RNDN);
        mpfr_set_d(r47511, b, MPFR_RNDN);
        mpfr_set_d(r47512, c, MPFR_RNDN);
        mpfr_mul(r47513, r47512, r47504, MPFR_RNDN);
        mpfr_set_d(r47514, i, MPFR_RNDN);
        mpfr_mul(r47515, r47514, r47507, MPFR_RNDN);
        mpfr_sub(r47516, r47513, r47515, MPFR_RNDN);
        mpfr_mul(r47517, r47511, r47516, MPFR_RNDN);
        mpfr_sub(r47518, r47510, r47517, MPFR_RNDN);
        mpfr_set_d(r47519, j, MPFR_RNDN);
        mpfr_mul(r47520, r47512, r47506, MPFR_RNDN);
        mpfr_mul(r47521, r47514, r47503, MPFR_RNDN);
        mpfr_sub(r47522, r47520, r47521, MPFR_RNDN);
        mpfr_mul(r47523, r47519, r47522, MPFR_RNDN);
        mpfr_add(r47524, r47518, r47523, MPFR_RNDN);
        return mpfr_get_d(r47524, MPFR_RNDN);
}

static mpfr_t r47525, r47526, r47527, r47528, r47529, r47530, r47531, r47532, r47533, r47534, r47535, r47536, r47537, r47538, r47539, r47540, r47541, r47542, r47543, r47544, r47545, r47546, r47547, r47548, r47549, r47550, r47551, r47552, r47553, r47554, r47555, r47556, r47557, r47558, r47559, r47560, r47561, r47562, r47563, r47564, r47565, r47566, r47567, r47568;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r47525);
        mpfr_init_set_str(r47526, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        mpfr_init(r47527);
        mpfr_init(r47528);
        mpfr_init(r47529);
        mpfr_init(r47530);
        mpfr_init(r47531);
        mpfr_init(r47532);
        mpfr_init(r47533);
        mpfr_init(r47534);
        mpfr_init(r47535);
        mpfr_init(r47536);
        mpfr_init(r47537);
        mpfr_init(r47538);
        mpfr_init(r47539);
        mpfr_init(r47540);
        mpfr_init(r47541);
        mpfr_init(r47542);
        mpfr_init(r47543);
        mpfr_init(r47544);
        mpfr_init(r47545);
        mpfr_init(r47546);
        mpfr_init(r47547);
        mpfr_init(r47548);
        mpfr_init(r47549);
        mpfr_init(r47550);
        mpfr_init(r47551);
        mpfr_init(r47552);
        mpfr_init_set_str(r47553, "4.863955640625947e+121", 10, MPFR_RNDN);
        mpfr_init(r47554);
        mpfr_init(r47555);
        mpfr_init(r47556);
        mpfr_init(r47557);
        mpfr_init(r47558);
        mpfr_init(r47559);
        mpfr_init(r47560);
        mpfr_init(r47561);
        mpfr_init(r47562);
        mpfr_init(r47563);
        mpfr_init(r47564);
        mpfr_init(r47565);
        mpfr_init(r47566);
        mpfr_init(r47567);
        mpfr_init(r47568);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r47525, x, MPFR_RNDN);
        ;
        mpfr_set_si(r47527, mpfr_cmp(r47525, r47526) <= 0, MPFR_RNDN);
        mpfr_set_d(r47528, y, MPFR_RNDN);
        mpfr_set_d(r47529, z, MPFR_RNDN);
        mpfr_mul(r47530, r47528, r47529, MPFR_RNDN);
        mpfr_set_d(r47531, t, MPFR_RNDN);
        mpfr_set_d(r47532, a, MPFR_RNDN);
        mpfr_mul(r47533, r47531, r47532, MPFR_RNDN);
        mpfr_sub(r47534, r47530, r47533, MPFR_RNDN);
        mpfr_mul(r47535, r47525, r47534, MPFR_RNDN);
        mpfr_set_d(r47536, b, MPFR_RNDN);
        mpfr_set_d(r47537, c, MPFR_RNDN);
        mpfr_mul(r47538, r47537, r47529, MPFR_RNDN);
        mpfr_set_d(r47539, i, MPFR_RNDN);
        mpfr_mul(r47540, r47539, r47532, MPFR_RNDN);
        mpfr_sub(r47541, r47538, r47540, MPFR_RNDN);
        mpfr_cbrt(r47542, r47541, MPFR_RNDN);
        mpfr_mul(r47543, r47542, r47542, MPFR_RNDN);
        mpfr_mul(r47544, r47536, r47543, MPFR_RNDN);
        mpfr_mul(r47545, r47544, r47542, MPFR_RNDN);
        mpfr_sub(r47546, r47535, r47545, MPFR_RNDN);
        mpfr_set_d(r47547, j, MPFR_RNDN);
        mpfr_mul(r47548, r47537, r47531, MPFR_RNDN);
        mpfr_mul(r47549, r47539, r47528, MPFR_RNDN);
        mpfr_sub(r47550, r47548, r47549, MPFR_RNDN);
        mpfr_mul(r47551, r47547, r47550, MPFR_RNDN);
        mpfr_add(r47552, r47546, r47551, MPFR_RNDN);
        ;
        mpfr_set_si(r47554, mpfr_cmp(r47525, r47553) <= 0, MPFR_RNDN);
        mpfr_mul(r47555, r47525, r47529, MPFR_RNDN);
        mpfr_mul(r47556, r47555, r47528, MPFR_RNDN);
        mpfr_mul(r47557, r47531, r47525, MPFR_RNDN);
        mpfr_neg(r47558, r47532, MPFR_RNDN);
        mpfr_mul(r47559, r47557, r47558, MPFR_RNDN);
        mpfr_add(r47560, r47556, r47559, MPFR_RNDN);
        mpfr_mul(r47561, r47541, r47536, MPFR_RNDN);
        mpfr_mul(r47562, r47528, r47539, MPFR_RNDN);
        mpfr_sub(r47563, r47548, r47562, MPFR_RNDN);
        mpfr_mul(r47564, r47547, r47563, MPFR_RNDN);
        mpfr_sub(r47565, r47561, r47564, MPFR_RNDN);
        mpfr_sub(r47566, r47560, r47565, MPFR_RNDN);
        if (mpfr_get_si(r47554, MPFR_RNDN)) { mpfr_set(r47567, r47566, MPFR_RNDN); } else { mpfr_set(r47567, r47552, MPFR_RNDN); };
        if (mpfr_get_si(r47527, MPFR_RNDN)) { mpfr_set(r47568, r47552, MPFR_RNDN); } else { mpfr_set(r47568, r47567, MPFR_RNDN); };
        return mpfr_get_d(r47568, MPFR_RNDN);
}

static mpfr_t r47569, r47570, r47571, r47572, r47573, r47574, r47575, r47576, r47577, r47578, r47579, r47580, r47581, r47582, r47583, r47584, r47585, r47586, r47587, r47588, r47589, r47590, r47591, r47592, r47593, r47594, r47595, r47596, r47597, r47598, r47599, r47600, r47601, r47602, r47603, r47604, r47605, r47606, r47607, r47608, r47609, r47610, r47611, r47612;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r47569);
        mpfr_init_set_str(r47570, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        mpfr_init(r47571);
        mpfr_init(r47572);
        mpfr_init(r47573);
        mpfr_init(r47574);
        mpfr_init(r47575);
        mpfr_init(r47576);
        mpfr_init(r47577);
        mpfr_init(r47578);
        mpfr_init(r47579);
        mpfr_init(r47580);
        mpfr_init(r47581);
        mpfr_init(r47582);
        mpfr_init(r47583);
        mpfr_init(r47584);
        mpfr_init(r47585);
        mpfr_init(r47586);
        mpfr_init(r47587);
        mpfr_init(r47588);
        mpfr_init(r47589);
        mpfr_init(r47590);
        mpfr_init(r47591);
        mpfr_init(r47592);
        mpfr_init(r47593);
        mpfr_init(r47594);
        mpfr_init(r47595);
        mpfr_init(r47596);
        mpfr_init_set_str(r47597, "4.863955640625947e+121", 10, MPFR_RNDN);
        mpfr_init(r47598);
        mpfr_init(r47599);
        mpfr_init(r47600);
        mpfr_init(r47601);
        mpfr_init(r47602);
        mpfr_init(r47603);
        mpfr_init(r47604);
        mpfr_init(r47605);
        mpfr_init(r47606);
        mpfr_init(r47607);
        mpfr_init(r47608);
        mpfr_init(r47609);
        mpfr_init(r47610);
        mpfr_init(r47611);
        mpfr_init(r47612);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r47569, x, MPFR_RNDN);
        ;
        mpfr_set_si(r47571, mpfr_cmp(r47569, r47570) <= 0, MPFR_RNDN);
        mpfr_set_d(r47572, y, MPFR_RNDN);
        mpfr_set_d(r47573, z, MPFR_RNDN);
        mpfr_mul(r47574, r47572, r47573, MPFR_RNDN);
        mpfr_set_d(r47575, t, MPFR_RNDN);
        mpfr_set_d(r47576, a, MPFR_RNDN);
        mpfr_mul(r47577, r47575, r47576, MPFR_RNDN);
        mpfr_sub(r47578, r47574, r47577, MPFR_RNDN);
        mpfr_mul(r47579, r47569, r47578, MPFR_RNDN);
        mpfr_set_d(r47580, b, MPFR_RNDN);
        mpfr_set_d(r47581, c, MPFR_RNDN);
        mpfr_mul(r47582, r47581, r47573, MPFR_RNDN);
        mpfr_set_d(r47583, i, MPFR_RNDN);
        mpfr_mul(r47584, r47583, r47576, MPFR_RNDN);
        mpfr_sub(r47585, r47582, r47584, MPFR_RNDN);
        mpfr_cbrt(r47586, r47585, MPFR_RNDN);
        mpfr_mul(r47587, r47586, r47586, MPFR_RNDN);
        mpfr_mul(r47588, r47580, r47587, MPFR_RNDN);
        mpfr_mul(r47589, r47588, r47586, MPFR_RNDN);
        mpfr_sub(r47590, r47579, r47589, MPFR_RNDN);
        mpfr_set_d(r47591, j, MPFR_RNDN);
        mpfr_mul(r47592, r47581, r47575, MPFR_RNDN);
        mpfr_mul(r47593, r47583, r47572, MPFR_RNDN);
        mpfr_sub(r47594, r47592, r47593, MPFR_RNDN);
        mpfr_mul(r47595, r47591, r47594, MPFR_RNDN);
        mpfr_add(r47596, r47590, r47595, MPFR_RNDN);
        ;
        mpfr_set_si(r47598, mpfr_cmp(r47569, r47597) <= 0, MPFR_RNDN);
        mpfr_mul(r47599, r47569, r47573, MPFR_RNDN);
        mpfr_mul(r47600, r47599, r47572, MPFR_RNDN);
        mpfr_mul(r47601, r47575, r47569, MPFR_RNDN);
        mpfr_neg(r47602, r47576, MPFR_RNDN);
        mpfr_mul(r47603, r47601, r47602, MPFR_RNDN);
        mpfr_add(r47604, r47600, r47603, MPFR_RNDN);
        mpfr_mul(r47605, r47585, r47580, MPFR_RNDN);
        mpfr_mul(r47606, r47572, r47583, MPFR_RNDN);
        mpfr_sub(r47607, r47592, r47606, MPFR_RNDN);
        mpfr_mul(r47608, r47591, r47607, MPFR_RNDN);
        mpfr_sub(r47609, r47605, r47608, MPFR_RNDN);
        mpfr_sub(r47610, r47604, r47609, MPFR_RNDN);
        if (mpfr_get_si(r47598, MPFR_RNDN)) { mpfr_set(r47611, r47610, MPFR_RNDN); } else { mpfr_set(r47611, r47596, MPFR_RNDN); };
        if (mpfr_get_si(r47571, MPFR_RNDN)) { mpfr_set(r47612, r47596, MPFR_RNDN); } else { mpfr_set(r47612, r47611, MPFR_RNDN); };
        return mpfr_get_d(r47612, MPFR_RNDN);
}

