#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 r9412 = x;
        float r9413 = y;
        float r9414 = z;
        float r9415 = r9413 * r9414;
        float r9416 = t;
        float r9417 = a;
        float r9418 = r9416 * r9417;
        float r9419 = r9415 - r9418;
        float r9420 = r9412 * r9419;
        float r9421 = b;
        float r9422 = c;
        float r9423 = r9422 * r9414;
        float r9424 = i;
        float r9425 = r9424 * r9417;
        float r9426 = r9423 - r9425;
        float r9427 = r9421 * r9426;
        float r9428 = r9420 - r9427;
        float r9429 = j;
        float r9430 = r9422 * r9416;
        float r9431 = r9424 * r9413;
        float r9432 = r9430 - r9431;
        float r9433 = r9429 * r9432;
        float r9434 = r9428 + r9433;
        return r9434;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r9435 = x;
        double r9436 = y;
        double r9437 = z;
        double r9438 = r9436 * r9437;
        double r9439 = t;
        double r9440 = a;
        double r9441 = r9439 * r9440;
        double r9442 = r9438 - r9441;
        double r9443 = r9435 * r9442;
        double r9444 = b;
        double r9445 = c;
        double r9446 = r9445 * r9437;
        double r9447 = i;
        double r9448 = r9447 * r9440;
        double r9449 = r9446 - r9448;
        double r9450 = r9444 * r9449;
        double r9451 = r9443 - r9450;
        double r9452 = j;
        double r9453 = r9445 * r9439;
        double r9454 = r9447 * r9436;
        double r9455 = r9453 - r9454;
        double r9456 = r9452 * r9455;
        double r9457 = r9451 + r9456;
        return r9457;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r9458 = z;
        float r9459 = y;
        float r9460 = r9458 * r9459;
        float r9461 = t;
        float r9462 = a;
        float r9463 = r9461 * r9462;
        float r9464 = r9460 - r9463;
        float r9465 = x;
        float r9466 = j;
        float r9467 = c;
        float r9468 = r9467 * r9461;
        float r9469 = i;
        float r9470 = r9469 * r9459;
        float r9471 = r9468 - r9470;
        float r9472 = r9466 * r9471;
        float r9473 = fma(r9464, r9465, r9472);
        float r9474 = -1.7815539211073733e+308f;
        bool r9475 = r9473 <= r9474;
        float r9476 = b;
        float r9477 = r9462 * r9469;
        float r9478 = r9458 * r9467;
        float r9479 = r9477 - r9478;
        float r9480 = -r9459;
        float r9481 = r9469 * r9466;
        float r9482 = r9480 * r9481;
        float r9483 = fma(r9476, r9479, r9482);
        float r9484 = cbrt(r9471);
        float r9485 = r9484 * r9466;
        float r9486 = r9484 * r9484;
        float r9487 = r9485 * r9486;
        float r9488 = r9478 - r9477;
        float r9489 = r9476 * r9488;
        float r9490 = r9487 - r9489;
        float r9491 = fma(r9464, r9465, r9490);
        float r9492 = r9475 ? r9483 : r9491;
        return r9492;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r9493 = z;
        double r9494 = y;
        double r9495 = r9493 * r9494;
        double r9496 = t;
        double r9497 = a;
        double r9498 = r9496 * r9497;
        double r9499 = r9495 - r9498;
        double r9500 = x;
        double r9501 = j;
        double r9502 = c;
        double r9503 = r9502 * r9496;
        double r9504 = i;
        double r9505 = r9504 * r9494;
        double r9506 = r9503 - r9505;
        double r9507 = r9501 * r9506;
        double r9508 = fma(r9499, r9500, r9507);
        double r9509 = -1.7815539211073733e+308;
        bool r9510 = r9508 <= r9509;
        double r9511 = b;
        double r9512 = r9497 * r9504;
        double r9513 = r9493 * r9502;
        double r9514 = r9512 - r9513;
        double r9515 = -r9494;
        double r9516 = r9504 * r9501;
        double r9517 = r9515 * r9516;
        double r9518 = fma(r9511, r9514, r9517);
        double r9519 = cbrt(r9506);
        double r9520 = r9519 * r9501;
        double r9521 = r9519 * r9519;
        double r9522 = r9520 * r9521;
        double r9523 = r9513 - r9512;
        double r9524 = r9511 * r9523;
        double r9525 = r9522 - r9524;
        double r9526 = fma(r9499, r9500, r9525);
        double r9527 = r9510 ? r9518 : r9526;
        return r9527;
}

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 r9528, r9529, r9530, r9531, r9532, r9533, r9534, r9535, r9536, r9537, r9538, r9539, r9540, r9541, r9542, r9543, r9544, r9545, r9546, r9547, r9548, r9549, r9550;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9528);
        mpfr_init(r9529);
        mpfr_init(r9530);
        mpfr_init(r9531);
        mpfr_init(r9532);
        mpfr_init(r9533);
        mpfr_init(r9534);
        mpfr_init(r9535);
        mpfr_init(r9536);
        mpfr_init(r9537);
        mpfr_init(r9538);
        mpfr_init(r9539);
        mpfr_init(r9540);
        mpfr_init(r9541);
        mpfr_init(r9542);
        mpfr_init(r9543);
        mpfr_init(r9544);
        mpfr_init(r9545);
        mpfr_init(r9546);
        mpfr_init(r9547);
        mpfr_init(r9548);
        mpfr_init(r9549);
        mpfr_init(r9550);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r9528, x, MPFR_RNDN);
        mpfr_set_d(r9529, y, MPFR_RNDN);
        mpfr_set_d(r9530, z, MPFR_RNDN);
        mpfr_mul(r9531, r9529, r9530, MPFR_RNDN);
        mpfr_set_d(r9532, t, MPFR_RNDN);
        mpfr_set_d(r9533, a, MPFR_RNDN);
        mpfr_mul(r9534, r9532, r9533, MPFR_RNDN);
        mpfr_sub(r9535, r9531, r9534, MPFR_RNDN);
        mpfr_mul(r9536, r9528, r9535, MPFR_RNDN);
        mpfr_set_d(r9537, b, MPFR_RNDN);
        mpfr_set_d(r9538, c, MPFR_RNDN);
        mpfr_mul(r9539, r9538, r9530, MPFR_RNDN);
        mpfr_set_d(r9540, i, MPFR_RNDN);
        mpfr_mul(r9541, r9540, r9533, MPFR_RNDN);
        mpfr_sub(r9542, r9539, r9541, MPFR_RNDN);
        mpfr_mul(r9543, r9537, r9542, MPFR_RNDN);
        mpfr_sub(r9544, r9536, r9543, MPFR_RNDN);
        mpfr_set_d(r9545, j, MPFR_RNDN);
        mpfr_mul(r9546, r9538, r9532, MPFR_RNDN);
        mpfr_mul(r9547, r9540, r9529, MPFR_RNDN);
        mpfr_sub(r9548, r9546, r9547, MPFR_RNDN);
        mpfr_mul(r9549, r9545, r9548, MPFR_RNDN);
        mpfr_add(r9550, r9544, r9549, MPFR_RNDN);
        return mpfr_get_d(r9550, MPFR_RNDN);
}

static mpfr_t r9551, r9552, r9553, r9554, r9555, r9556, r9557, r9558, r9559, r9560, r9561, r9562, r9563, r9564, r9565, r9566, r9567, r9568, r9569, r9570, r9571, r9572, r9573, r9574, r9575, r9576, r9577, r9578, r9579, r9580, r9581, r9582, r9583, r9584, r9585;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9551);
        mpfr_init(r9552);
        mpfr_init(r9553);
        mpfr_init(r9554);
        mpfr_init(r9555);
        mpfr_init(r9556);
        mpfr_init(r9557);
        mpfr_init(r9558);
        mpfr_init(r9559);
        mpfr_init(r9560);
        mpfr_init(r9561);
        mpfr_init(r9562);
        mpfr_init(r9563);
        mpfr_init(r9564);
        mpfr_init(r9565);
        mpfr_init(r9566);
        mpfr_init_set_str(r9567, "-1.7815539211073733e+308", 10, MPFR_RNDN);
        mpfr_init(r9568);
        mpfr_init(r9569);
        mpfr_init(r9570);
        mpfr_init(r9571);
        mpfr_init(r9572);
        mpfr_init(r9573);
        mpfr_init(r9574);
        mpfr_init(r9575);
        mpfr_init(r9576);
        mpfr_init(r9577);
        mpfr_init(r9578);
        mpfr_init(r9579);
        mpfr_init(r9580);
        mpfr_init(r9581);
        mpfr_init(r9582);
        mpfr_init(r9583);
        mpfr_init(r9584);
        mpfr_init(r9585);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r9551, z, MPFR_RNDN);
        mpfr_set_d(r9552, y, MPFR_RNDN);
        mpfr_mul(r9553, r9551, r9552, MPFR_RNDN);
        mpfr_set_d(r9554, t, MPFR_RNDN);
        mpfr_set_d(r9555, a, MPFR_RNDN);
        mpfr_mul(r9556, r9554, r9555, MPFR_RNDN);
        mpfr_sub(r9557, r9553, r9556, MPFR_RNDN);
        mpfr_set_d(r9558, x, MPFR_RNDN);
        mpfr_set_d(r9559, j, MPFR_RNDN);
        mpfr_set_d(r9560, c, MPFR_RNDN);
        mpfr_mul(r9561, r9560, r9554, MPFR_RNDN);
        mpfr_set_d(r9562, i, MPFR_RNDN);
        mpfr_mul(r9563, r9562, r9552, MPFR_RNDN);
        mpfr_sub(r9564, r9561, r9563, MPFR_RNDN);
        mpfr_mul(r9565, r9559, r9564, MPFR_RNDN);
        mpfr_fma(r9566, r9557, r9558, r9565, MPFR_RNDN);
        ;
        mpfr_set_si(r9568, mpfr_cmp(r9566, r9567) <= 0, MPFR_RNDN);
        mpfr_set_d(r9569, b, MPFR_RNDN);
        mpfr_mul(r9570, r9555, r9562, MPFR_RNDN);
        mpfr_mul(r9571, r9551, r9560, MPFR_RNDN);
        mpfr_sub(r9572, r9570, r9571, MPFR_RNDN);
        mpfr_neg(r9573, r9552, MPFR_RNDN);
        mpfr_mul(r9574, r9562, r9559, MPFR_RNDN);
        mpfr_mul(r9575, r9573, r9574, MPFR_RNDN);
        mpfr_fma(r9576, r9569, r9572, r9575, MPFR_RNDN);
        mpfr_cbrt(r9577, r9564, MPFR_RNDN);
        mpfr_mul(r9578, r9577, r9559, MPFR_RNDN);
        mpfr_mul(r9579, r9577, r9577, MPFR_RNDN);
        mpfr_mul(r9580, r9578, r9579, MPFR_RNDN);
        mpfr_sub(r9581, r9571, r9570, MPFR_RNDN);
        mpfr_mul(r9582, r9569, r9581, MPFR_RNDN);
        mpfr_sub(r9583, r9580, r9582, MPFR_RNDN);
        mpfr_fma(r9584, r9557, r9558, r9583, MPFR_RNDN);
        if (mpfr_get_si(r9568, MPFR_RNDN)) { mpfr_set(r9585, r9576, MPFR_RNDN); } else { mpfr_set(r9585, r9584, MPFR_RNDN); };
        return mpfr_get_d(r9585, MPFR_RNDN);
}

static mpfr_t r9586, r9587, r9588, r9589, r9590, r9591, r9592, r9593, r9594, r9595, r9596, r9597, r9598, r9599, r9600, r9601, r9602, r9603, r9604, r9605, r9606, r9607, r9608, r9609, r9610, r9611, r9612, r9613, r9614, r9615, r9616, r9617, r9618, r9619, r9620;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9586);
        mpfr_init(r9587);
        mpfr_init(r9588);
        mpfr_init(r9589);
        mpfr_init(r9590);
        mpfr_init(r9591);
        mpfr_init(r9592);
        mpfr_init(r9593);
        mpfr_init(r9594);
        mpfr_init(r9595);
        mpfr_init(r9596);
        mpfr_init(r9597);
        mpfr_init(r9598);
        mpfr_init(r9599);
        mpfr_init(r9600);
        mpfr_init(r9601);
        mpfr_init_set_str(r9602, "-1.7815539211073733e+308", 10, MPFR_RNDN);
        mpfr_init(r9603);
        mpfr_init(r9604);
        mpfr_init(r9605);
        mpfr_init(r9606);
        mpfr_init(r9607);
        mpfr_init(r9608);
        mpfr_init(r9609);
        mpfr_init(r9610);
        mpfr_init(r9611);
        mpfr_init(r9612);
        mpfr_init(r9613);
        mpfr_init(r9614);
        mpfr_init(r9615);
        mpfr_init(r9616);
        mpfr_init(r9617);
        mpfr_init(r9618);
        mpfr_init(r9619);
        mpfr_init(r9620);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r9586, z, MPFR_RNDN);
        mpfr_set_d(r9587, y, MPFR_RNDN);
        mpfr_mul(r9588, r9586, r9587, MPFR_RNDN);
        mpfr_set_d(r9589, t, MPFR_RNDN);
        mpfr_set_d(r9590, a, MPFR_RNDN);
        mpfr_mul(r9591, r9589, r9590, MPFR_RNDN);
        mpfr_sub(r9592, r9588, r9591, MPFR_RNDN);
        mpfr_set_d(r9593, x, MPFR_RNDN);
        mpfr_set_d(r9594, j, MPFR_RNDN);
        mpfr_set_d(r9595, c, MPFR_RNDN);
        mpfr_mul(r9596, r9595, r9589, MPFR_RNDN);
        mpfr_set_d(r9597, i, MPFR_RNDN);
        mpfr_mul(r9598, r9597, r9587, MPFR_RNDN);
        mpfr_sub(r9599, r9596, r9598, MPFR_RNDN);
        mpfr_mul(r9600, r9594, r9599, MPFR_RNDN);
        mpfr_fma(r9601, r9592, r9593, r9600, MPFR_RNDN);
        ;
        mpfr_set_si(r9603, mpfr_cmp(r9601, r9602) <= 0, MPFR_RNDN);
        mpfr_set_d(r9604, b, MPFR_RNDN);
        mpfr_mul(r9605, r9590, r9597, MPFR_RNDN);
        mpfr_mul(r9606, r9586, r9595, MPFR_RNDN);
        mpfr_sub(r9607, r9605, r9606, MPFR_RNDN);
        mpfr_neg(r9608, r9587, MPFR_RNDN);
        mpfr_mul(r9609, r9597, r9594, MPFR_RNDN);
        mpfr_mul(r9610, r9608, r9609, MPFR_RNDN);
        mpfr_fma(r9611, r9604, r9607, r9610, MPFR_RNDN);
        mpfr_cbrt(r9612, r9599, MPFR_RNDN);
        mpfr_mul(r9613, r9612, r9594, MPFR_RNDN);
        mpfr_mul(r9614, r9612, r9612, MPFR_RNDN);
        mpfr_mul(r9615, r9613, r9614, MPFR_RNDN);
        mpfr_sub(r9616, r9606, r9605, MPFR_RNDN);
        mpfr_mul(r9617, r9604, r9616, MPFR_RNDN);
        mpfr_sub(r9618, r9615, r9617, MPFR_RNDN);
        mpfr_fma(r9619, r9592, r9593, r9618, MPFR_RNDN);
        if (mpfr_get_si(r9603, MPFR_RNDN)) { mpfr_set(r9620, r9611, MPFR_RNDN); } else { mpfr_set(r9620, r9619, MPFR_RNDN); };
        return mpfr_get_d(r9620, MPFR_RNDN);
}

