#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 r29490 = x;
        float r29491 = y;
        float r29492 = z;
        float r29493 = r29491 * r29492;
        float r29494 = t;
        float r29495 = a;
        float r29496 = r29494 * r29495;
        float r29497 = r29493 - r29496;
        float r29498 = r29490 * r29497;
        float r29499 = b;
        float r29500 = c;
        float r29501 = r29500 * r29492;
        float r29502 = i;
        float r29503 = r29502 * r29495;
        float r29504 = r29501 - r29503;
        float r29505 = r29499 * r29504;
        float r29506 = r29498 - r29505;
        float r29507 = j;
        float r29508 = r29500 * r29494;
        float r29509 = r29502 * r29491;
        float r29510 = r29508 - r29509;
        float r29511 = r29507 * r29510;
        float r29512 = r29506 + r29511;
        return r29512;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r29513 = x;
        double r29514 = y;
        double r29515 = z;
        double r29516 = r29514 * r29515;
        double r29517 = t;
        double r29518 = a;
        double r29519 = r29517 * r29518;
        double r29520 = r29516 - r29519;
        double r29521 = r29513 * r29520;
        double r29522 = b;
        double r29523 = c;
        double r29524 = r29523 * r29515;
        double r29525 = i;
        double r29526 = r29525 * r29518;
        double r29527 = r29524 - r29526;
        double r29528 = r29522 * r29527;
        double r29529 = r29521 - r29528;
        double r29530 = j;
        double r29531 = r29523 * r29517;
        double r29532 = r29525 * r29514;
        double r29533 = r29531 - r29532;
        double r29534 = r29530 * r29533;
        double r29535 = r29529 + r29534;
        return r29535;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r29536 = x;
        float r29537 = -3.1186130314637846e+124;
        bool r29538 = r29536 <= r29537;
        float r29539 = y;
        float r29540 = z;
        float r29541 = r29539 * r29540;
        float r29542 = t;
        float r29543 = a;
        float r29544 = r29542 * r29543;
        float r29545 = r29541 - r29544;
        float r29546 = r29536 * r29545;
        float r29547 = b;
        float r29548 = c;
        float r29549 = r29548 * r29540;
        float r29550 = i;
        float r29551 = r29550 * r29543;
        float r29552 = r29549 - r29551;
        float r29553 = r29547 * r29552;
        float r29554 = r29546 - r29553;
        float r29555 = j;
        float r29556 = r29548 * r29542;
        float r29557 = r29550 * r29539;
        float r29558 = r29556 - r29557;
        float r29559 = cbrt(r29558);
        float r29560 = r29559 * r29559;
        float r29561 = r29555 * r29560;
        float r29562 = r29561 * r29559;
        float r29563 = r29554 + r29562;
        float r29564 = 3.067346407927323e+126;
        bool r29565 = r29536 <= r29564;
        float r29566 = r29536 * r29540;
        float r29567 = r29566 * r29539;
        float r29568 = r29542 * r29536;
        float r29569 = -r29543;
        float r29570 = r29568 * r29569;
        float r29571 = r29567 + r29570;
        float r29572 = r29552 * r29547;
        float r29573 = r29539 * r29550;
        float r29574 = r29556 - r29573;
        float r29575 = r29555 * r29574;
        float r29576 = r29572 - r29575;
        float r29577 = r29571 - r29576;
        float r29578 = r29565 ? r29577 : r29563;
        float r29579 = r29538 ? r29563 : r29578;
        return r29579;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r29580 = x;
        double r29581 = -3.1186130314637846e+124;
        bool r29582 = r29580 <= r29581;
        double r29583 = y;
        double r29584 = z;
        double r29585 = r29583 * r29584;
        double r29586 = t;
        double r29587 = a;
        double r29588 = r29586 * r29587;
        double r29589 = r29585 - r29588;
        double r29590 = r29580 * r29589;
        double r29591 = b;
        double r29592 = c;
        double r29593 = r29592 * r29584;
        double r29594 = i;
        double r29595 = r29594 * r29587;
        double r29596 = r29593 - r29595;
        double r29597 = r29591 * r29596;
        double r29598 = r29590 - r29597;
        double r29599 = j;
        double r29600 = r29592 * r29586;
        double r29601 = r29594 * r29583;
        double r29602 = r29600 - r29601;
        double r29603 = cbrt(r29602);
        double r29604 = r29603 * r29603;
        double r29605 = r29599 * r29604;
        double r29606 = r29605 * r29603;
        double r29607 = r29598 + r29606;
        double r29608 = 3.067346407927323e+126;
        bool r29609 = r29580 <= r29608;
        double r29610 = r29580 * r29584;
        double r29611 = r29610 * r29583;
        double r29612 = r29586 * r29580;
        double r29613 = -r29587;
        double r29614 = r29612 * r29613;
        double r29615 = r29611 + r29614;
        double r29616 = r29596 * r29591;
        double r29617 = r29583 * r29594;
        double r29618 = r29600 - r29617;
        double r29619 = r29599 * r29618;
        double r29620 = r29616 - r29619;
        double r29621 = r29615 - r29620;
        double r29622 = r29609 ? r29621 : r29607;
        double r29623 = r29582 ? r29607 : r29622;
        return r29623;
}

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 r29624, r29625, r29626, r29627, r29628, r29629, r29630, r29631, r29632, r29633, r29634, r29635, r29636, r29637, r29638, r29639, r29640, r29641, r29642, r29643, r29644, r29645, r29646;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29624);
        mpfr_init(r29625);
        mpfr_init(r29626);
        mpfr_init(r29627);
        mpfr_init(r29628);
        mpfr_init(r29629);
        mpfr_init(r29630);
        mpfr_init(r29631);
        mpfr_init(r29632);
        mpfr_init(r29633);
        mpfr_init(r29634);
        mpfr_init(r29635);
        mpfr_init(r29636);
        mpfr_init(r29637);
        mpfr_init(r29638);
        mpfr_init(r29639);
        mpfr_init(r29640);
        mpfr_init(r29641);
        mpfr_init(r29642);
        mpfr_init(r29643);
        mpfr_init(r29644);
        mpfr_init(r29645);
        mpfr_init(r29646);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29624, x, MPFR_RNDN);
        mpfr_set_d(r29625, y, MPFR_RNDN);
        mpfr_set_d(r29626, z, MPFR_RNDN);
        mpfr_mul(r29627, r29625, r29626, MPFR_RNDN);
        mpfr_set_d(r29628, t, MPFR_RNDN);
        mpfr_set_d(r29629, a, MPFR_RNDN);
        mpfr_mul(r29630, r29628, r29629, MPFR_RNDN);
        mpfr_sub(r29631, r29627, r29630, MPFR_RNDN);
        mpfr_mul(r29632, r29624, r29631, MPFR_RNDN);
        mpfr_set_d(r29633, b, MPFR_RNDN);
        mpfr_set_d(r29634, c, MPFR_RNDN);
        mpfr_mul(r29635, r29634, r29626, MPFR_RNDN);
        mpfr_set_d(r29636, i, MPFR_RNDN);
        mpfr_mul(r29637, r29636, r29629, MPFR_RNDN);
        mpfr_sub(r29638, r29635, r29637, MPFR_RNDN);
        mpfr_mul(r29639, r29633, r29638, MPFR_RNDN);
        mpfr_sub(r29640, r29632, r29639, MPFR_RNDN);
        mpfr_set_d(r29641, j, MPFR_RNDN);
        mpfr_mul(r29642, r29634, r29628, MPFR_RNDN);
        mpfr_mul(r29643, r29636, r29625, MPFR_RNDN);
        mpfr_sub(r29644, r29642, r29643, MPFR_RNDN);
        mpfr_mul(r29645, r29641, r29644, MPFR_RNDN);
        mpfr_add(r29646, r29640, r29645, MPFR_RNDN);
        return mpfr_get_d(r29646, MPFR_RNDN);
}

static mpfr_t r29647, r29648, r29649, r29650, r29651, r29652, r29653, r29654, r29655, r29656, r29657, r29658, r29659, r29660, r29661, r29662, r29663, r29664, r29665, r29666, r29667, r29668, r29669, r29670, r29671, r29672, r29673, r29674, r29675, r29676, r29677, r29678, r29679, r29680, r29681, r29682, r29683, r29684, r29685, r29686, r29687, r29688, r29689, r29690;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29647);
        mpfr_init_set_str(r29648, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        mpfr_init(r29649);
        mpfr_init(r29650);
        mpfr_init(r29651);
        mpfr_init(r29652);
        mpfr_init(r29653);
        mpfr_init(r29654);
        mpfr_init(r29655);
        mpfr_init(r29656);
        mpfr_init(r29657);
        mpfr_init(r29658);
        mpfr_init(r29659);
        mpfr_init(r29660);
        mpfr_init(r29661);
        mpfr_init(r29662);
        mpfr_init(r29663);
        mpfr_init(r29664);
        mpfr_init(r29665);
        mpfr_init(r29666);
        mpfr_init(r29667);
        mpfr_init(r29668);
        mpfr_init(r29669);
        mpfr_init(r29670);
        mpfr_init(r29671);
        mpfr_init(r29672);
        mpfr_init(r29673);
        mpfr_init(r29674);
        mpfr_init_set_str(r29675, "3.067346407927323e+126", 10, MPFR_RNDN);
        mpfr_init(r29676);
        mpfr_init(r29677);
        mpfr_init(r29678);
        mpfr_init(r29679);
        mpfr_init(r29680);
        mpfr_init(r29681);
        mpfr_init(r29682);
        mpfr_init(r29683);
        mpfr_init(r29684);
        mpfr_init(r29685);
        mpfr_init(r29686);
        mpfr_init(r29687);
        mpfr_init(r29688);
        mpfr_init(r29689);
        mpfr_init(r29690);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29647, x, MPFR_RNDN);
        ;
        mpfr_set_si(r29649, mpfr_cmp(r29647, r29648) <= 0, MPFR_RNDN);
        mpfr_set_d(r29650, y, MPFR_RNDN);
        mpfr_set_d(r29651, z, MPFR_RNDN);
        mpfr_mul(r29652, r29650, r29651, MPFR_RNDN);
        mpfr_set_d(r29653, t, MPFR_RNDN);
        mpfr_set_d(r29654, a, MPFR_RNDN);
        mpfr_mul(r29655, r29653, r29654, MPFR_RNDN);
        mpfr_sub(r29656, r29652, r29655, MPFR_RNDN);
        mpfr_mul(r29657, r29647, r29656, MPFR_RNDN);
        mpfr_set_d(r29658, b, MPFR_RNDN);
        mpfr_set_d(r29659, c, MPFR_RNDN);
        mpfr_mul(r29660, r29659, r29651, MPFR_RNDN);
        mpfr_set_d(r29661, i, MPFR_RNDN);
        mpfr_mul(r29662, r29661, r29654, MPFR_RNDN);
        mpfr_sub(r29663, r29660, r29662, MPFR_RNDN);
        mpfr_mul(r29664, r29658, r29663, MPFR_RNDN);
        mpfr_sub(r29665, r29657, r29664, MPFR_RNDN);
        mpfr_set_d(r29666, j, MPFR_RNDN);
        mpfr_mul(r29667, r29659, r29653, MPFR_RNDN);
        mpfr_mul(r29668, r29661, r29650, MPFR_RNDN);
        mpfr_sub(r29669, r29667, r29668, MPFR_RNDN);
        mpfr_cbrt(r29670, r29669, MPFR_RNDN);
        mpfr_mul(r29671, r29670, r29670, MPFR_RNDN);
        mpfr_mul(r29672, r29666, r29671, MPFR_RNDN);
        mpfr_mul(r29673, r29672, r29670, MPFR_RNDN);
        mpfr_add(r29674, r29665, r29673, MPFR_RNDN);
        ;
        mpfr_set_si(r29676, mpfr_cmp(r29647, r29675) <= 0, MPFR_RNDN);
        mpfr_mul(r29677, r29647, r29651, MPFR_RNDN);
        mpfr_mul(r29678, r29677, r29650, MPFR_RNDN);
        mpfr_mul(r29679, r29653, r29647, MPFR_RNDN);
        mpfr_neg(r29680, r29654, MPFR_RNDN);
        mpfr_mul(r29681, r29679, r29680, MPFR_RNDN);
        mpfr_add(r29682, r29678, r29681, MPFR_RNDN);
        mpfr_mul(r29683, r29663, r29658, MPFR_RNDN);
        mpfr_mul(r29684, r29650, r29661, MPFR_RNDN);
        mpfr_sub(r29685, r29667, r29684, MPFR_RNDN);
        mpfr_mul(r29686, r29666, r29685, MPFR_RNDN);
        mpfr_sub(r29687, r29683, r29686, MPFR_RNDN);
        mpfr_sub(r29688, r29682, r29687, MPFR_RNDN);
        if (mpfr_get_si(r29676, MPFR_RNDN)) { mpfr_set(r29689, r29688, MPFR_RNDN); } else { mpfr_set(r29689, r29674, MPFR_RNDN); };
        if (mpfr_get_si(r29649, MPFR_RNDN)) { mpfr_set(r29690, r29674, MPFR_RNDN); } else { mpfr_set(r29690, r29689, MPFR_RNDN); };
        return mpfr_get_d(r29690, MPFR_RNDN);
}

static mpfr_t r29691, r29692, r29693, r29694, r29695, r29696, r29697, r29698, r29699, r29700, r29701, r29702, r29703, r29704, r29705, r29706, r29707, r29708, r29709, r29710, r29711, r29712, r29713, r29714, r29715, r29716, r29717, r29718, r29719, r29720, r29721, r29722, r29723, r29724, r29725, r29726, r29727, r29728, r29729, r29730, r29731, r29732, r29733, r29734;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29691);
        mpfr_init_set_str(r29692, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        mpfr_init(r29693);
        mpfr_init(r29694);
        mpfr_init(r29695);
        mpfr_init(r29696);
        mpfr_init(r29697);
        mpfr_init(r29698);
        mpfr_init(r29699);
        mpfr_init(r29700);
        mpfr_init(r29701);
        mpfr_init(r29702);
        mpfr_init(r29703);
        mpfr_init(r29704);
        mpfr_init(r29705);
        mpfr_init(r29706);
        mpfr_init(r29707);
        mpfr_init(r29708);
        mpfr_init(r29709);
        mpfr_init(r29710);
        mpfr_init(r29711);
        mpfr_init(r29712);
        mpfr_init(r29713);
        mpfr_init(r29714);
        mpfr_init(r29715);
        mpfr_init(r29716);
        mpfr_init(r29717);
        mpfr_init(r29718);
        mpfr_init_set_str(r29719, "3.067346407927323e+126", 10, MPFR_RNDN);
        mpfr_init(r29720);
        mpfr_init(r29721);
        mpfr_init(r29722);
        mpfr_init(r29723);
        mpfr_init(r29724);
        mpfr_init(r29725);
        mpfr_init(r29726);
        mpfr_init(r29727);
        mpfr_init(r29728);
        mpfr_init(r29729);
        mpfr_init(r29730);
        mpfr_init(r29731);
        mpfr_init(r29732);
        mpfr_init(r29733);
        mpfr_init(r29734);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29691, x, MPFR_RNDN);
        ;
        mpfr_set_si(r29693, mpfr_cmp(r29691, r29692) <= 0, MPFR_RNDN);
        mpfr_set_d(r29694, y, MPFR_RNDN);
        mpfr_set_d(r29695, z, MPFR_RNDN);
        mpfr_mul(r29696, r29694, r29695, MPFR_RNDN);
        mpfr_set_d(r29697, t, MPFR_RNDN);
        mpfr_set_d(r29698, a, MPFR_RNDN);
        mpfr_mul(r29699, r29697, r29698, MPFR_RNDN);
        mpfr_sub(r29700, r29696, r29699, MPFR_RNDN);
        mpfr_mul(r29701, r29691, r29700, MPFR_RNDN);
        mpfr_set_d(r29702, b, MPFR_RNDN);
        mpfr_set_d(r29703, c, MPFR_RNDN);
        mpfr_mul(r29704, r29703, r29695, MPFR_RNDN);
        mpfr_set_d(r29705, i, MPFR_RNDN);
        mpfr_mul(r29706, r29705, r29698, MPFR_RNDN);
        mpfr_sub(r29707, r29704, r29706, MPFR_RNDN);
        mpfr_mul(r29708, r29702, r29707, MPFR_RNDN);
        mpfr_sub(r29709, r29701, r29708, MPFR_RNDN);
        mpfr_set_d(r29710, j, MPFR_RNDN);
        mpfr_mul(r29711, r29703, r29697, MPFR_RNDN);
        mpfr_mul(r29712, r29705, r29694, MPFR_RNDN);
        mpfr_sub(r29713, r29711, r29712, MPFR_RNDN);
        mpfr_cbrt(r29714, r29713, MPFR_RNDN);
        mpfr_mul(r29715, r29714, r29714, MPFR_RNDN);
        mpfr_mul(r29716, r29710, r29715, MPFR_RNDN);
        mpfr_mul(r29717, r29716, r29714, MPFR_RNDN);
        mpfr_add(r29718, r29709, r29717, MPFR_RNDN);
        ;
        mpfr_set_si(r29720, mpfr_cmp(r29691, r29719) <= 0, MPFR_RNDN);
        mpfr_mul(r29721, r29691, r29695, MPFR_RNDN);
        mpfr_mul(r29722, r29721, r29694, MPFR_RNDN);
        mpfr_mul(r29723, r29697, r29691, MPFR_RNDN);
        mpfr_neg(r29724, r29698, MPFR_RNDN);
        mpfr_mul(r29725, r29723, r29724, MPFR_RNDN);
        mpfr_add(r29726, r29722, r29725, MPFR_RNDN);
        mpfr_mul(r29727, r29707, r29702, MPFR_RNDN);
        mpfr_mul(r29728, r29694, r29705, MPFR_RNDN);
        mpfr_sub(r29729, r29711, r29728, MPFR_RNDN);
        mpfr_mul(r29730, r29710, r29729, MPFR_RNDN);
        mpfr_sub(r29731, r29727, r29730, MPFR_RNDN);
        mpfr_sub(r29732, r29726, r29731, MPFR_RNDN);
        if (mpfr_get_si(r29720, MPFR_RNDN)) { mpfr_set(r29733, r29732, MPFR_RNDN); } else { mpfr_set(r29733, r29718, MPFR_RNDN); };
        if (mpfr_get_si(r29693, MPFR_RNDN)) { mpfr_set(r29734, r29718, MPFR_RNDN); } else { mpfr_set(r29734, r29733, MPFR_RNDN); };
        return mpfr_get_d(r29734, MPFR_RNDN);
}

