#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 r29566 = x;
        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 = r29566 * r29573;
        float r29575 = b;
        float r29576 = c;
        float r29577 = r29576 * r29568;
        float r29578 = i;
        float r29579 = r29578 * r29571;
        float r29580 = r29577 - r29579;
        float r29581 = r29575 * r29580;
        float r29582 = r29574 - r29581;
        float r29583 = j;
        float r29584 = r29576 * r29570;
        float r29585 = r29578 * r29567;
        float r29586 = r29584 - r29585;
        float r29587 = r29583 * r29586;
        float r29588 = r29582 + r29587;
        return r29588;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r29589 = x;
        double r29590 = y;
        double r29591 = z;
        double r29592 = r29590 * r29591;
        double r29593 = t;
        double r29594 = a;
        double r29595 = r29593 * r29594;
        double r29596 = r29592 - r29595;
        double r29597 = r29589 * r29596;
        double r29598 = b;
        double r29599 = c;
        double r29600 = r29599 * r29591;
        double r29601 = i;
        double r29602 = r29601 * r29594;
        double r29603 = r29600 - r29602;
        double r29604 = r29598 * r29603;
        double r29605 = r29597 - r29604;
        double r29606 = j;
        double r29607 = r29599 * r29593;
        double r29608 = r29601 * r29590;
        double r29609 = r29607 - r29608;
        double r29610 = r29606 * r29609;
        double r29611 = r29605 + r29610;
        return r29611;
}


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

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r29656 = x;
        double r29657 = -2.8672604767171556e+124;
        bool r29658 = r29656 <= r29657;
        double r29659 = y;
        double r29660 = z;
        double r29661 = r29659 * r29660;
        double r29662 = t;
        double r29663 = a;
        double r29664 = r29662 * r29663;
        double r29665 = r29661 - r29664;
        double r29666 = r29656 * r29665;
        double r29667 = b;
        double r29668 = c;
        double r29669 = r29668 * r29660;
        double r29670 = i;
        double r29671 = r29670 * r29663;
        double r29672 = r29669 - r29671;
        double r29673 = cbrt(r29672);
        double r29674 = r29673 * r29673;
        double r29675 = r29667 * r29674;
        double r29676 = r29675 * r29673;
        double r29677 = r29666 - r29676;
        double r29678 = j;
        double r29679 = r29668 * r29662;
        double r29680 = r29670 * r29659;
        double r29681 = r29679 - r29680;
        double r29682 = r29678 * r29681;
        double r29683 = r29677 + r29682;
        double r29684 = 4.918058634484688e+125;
        bool r29685 = r29656 <= r29684;
        double r29686 = r29656 * r29660;
        double r29687 = r29686 * r29659;
        double r29688 = r29662 * r29656;
        double r29689 = -r29663;
        double r29690 = r29688 * r29689;
        double r29691 = r29687 + r29690;
        double r29692 = r29672 * r29667;
        double r29693 = r29659 * r29670;
        double r29694 = r29679 - r29693;
        double r29695 = r29678 * r29694;
        double r29696 = r29692 - r29695;
        double r29697 = r29691 - r29696;
        double r29698 = r29685 ? r29697 : r29683;
        double r29699 = r29658 ? r29683 : r29698;
        return r29699;
}

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 r29700, r29701, r29702, r29703, r29704, r29705, r29706, r29707, r29708, r29709, r29710, r29711, r29712, r29713, r29714, r29715, r29716, r29717, r29718, r29719, r29720, r29721, r29722;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        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(r29719);
        mpfr_init(r29720);
        mpfr_init(r29721);
        mpfr_init(r29722);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29700, x, MPFR_RNDN);
        mpfr_set_d(r29701, y, MPFR_RNDN);
        mpfr_set_d(r29702, z, MPFR_RNDN);
        mpfr_mul(r29703, r29701, r29702, MPFR_RNDN);
        mpfr_set_d(r29704, t, MPFR_RNDN);
        mpfr_set_d(r29705, a, MPFR_RNDN);
        mpfr_mul(r29706, r29704, r29705, MPFR_RNDN);
        mpfr_sub(r29707, r29703, r29706, MPFR_RNDN);
        mpfr_mul(r29708, r29700, r29707, MPFR_RNDN);
        mpfr_set_d(r29709, b, MPFR_RNDN);
        mpfr_set_d(r29710, c, MPFR_RNDN);
        mpfr_mul(r29711, r29710, r29702, MPFR_RNDN);
        mpfr_set_d(r29712, i, MPFR_RNDN);
        mpfr_mul(r29713, r29712, r29705, MPFR_RNDN);
        mpfr_sub(r29714, r29711, r29713, MPFR_RNDN);
        mpfr_mul(r29715, r29709, r29714, MPFR_RNDN);
        mpfr_sub(r29716, r29708, r29715, MPFR_RNDN);
        mpfr_set_d(r29717, j, MPFR_RNDN);
        mpfr_mul(r29718, r29710, r29704, MPFR_RNDN);
        mpfr_mul(r29719, r29712, r29701, MPFR_RNDN);
        mpfr_sub(r29720, r29718, r29719, MPFR_RNDN);
        mpfr_mul(r29721, r29717, r29720, MPFR_RNDN);
        mpfr_add(r29722, r29716, r29721, MPFR_RNDN);
        return mpfr_get_d(r29722, MPFR_RNDN);
}

static mpfr_t 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, r29763, r29764, r29765, r29766;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29723);
        mpfr_init_set_str(r29724, "-2.8672604767171556e+124", 10, MPFR_RNDN);
        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(r29747);
        mpfr_init(r29748);
        mpfr_init(r29749);
        mpfr_init(r29750);
        mpfr_init_set_str(r29751, "4.918058634484688e+125", 10, MPFR_RNDN);
        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);
        mpfr_init(r29763);
        mpfr_init(r29764);
        mpfr_init(r29765);
        mpfr_init(r29766);
}

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

static mpfr_t r29767, r29768, r29769, r29770, r29771, r29772, r29773, r29774, r29775, r29776, r29777, r29778, r29779, r29780, r29781, r29782, r29783, r29784, r29785, r29786, r29787, r29788, r29789, r29790, r29791, r29792, r29793, r29794, r29795, r29796, r29797, r29798, r29799, r29800, r29801, r29802, r29803, r29804, r29805, r29806, r29807, r29808, r29809, r29810;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29767);
        mpfr_init_set_str(r29768, "-2.8672604767171556e+124", 10, MPFR_RNDN);
        mpfr_init(r29769);
        mpfr_init(r29770);
        mpfr_init(r29771);
        mpfr_init(r29772);
        mpfr_init(r29773);
        mpfr_init(r29774);
        mpfr_init(r29775);
        mpfr_init(r29776);
        mpfr_init(r29777);
        mpfr_init(r29778);
        mpfr_init(r29779);
        mpfr_init(r29780);
        mpfr_init(r29781);
        mpfr_init(r29782);
        mpfr_init(r29783);
        mpfr_init(r29784);
        mpfr_init(r29785);
        mpfr_init(r29786);
        mpfr_init(r29787);
        mpfr_init(r29788);
        mpfr_init(r29789);
        mpfr_init(r29790);
        mpfr_init(r29791);
        mpfr_init(r29792);
        mpfr_init(r29793);
        mpfr_init(r29794);
        mpfr_init_set_str(r29795, "4.918058634484688e+125", 10, MPFR_RNDN);
        mpfr_init(r29796);
        mpfr_init(r29797);
        mpfr_init(r29798);
        mpfr_init(r29799);
        mpfr_init(r29800);
        mpfr_init(r29801);
        mpfr_init(r29802);
        mpfr_init(r29803);
        mpfr_init(r29804);
        mpfr_init(r29805);
        mpfr_init(r29806);
        mpfr_init(r29807);
        mpfr_init(r29808);
        mpfr_init(r29809);
        mpfr_init(r29810);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29767, x, MPFR_RNDN);
        ;
        mpfr_set_si(r29769, mpfr_cmp(r29767, r29768) <= 0, MPFR_RNDN);
        mpfr_set_d(r29770, y, MPFR_RNDN);
        mpfr_set_d(r29771, z, MPFR_RNDN);
        mpfr_mul(r29772, r29770, r29771, MPFR_RNDN);
        mpfr_set_d(r29773, t, MPFR_RNDN);
        mpfr_set_d(r29774, a, MPFR_RNDN);
        mpfr_mul(r29775, r29773, r29774, MPFR_RNDN);
        mpfr_sub(r29776, r29772, r29775, MPFR_RNDN);
        mpfr_mul(r29777, r29767, r29776, MPFR_RNDN);
        mpfr_set_d(r29778, b, MPFR_RNDN);
        mpfr_set_d(r29779, c, MPFR_RNDN);
        mpfr_mul(r29780, r29779, r29771, MPFR_RNDN);
        mpfr_set_d(r29781, i, MPFR_RNDN);
        mpfr_mul(r29782, r29781, r29774, MPFR_RNDN);
        mpfr_sub(r29783, r29780, r29782, MPFR_RNDN);
        mpfr_cbrt(r29784, r29783, MPFR_RNDN);
        mpfr_mul(r29785, r29784, r29784, MPFR_RNDN);
        mpfr_mul(r29786, r29778, r29785, MPFR_RNDN);
        mpfr_mul(r29787, r29786, r29784, MPFR_RNDN);
        mpfr_sub(r29788, r29777, r29787, MPFR_RNDN);
        mpfr_set_d(r29789, j, MPFR_RNDN);
        mpfr_mul(r29790, r29779, r29773, MPFR_RNDN);
        mpfr_mul(r29791, r29781, r29770, MPFR_RNDN);
        mpfr_sub(r29792, r29790, r29791, MPFR_RNDN);
        mpfr_mul(r29793, r29789, r29792, MPFR_RNDN);
        mpfr_add(r29794, r29788, r29793, MPFR_RNDN);
        ;
        mpfr_set_si(r29796, mpfr_cmp(r29767, r29795) <= 0, MPFR_RNDN);
        mpfr_mul(r29797, r29767, r29771, MPFR_RNDN);
        mpfr_mul(r29798, r29797, r29770, MPFR_RNDN);
        mpfr_mul(r29799, r29773, r29767, MPFR_RNDN);
        mpfr_neg(r29800, r29774, MPFR_RNDN);
        mpfr_mul(r29801, r29799, r29800, MPFR_RNDN);
        mpfr_add(r29802, r29798, r29801, MPFR_RNDN);
        mpfr_mul(r29803, r29783, r29778, MPFR_RNDN);
        mpfr_mul(r29804, r29770, r29781, MPFR_RNDN);
        mpfr_sub(r29805, r29790, r29804, MPFR_RNDN);
        mpfr_mul(r29806, r29789, r29805, MPFR_RNDN);
        mpfr_sub(r29807, r29803, r29806, MPFR_RNDN);
        mpfr_sub(r29808, r29802, r29807, MPFR_RNDN);
        if (mpfr_get_si(r29796, MPFR_RNDN)) { mpfr_set(r29809, r29808, MPFR_RNDN); } else { mpfr_set(r29809, r29794, MPFR_RNDN); };
        if (mpfr_get_si(r29769, MPFR_RNDN)) { mpfr_set(r29810, r29794, MPFR_RNDN); } else { mpfr_set(r29810, r29809, MPFR_RNDN); };
        return mpfr_get_d(r29810, MPFR_RNDN);
}

