#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 r29518 = x;
        float r29519 = y;
        float r29520 = z;
        float r29521 = r29519 * r29520;
        float r29522 = t;
        float r29523 = a;
        float r29524 = r29522 * r29523;
        float r29525 = r29521 - r29524;
        float r29526 = r29518 * r29525;
        float r29527 = b;
        float r29528 = c;
        float r29529 = r29528 * r29520;
        float r29530 = i;
        float r29531 = r29530 * r29523;
        float r29532 = r29529 - r29531;
        float r29533 = r29527 * r29532;
        float r29534 = r29526 - r29533;
        float r29535 = j;
        float r29536 = r29528 * r29522;
        float r29537 = r29530 * r29519;
        float r29538 = r29536 - r29537;
        float r29539 = r29535 * r29538;
        float r29540 = r29534 + r29539;
        return r29540;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r29541 = x;
        double r29542 = y;
        double r29543 = z;
        double r29544 = r29542 * r29543;
        double r29545 = t;
        double r29546 = a;
        double r29547 = r29545 * r29546;
        double r29548 = r29544 - r29547;
        double r29549 = r29541 * r29548;
        double r29550 = b;
        double r29551 = c;
        double r29552 = r29551 * r29543;
        double r29553 = i;
        double r29554 = r29553 * r29546;
        double r29555 = r29552 - r29554;
        double r29556 = r29550 * r29555;
        double r29557 = r29549 - r29556;
        double r29558 = j;
        double r29559 = r29551 * r29545;
        double r29560 = r29553 * r29542;
        double r29561 = r29559 - r29560;
        double r29562 = r29558 * r29561;
        double r29563 = r29557 + r29562;
        return r29563;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r29564 = x;
        float r29565 = -2.8672604767171556e+124;
        bool r29566 = r29564 <= r29565;
        float r29567 = y;
        float r29568 = z;
        float r29569 = r29567 * r29568;
        float r29570 = t;
        float r29571 = a;
        float r29572 = r29570 * r29571;
        float r29573 = r29569 - r29572;
        float r29574 = r29564 * r29573;
        float r29575 = b;
        float r29576 = c;
        float r29577 = r29576 * r29568;
        float r29578 = i;
        float r29579 = r29578 * r29571;
        float r29580 = r29577 - r29579;
        float r29581 = cbrt(r29580);
        float r29582 = r29581 * r29581;
        float r29583 = r29575 * r29582;
        float r29584 = r29583 * r29581;
        float r29585 = r29574 - r29584;
        float r29586 = j;
        float r29587 = r29576 * r29570;
        float r29588 = r29578 * r29567;
        float r29589 = r29587 - r29588;
        float r29590 = r29586 * r29589;
        float r29591 = r29585 + r29590;
        float r29592 = 4.918058634484688e+125;
        bool r29593 = r29564 <= r29592;
        float r29594 = r29564 * r29568;
        float r29595 = r29594 * r29567;
        float r29596 = r29570 * r29564;
        float r29597 = -r29571;
        float r29598 = r29596 * r29597;
        float r29599 = r29595 + r29598;
        float r29600 = r29580 * r29575;
        float r29601 = r29567 * r29578;
        float r29602 = r29587 - r29601;
        float r29603 = r29586 * r29602;
        float r29604 = r29600 - r29603;
        float r29605 = r29599 - r29604;
        float r29606 = r29593 ? r29605 : r29591;
        float r29607 = r29566 ? r29591 : r29606;
        return r29607;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r29608 = x;
        double r29609 = -2.8672604767171556e+124;
        bool r29610 = r29608 <= r29609;
        double r29611 = y;
        double r29612 = z;
        double r29613 = r29611 * r29612;
        double r29614 = t;
        double r29615 = a;
        double r29616 = r29614 * r29615;
        double r29617 = r29613 - r29616;
        double r29618 = r29608 * r29617;
        double r29619 = b;
        double r29620 = c;
        double r29621 = r29620 * r29612;
        double r29622 = i;
        double r29623 = r29622 * r29615;
        double r29624 = r29621 - r29623;
        double r29625 = cbrt(r29624);
        double r29626 = r29625 * r29625;
        double r29627 = r29619 * r29626;
        double r29628 = r29627 * r29625;
        double r29629 = r29618 - r29628;
        double r29630 = j;
        double r29631 = r29620 * r29614;
        double r29632 = r29622 * r29611;
        double r29633 = r29631 - r29632;
        double r29634 = r29630 * r29633;
        double r29635 = r29629 + r29634;
        double r29636 = 4.918058634484688e+125;
        bool r29637 = r29608 <= r29636;
        double r29638 = r29608 * r29612;
        double r29639 = r29638 * r29611;
        double r29640 = r29614 * r29608;
        double r29641 = -r29615;
        double r29642 = r29640 * r29641;
        double r29643 = r29639 + r29642;
        double r29644 = r29624 * r29619;
        double r29645 = r29611 * r29622;
        double r29646 = r29631 - r29645;
        double r29647 = r29630 * r29646;
        double r29648 = r29644 - r29647;
        double r29649 = r29643 - r29648;
        double r29650 = r29637 ? r29649 : r29635;
        double r29651 = r29610 ? r29635 : r29650;
        return r29651;
}

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 r29652, r29653, r29654, r29655, r29656, r29657, r29658, r29659, r29660, r29661, r29662, r29663, r29664, r29665, r29666, r29667, r29668, r29669, r29670, r29671, r29672, r29673, r29674;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        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);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29652, x, MPFR_RNDN);
        mpfr_set_d(r29653, y, MPFR_RNDN);
        mpfr_set_d(r29654, z, MPFR_RNDN);
        mpfr_mul(r29655, r29653, r29654, MPFR_RNDN);
        mpfr_set_d(r29656, t, MPFR_RNDN);
        mpfr_set_d(r29657, a, MPFR_RNDN);
        mpfr_mul(r29658, r29656, r29657, MPFR_RNDN);
        mpfr_sub(r29659, r29655, r29658, MPFR_RNDN);
        mpfr_mul(r29660, r29652, r29659, MPFR_RNDN);
        mpfr_set_d(r29661, b, MPFR_RNDN);
        mpfr_set_d(r29662, c, MPFR_RNDN);
        mpfr_mul(r29663, r29662, r29654, MPFR_RNDN);
        mpfr_set_d(r29664, i, MPFR_RNDN);
        mpfr_mul(r29665, r29664, r29657, MPFR_RNDN);
        mpfr_sub(r29666, r29663, r29665, MPFR_RNDN);
        mpfr_mul(r29667, r29661, r29666, MPFR_RNDN);
        mpfr_sub(r29668, r29660, r29667, MPFR_RNDN);
        mpfr_set_d(r29669, j, MPFR_RNDN);
        mpfr_mul(r29670, r29662, r29656, MPFR_RNDN);
        mpfr_mul(r29671, r29664, r29653, MPFR_RNDN);
        mpfr_sub(r29672, r29670, r29671, MPFR_RNDN);
        mpfr_mul(r29673, r29669, r29672, MPFR_RNDN);
        mpfr_add(r29674, r29668, r29673, MPFR_RNDN);
        return mpfr_get_d(r29674, MPFR_RNDN);
}

static mpfr_t r29675, r29676, r29677, r29678, r29679, r29680, r29681, r29682, r29683, r29684, r29685, r29686, r29687, r29688, r29689, r29690, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29675);
        mpfr_init_set_str(r29676, "-2.8672604767171556e+124", 10, MPFR_RNDN);
        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);
        mpfr_init(r29691);
        mpfr_init(r29692);
        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_set_str(r29703, "4.918058634484688e+125", 10, MPFR_RNDN);
        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);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29675, x, MPFR_RNDN);
        ;
        mpfr_set_si(r29677, mpfr_cmp(r29675, r29676) <= 0, MPFR_RNDN);
        mpfr_set_d(r29678, y, MPFR_RNDN);
        mpfr_set_d(r29679, z, MPFR_RNDN);
        mpfr_mul(r29680, r29678, r29679, MPFR_RNDN);
        mpfr_set_d(r29681, t, MPFR_RNDN);
        mpfr_set_d(r29682, a, MPFR_RNDN);
        mpfr_mul(r29683, r29681, r29682, MPFR_RNDN);
        mpfr_sub(r29684, r29680, r29683, MPFR_RNDN);
        mpfr_mul(r29685, r29675, r29684, MPFR_RNDN);
        mpfr_set_d(r29686, b, MPFR_RNDN);
        mpfr_set_d(r29687, c, MPFR_RNDN);
        mpfr_mul(r29688, r29687, r29679, MPFR_RNDN);
        mpfr_set_d(r29689, i, MPFR_RNDN);
        mpfr_mul(r29690, r29689, r29682, MPFR_RNDN);
        mpfr_sub(r29691, r29688, r29690, MPFR_RNDN);
        mpfr_cbrt(r29692, r29691, MPFR_RNDN);
        mpfr_mul(r29693, r29692, r29692, MPFR_RNDN);
        mpfr_mul(r29694, r29686, r29693, MPFR_RNDN);
        mpfr_mul(r29695, r29694, r29692, MPFR_RNDN);
        mpfr_sub(r29696, r29685, r29695, MPFR_RNDN);
        mpfr_set_d(r29697, j, MPFR_RNDN);
        mpfr_mul(r29698, r29687, r29681, MPFR_RNDN);
        mpfr_mul(r29699, r29689, r29678, MPFR_RNDN);
        mpfr_sub(r29700, r29698, r29699, MPFR_RNDN);
        mpfr_mul(r29701, r29697, r29700, MPFR_RNDN);
        mpfr_add(r29702, r29696, r29701, MPFR_RNDN);
        ;
        mpfr_set_si(r29704, mpfr_cmp(r29675, r29703) <= 0, MPFR_RNDN);
        mpfr_mul(r29705, r29675, r29679, MPFR_RNDN);
        mpfr_mul(r29706, r29705, r29678, MPFR_RNDN);
        mpfr_mul(r29707, r29681, r29675, MPFR_RNDN);
        mpfr_neg(r29708, r29682, MPFR_RNDN);
        mpfr_mul(r29709, r29707, r29708, MPFR_RNDN);
        mpfr_add(r29710, r29706, r29709, MPFR_RNDN);
        mpfr_mul(r29711, r29691, r29686, MPFR_RNDN);
        mpfr_mul(r29712, r29678, r29689, MPFR_RNDN);
        mpfr_sub(r29713, r29698, r29712, MPFR_RNDN);
        mpfr_mul(r29714, r29697, r29713, MPFR_RNDN);
        mpfr_sub(r29715, r29711, r29714, MPFR_RNDN);
        mpfr_sub(r29716, r29710, r29715, MPFR_RNDN);
        if (mpfr_get_si(r29704, MPFR_RNDN)) { mpfr_set(r29717, r29716, MPFR_RNDN); } else { mpfr_set(r29717, r29702, MPFR_RNDN); };
        if (mpfr_get_si(r29677, MPFR_RNDN)) { mpfr_set(r29718, r29702, MPFR_RNDN); } else { mpfr_set(r29718, r29717, MPFR_RNDN); };
        return mpfr_get_d(r29718, MPFR_RNDN);
}

static mpfr_t r29719, r29720, r29721, r29722, r29723, r29724, r29725, r29726, r29727, r29728, r29729, r29730, r29731, r29732, r29733, r29734, r29735, r29736, r29737, r29738, r29739, r29740, r29741, r29742, r29743, r29744, r29745, r29746, r29747, r29748, r29749, r29750, r29751, r29752, r29753, r29754, r29755, r29756, r29757, r29758, r29759, r29760, r29761, r29762;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29719);
        mpfr_init_set_str(r29720, "-2.8672604767171556e+124", 10, MPFR_RNDN);
        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);
        mpfr_init(r29735);
        mpfr_init(r29736);
        mpfr_init(r29737);
        mpfr_init(r29738);
        mpfr_init(r29739);
        mpfr_init(r29740);
        mpfr_init(r29741);
        mpfr_init(r29742);
        mpfr_init(r29743);
        mpfr_init(r29744);
        mpfr_init(r29745);
        mpfr_init(r29746);
        mpfr_init_set_str(r29747, "4.918058634484688e+125", 10, MPFR_RNDN);
        mpfr_init(r29748);
        mpfr_init(r29749);
        mpfr_init(r29750);
        mpfr_init(r29751);
        mpfr_init(r29752);
        mpfr_init(r29753);
        mpfr_init(r29754);
        mpfr_init(r29755);
        mpfr_init(r29756);
        mpfr_init(r29757);
        mpfr_init(r29758);
        mpfr_init(r29759);
        mpfr_init(r29760);
        mpfr_init(r29761);
        mpfr_init(r29762);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29719, x, MPFR_RNDN);
        ;
        mpfr_set_si(r29721, mpfr_cmp(r29719, r29720) <= 0, MPFR_RNDN);
        mpfr_set_d(r29722, y, MPFR_RNDN);
        mpfr_set_d(r29723, z, MPFR_RNDN);
        mpfr_mul(r29724, r29722, r29723, MPFR_RNDN);
        mpfr_set_d(r29725, t, MPFR_RNDN);
        mpfr_set_d(r29726, a, MPFR_RNDN);
        mpfr_mul(r29727, r29725, r29726, MPFR_RNDN);
        mpfr_sub(r29728, r29724, r29727, MPFR_RNDN);
        mpfr_mul(r29729, r29719, r29728, MPFR_RNDN);
        mpfr_set_d(r29730, b, MPFR_RNDN);
        mpfr_set_d(r29731, c, MPFR_RNDN);
        mpfr_mul(r29732, r29731, r29723, MPFR_RNDN);
        mpfr_set_d(r29733, i, MPFR_RNDN);
        mpfr_mul(r29734, r29733, r29726, MPFR_RNDN);
        mpfr_sub(r29735, r29732, r29734, MPFR_RNDN);
        mpfr_cbrt(r29736, r29735, MPFR_RNDN);
        mpfr_mul(r29737, r29736, r29736, MPFR_RNDN);
        mpfr_mul(r29738, r29730, r29737, MPFR_RNDN);
        mpfr_mul(r29739, r29738, r29736, MPFR_RNDN);
        mpfr_sub(r29740, r29729, r29739, MPFR_RNDN);
        mpfr_set_d(r29741, j, MPFR_RNDN);
        mpfr_mul(r29742, r29731, r29725, MPFR_RNDN);
        mpfr_mul(r29743, r29733, r29722, MPFR_RNDN);
        mpfr_sub(r29744, r29742, r29743, MPFR_RNDN);
        mpfr_mul(r29745, r29741, r29744, MPFR_RNDN);
        mpfr_add(r29746, r29740, r29745, MPFR_RNDN);
        ;
        mpfr_set_si(r29748, mpfr_cmp(r29719, r29747) <= 0, MPFR_RNDN);
        mpfr_mul(r29749, r29719, r29723, MPFR_RNDN);
        mpfr_mul(r29750, r29749, r29722, MPFR_RNDN);
        mpfr_mul(r29751, r29725, r29719, MPFR_RNDN);
        mpfr_neg(r29752, r29726, MPFR_RNDN);
        mpfr_mul(r29753, r29751, r29752, MPFR_RNDN);
        mpfr_add(r29754, r29750, r29753, MPFR_RNDN);
        mpfr_mul(r29755, r29735, r29730, MPFR_RNDN);
        mpfr_mul(r29756, r29722, r29733, MPFR_RNDN);
        mpfr_sub(r29757, r29742, r29756, MPFR_RNDN);
        mpfr_mul(r29758, r29741, r29757, MPFR_RNDN);
        mpfr_sub(r29759, r29755, r29758, MPFR_RNDN);
        mpfr_sub(r29760, r29754, r29759, MPFR_RNDN);
        if (mpfr_get_si(r29748, MPFR_RNDN)) { mpfr_set(r29761, r29760, MPFR_RNDN); } else { mpfr_set(r29761, r29746, MPFR_RNDN); };
        if (mpfr_get_si(r29721, MPFR_RNDN)) { mpfr_set(r29762, r29746, MPFR_RNDN); } else { mpfr_set(r29762, r29761, MPFR_RNDN); };
        return mpfr_get_d(r29762, MPFR_RNDN);
}

