#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 r26393 = x;
        float r26394 = y;
        float r26395 = z;
        float r26396 = r26394 * r26395;
        float r26397 = t;
        float r26398 = a;
        float r26399 = r26397 * r26398;
        float r26400 = r26396 - r26399;
        float r26401 = r26393 * r26400;
        float r26402 = b;
        float r26403 = c;
        float r26404 = r26403 * r26395;
        float r26405 = i;
        float r26406 = r26405 * r26398;
        float r26407 = r26404 - r26406;
        float r26408 = r26402 * r26407;
        float r26409 = r26401 - r26408;
        float r26410 = j;
        float r26411 = r26403 * r26397;
        float r26412 = r26405 * r26394;
        float r26413 = r26411 - r26412;
        float r26414 = r26410 * r26413;
        float r26415 = r26409 + r26414;
        return r26415;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26416 = x;
        double r26417 = y;
        double r26418 = z;
        double r26419 = r26417 * r26418;
        double r26420 = t;
        double r26421 = a;
        double r26422 = r26420 * r26421;
        double r26423 = r26419 - r26422;
        double r26424 = r26416 * r26423;
        double r26425 = b;
        double r26426 = c;
        double r26427 = r26426 * r26418;
        double r26428 = i;
        double r26429 = r26428 * r26421;
        double r26430 = r26427 - r26429;
        double r26431 = r26425 * r26430;
        double r26432 = r26424 - r26431;
        double r26433 = j;
        double r26434 = r26426 * r26420;
        double r26435 = r26428 * r26417;
        double r26436 = r26434 - r26435;
        double r26437 = r26433 * r26436;
        double r26438 = r26432 + r26437;
        return r26438;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r26439 = x;
        float r26440 = y;
        float r26441 = z;
        float r26442 = r26440 * r26441;
        float r26443 = r26442 * r26442;
        float r26444 = t;
        float r26445 = a;
        float r26446 = r26444 * r26445;
        float r26447 = r26446 * r26446;
        float r26448 = r26443 - r26447;
        float r26449 = r26439 * r26448;
        float r26450 = r26442 + r26446;
        float r26451 = r26449 / r26450;
        float r26452 = b;
        float r26453 = c;
        float r26454 = r26453 * r26441;
        float r26455 = i;
        float r26456 = r26455 * r26445;
        float r26457 = r26454 - r26456;
        float r26458 = r26452 * r26457;
        float r26459 = r26451 - r26458;
        float r26460 = j;
        float r26461 = r26453 * r26444;
        float r26462 = r26455 * r26440;
        float r26463 = r26461 - r26462;
        float r26464 = r26460 * r26463;
        float r26465 = r26459 + r26464;
        float r26466 = -1.9690390921553782e-41;
        bool r26467 = r26465 <= r26466;
        float r26468 = r26442 - r26446;
        float r26469 = r26439 * r26468;
        float r26470 = cbrt(r26469);
        float r26471 = r26470 * r26470;
        float r26472 = r26471 * r26470;
        float r26473 = r26472 - r26458;
        float r26474 = r26473 + r26464;
        float r26475 = r26439 * r26442;
        float r26476 = r26440 * r26455;
        float r26477 = r26461 - r26476;
        float r26478 = r26460 * r26477;
        float r26479 = r26444 * r26439;
        float r26480 = r26479 * r26445;
        float r26481 = r26478 - r26480;
        float r26482 = r26441 * r26453;
        float r26483 = r26445 * r26455;
        float r26484 = r26482 - r26483;
        float r26485 = r26452 * r26484;
        float r26486 = r26481 - r26485;
        float r26487 = r26475 + r26486;
        float r26488 = r26467 ? r26474 : r26487;
        return r26488;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26489 = x;
        double r26490 = y;
        double r26491 = z;
        double r26492 = r26490 * r26491;
        double r26493 = r26492 * r26492;
        double r26494 = t;
        double r26495 = a;
        double r26496 = r26494 * r26495;
        double r26497 = r26496 * r26496;
        double r26498 = r26493 - r26497;
        double r26499 = r26489 * r26498;
        double r26500 = r26492 + r26496;
        double r26501 = r26499 / r26500;
        double r26502 = b;
        double r26503 = c;
        double r26504 = r26503 * r26491;
        double r26505 = i;
        double r26506 = r26505 * r26495;
        double r26507 = r26504 - r26506;
        double r26508 = r26502 * r26507;
        double r26509 = r26501 - r26508;
        double r26510 = j;
        double r26511 = r26503 * r26494;
        double r26512 = r26505 * r26490;
        double r26513 = r26511 - r26512;
        double r26514 = r26510 * r26513;
        double r26515 = r26509 + r26514;
        double r26516 = -1.9690390921553782e-41;
        bool r26517 = r26515 <= r26516;
        double r26518 = r26492 - r26496;
        double r26519 = r26489 * r26518;
        double r26520 = cbrt(r26519);
        double r26521 = r26520 * r26520;
        double r26522 = r26521 * r26520;
        double r26523 = r26522 - r26508;
        double r26524 = r26523 + r26514;
        double r26525 = r26489 * r26492;
        double r26526 = r26490 * r26505;
        double r26527 = r26511 - r26526;
        double r26528 = r26510 * r26527;
        double r26529 = r26494 * r26489;
        double r26530 = r26529 * r26495;
        double r26531 = r26528 - r26530;
        double r26532 = r26491 * r26503;
        double r26533 = r26495 * r26505;
        double r26534 = r26532 - r26533;
        double r26535 = r26502 * r26534;
        double r26536 = r26531 - r26535;
        double r26537 = r26525 + r26536;
        double r26538 = r26517 ? r26524 : r26537;
        return r26538;
}

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 r26539, r26540, r26541, r26542, r26543, r26544, r26545, r26546, r26547, r26548, r26549, r26550, r26551, r26552, r26553, r26554, r26555, r26556, r26557, r26558, r26559, r26560, r26561;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26539);
        mpfr_init(r26540);
        mpfr_init(r26541);
        mpfr_init(r26542);
        mpfr_init(r26543);
        mpfr_init(r26544);
        mpfr_init(r26545);
        mpfr_init(r26546);
        mpfr_init(r26547);
        mpfr_init(r26548);
        mpfr_init(r26549);
        mpfr_init(r26550);
        mpfr_init(r26551);
        mpfr_init(r26552);
        mpfr_init(r26553);
        mpfr_init(r26554);
        mpfr_init(r26555);
        mpfr_init(r26556);
        mpfr_init(r26557);
        mpfr_init(r26558);
        mpfr_init(r26559);
        mpfr_init(r26560);
        mpfr_init(r26561);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26539, x, MPFR_RNDN);
        mpfr_set_d(r26540, y, MPFR_RNDN);
        mpfr_set_d(r26541, z, MPFR_RNDN);
        mpfr_mul(r26542, r26540, r26541, MPFR_RNDN);
        mpfr_set_d(r26543, t, MPFR_RNDN);
        mpfr_set_d(r26544, a, MPFR_RNDN);
        mpfr_mul(r26545, r26543, r26544, MPFR_RNDN);
        mpfr_sub(r26546, r26542, r26545, MPFR_RNDN);
        mpfr_mul(r26547, r26539, r26546, MPFR_RNDN);
        mpfr_set_d(r26548, b, MPFR_RNDN);
        mpfr_set_d(r26549, c, MPFR_RNDN);
        mpfr_mul(r26550, r26549, r26541, MPFR_RNDN);
        mpfr_set_d(r26551, i, MPFR_RNDN);
        mpfr_mul(r26552, r26551, r26544, MPFR_RNDN);
        mpfr_sub(r26553, r26550, r26552, MPFR_RNDN);
        mpfr_mul(r26554, r26548, r26553, MPFR_RNDN);
        mpfr_sub(r26555, r26547, r26554, MPFR_RNDN);
        mpfr_set_d(r26556, j, MPFR_RNDN);
        mpfr_mul(r26557, r26549, r26543, MPFR_RNDN);
        mpfr_mul(r26558, r26551, r26540, MPFR_RNDN);
        mpfr_sub(r26559, r26557, r26558, MPFR_RNDN);
        mpfr_mul(r26560, r26556, r26559, MPFR_RNDN);
        mpfr_add(r26561, r26555, r26560, MPFR_RNDN);
        return mpfr_get_d(r26561, MPFR_RNDN);
}

static mpfr_t r26562, r26563, r26564, r26565, r26566, r26567, r26568, r26569, r26570, r26571, r26572, r26573, r26574, r26575, r26576, r26577, r26578, r26579, r26580, r26581, r26582, r26583, r26584, r26585, r26586, r26587, r26588, r26589, r26590, r26591, r26592, r26593, r26594, r26595, r26596, r26597, r26598, r26599, r26600, r26601, r26602, r26603, r26604, r26605, r26606, r26607, r26608, r26609, r26610, r26611;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26562);
        mpfr_init(r26563);
        mpfr_init(r26564);
        mpfr_init(r26565);
        mpfr_init(r26566);
        mpfr_init(r26567);
        mpfr_init(r26568);
        mpfr_init(r26569);
        mpfr_init(r26570);
        mpfr_init(r26571);
        mpfr_init(r26572);
        mpfr_init(r26573);
        mpfr_init(r26574);
        mpfr_init(r26575);
        mpfr_init(r26576);
        mpfr_init(r26577);
        mpfr_init(r26578);
        mpfr_init(r26579);
        mpfr_init(r26580);
        mpfr_init(r26581);
        mpfr_init(r26582);
        mpfr_init(r26583);
        mpfr_init(r26584);
        mpfr_init(r26585);
        mpfr_init(r26586);
        mpfr_init(r26587);
        mpfr_init(r26588);
        mpfr_init_set_str(r26589, "-1.9690390921553782e-41", 10, MPFR_RNDN);
        mpfr_init(r26590);
        mpfr_init(r26591);
        mpfr_init(r26592);
        mpfr_init(r26593);
        mpfr_init(r26594);
        mpfr_init(r26595);
        mpfr_init(r26596);
        mpfr_init(r26597);
        mpfr_init(r26598);
        mpfr_init(r26599);
        mpfr_init(r26600);
        mpfr_init(r26601);
        mpfr_init(r26602);
        mpfr_init(r26603);
        mpfr_init(r26604);
        mpfr_init(r26605);
        mpfr_init(r26606);
        mpfr_init(r26607);
        mpfr_init(r26608);
        mpfr_init(r26609);
        mpfr_init(r26610);
        mpfr_init(r26611);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26562, x, MPFR_RNDN);
        mpfr_set_d(r26563, y, MPFR_RNDN);
        mpfr_set_d(r26564, z, MPFR_RNDN);
        mpfr_mul(r26565, r26563, r26564, MPFR_RNDN);
        mpfr_mul(r26566, r26565, r26565, MPFR_RNDN);
        mpfr_set_d(r26567, t, MPFR_RNDN);
        mpfr_set_d(r26568, a, MPFR_RNDN);
        mpfr_mul(r26569, r26567, r26568, MPFR_RNDN);
        mpfr_mul(r26570, r26569, r26569, MPFR_RNDN);
        mpfr_sub(r26571, r26566, r26570, MPFR_RNDN);
        mpfr_mul(r26572, r26562, r26571, MPFR_RNDN);
        mpfr_add(r26573, r26565, r26569, MPFR_RNDN);
        mpfr_div(r26574, r26572, r26573, MPFR_RNDN);
        mpfr_set_d(r26575, b, MPFR_RNDN);
        mpfr_set_d(r26576, c, MPFR_RNDN);
        mpfr_mul(r26577, r26576, r26564, MPFR_RNDN);
        mpfr_set_d(r26578, i, MPFR_RNDN);
        mpfr_mul(r26579, r26578, r26568, MPFR_RNDN);
        mpfr_sub(r26580, r26577, r26579, MPFR_RNDN);
        mpfr_mul(r26581, r26575, r26580, MPFR_RNDN);
        mpfr_sub(r26582, r26574, r26581, MPFR_RNDN);
        mpfr_set_d(r26583, j, MPFR_RNDN);
        mpfr_mul(r26584, r26576, r26567, MPFR_RNDN);
        mpfr_mul(r26585, r26578, r26563, MPFR_RNDN);
        mpfr_sub(r26586, r26584, r26585, MPFR_RNDN);
        mpfr_mul(r26587, r26583, r26586, MPFR_RNDN);
        mpfr_add(r26588, r26582, r26587, MPFR_RNDN);
        ;
        mpfr_set_si(r26590, mpfr_cmp(r26588, r26589) <= 0, MPFR_RNDN);
        mpfr_sub(r26591, r26565, r26569, MPFR_RNDN);
        mpfr_mul(r26592, r26562, r26591, MPFR_RNDN);
        mpfr_cbrt(r26593, r26592, MPFR_RNDN);
        mpfr_mul(r26594, r26593, r26593, MPFR_RNDN);
        mpfr_mul(r26595, r26594, r26593, MPFR_RNDN);
        mpfr_sub(r26596, r26595, r26581, MPFR_RNDN);
        mpfr_add(r26597, r26596, r26587, MPFR_RNDN);
        mpfr_mul(r26598, r26562, r26565, MPFR_RNDN);
        mpfr_mul(r26599, r26563, r26578, MPFR_RNDN);
        mpfr_sub(r26600, r26584, r26599, MPFR_RNDN);
        mpfr_mul(r26601, r26583, r26600, MPFR_RNDN);
        mpfr_mul(r26602, r26567, r26562, MPFR_RNDN);
        mpfr_mul(r26603, r26602, r26568, MPFR_RNDN);
        mpfr_sub(r26604, r26601, r26603, MPFR_RNDN);
        mpfr_mul(r26605, r26564, r26576, MPFR_RNDN);
        mpfr_mul(r26606, r26568, r26578, MPFR_RNDN);
        mpfr_sub(r26607, r26605, r26606, MPFR_RNDN);
        mpfr_mul(r26608, r26575, r26607, MPFR_RNDN);
        mpfr_sub(r26609, r26604, r26608, MPFR_RNDN);
        mpfr_add(r26610, r26598, r26609, MPFR_RNDN);
        if (mpfr_get_si(r26590, MPFR_RNDN)) { mpfr_set(r26611, r26597, MPFR_RNDN); } else { mpfr_set(r26611, r26610, MPFR_RNDN); };
        return mpfr_get_d(r26611, MPFR_RNDN);
}

static mpfr_t r26612, r26613, r26614, r26615, r26616, r26617, r26618, r26619, r26620, r26621, r26622, r26623, r26624, r26625, r26626, r26627, r26628, r26629, r26630, r26631, r26632, r26633, r26634, r26635, r26636, r26637, r26638, r26639, r26640, r26641, r26642, r26643, r26644, r26645, r26646, r26647, r26648, r26649, r26650, r26651, r26652, r26653, r26654, r26655, r26656, r26657, r26658, r26659, r26660, r26661;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26612);
        mpfr_init(r26613);
        mpfr_init(r26614);
        mpfr_init(r26615);
        mpfr_init(r26616);
        mpfr_init(r26617);
        mpfr_init(r26618);
        mpfr_init(r26619);
        mpfr_init(r26620);
        mpfr_init(r26621);
        mpfr_init(r26622);
        mpfr_init(r26623);
        mpfr_init(r26624);
        mpfr_init(r26625);
        mpfr_init(r26626);
        mpfr_init(r26627);
        mpfr_init(r26628);
        mpfr_init(r26629);
        mpfr_init(r26630);
        mpfr_init(r26631);
        mpfr_init(r26632);
        mpfr_init(r26633);
        mpfr_init(r26634);
        mpfr_init(r26635);
        mpfr_init(r26636);
        mpfr_init(r26637);
        mpfr_init(r26638);
        mpfr_init_set_str(r26639, "-1.9690390921553782e-41", 10, MPFR_RNDN);
        mpfr_init(r26640);
        mpfr_init(r26641);
        mpfr_init(r26642);
        mpfr_init(r26643);
        mpfr_init(r26644);
        mpfr_init(r26645);
        mpfr_init(r26646);
        mpfr_init(r26647);
        mpfr_init(r26648);
        mpfr_init(r26649);
        mpfr_init(r26650);
        mpfr_init(r26651);
        mpfr_init(r26652);
        mpfr_init(r26653);
        mpfr_init(r26654);
        mpfr_init(r26655);
        mpfr_init(r26656);
        mpfr_init(r26657);
        mpfr_init(r26658);
        mpfr_init(r26659);
        mpfr_init(r26660);
        mpfr_init(r26661);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26612, x, MPFR_RNDN);
        mpfr_set_d(r26613, y, MPFR_RNDN);
        mpfr_set_d(r26614, z, MPFR_RNDN);
        mpfr_mul(r26615, r26613, r26614, MPFR_RNDN);
        mpfr_mul(r26616, r26615, r26615, MPFR_RNDN);
        mpfr_set_d(r26617, t, MPFR_RNDN);
        mpfr_set_d(r26618, a, MPFR_RNDN);
        mpfr_mul(r26619, r26617, r26618, MPFR_RNDN);
        mpfr_mul(r26620, r26619, r26619, MPFR_RNDN);
        mpfr_sub(r26621, r26616, r26620, MPFR_RNDN);
        mpfr_mul(r26622, r26612, r26621, MPFR_RNDN);
        mpfr_add(r26623, r26615, r26619, MPFR_RNDN);
        mpfr_div(r26624, r26622, r26623, MPFR_RNDN);
        mpfr_set_d(r26625, b, MPFR_RNDN);
        mpfr_set_d(r26626, c, MPFR_RNDN);
        mpfr_mul(r26627, r26626, r26614, MPFR_RNDN);
        mpfr_set_d(r26628, i, MPFR_RNDN);
        mpfr_mul(r26629, r26628, r26618, MPFR_RNDN);
        mpfr_sub(r26630, r26627, r26629, MPFR_RNDN);
        mpfr_mul(r26631, r26625, r26630, MPFR_RNDN);
        mpfr_sub(r26632, r26624, r26631, MPFR_RNDN);
        mpfr_set_d(r26633, j, MPFR_RNDN);
        mpfr_mul(r26634, r26626, r26617, MPFR_RNDN);
        mpfr_mul(r26635, r26628, r26613, MPFR_RNDN);
        mpfr_sub(r26636, r26634, r26635, MPFR_RNDN);
        mpfr_mul(r26637, r26633, r26636, MPFR_RNDN);
        mpfr_add(r26638, r26632, r26637, MPFR_RNDN);
        ;
        mpfr_set_si(r26640, mpfr_cmp(r26638, r26639) <= 0, MPFR_RNDN);
        mpfr_sub(r26641, r26615, r26619, MPFR_RNDN);
        mpfr_mul(r26642, r26612, r26641, MPFR_RNDN);
        mpfr_cbrt(r26643, r26642, MPFR_RNDN);
        mpfr_mul(r26644, r26643, r26643, MPFR_RNDN);
        mpfr_mul(r26645, r26644, r26643, MPFR_RNDN);
        mpfr_sub(r26646, r26645, r26631, MPFR_RNDN);
        mpfr_add(r26647, r26646, r26637, MPFR_RNDN);
        mpfr_mul(r26648, r26612, r26615, MPFR_RNDN);
        mpfr_mul(r26649, r26613, r26628, MPFR_RNDN);
        mpfr_sub(r26650, r26634, r26649, MPFR_RNDN);
        mpfr_mul(r26651, r26633, r26650, MPFR_RNDN);
        mpfr_mul(r26652, r26617, r26612, MPFR_RNDN);
        mpfr_mul(r26653, r26652, r26618, MPFR_RNDN);
        mpfr_sub(r26654, r26651, r26653, MPFR_RNDN);
        mpfr_mul(r26655, r26614, r26626, MPFR_RNDN);
        mpfr_mul(r26656, r26618, r26628, MPFR_RNDN);
        mpfr_sub(r26657, r26655, r26656, MPFR_RNDN);
        mpfr_mul(r26658, r26625, r26657, MPFR_RNDN);
        mpfr_sub(r26659, r26654, r26658, MPFR_RNDN);
        mpfr_add(r26660, r26648, r26659, MPFR_RNDN);
        if (mpfr_get_si(r26640, MPFR_RNDN)) { mpfr_set(r26661, r26647, MPFR_RNDN); } else { mpfr_set(r26661, r26660, MPFR_RNDN); };
        return mpfr_get_d(r26661, MPFR_RNDN);
}

