#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 r29635 = x;
        float r29636 = y;
        float r29637 = z;
        float r29638 = r29636 * r29637;
        float r29639 = t;
        float r29640 = a;
        float r29641 = r29639 * r29640;
        float r29642 = r29638 - r29641;
        float r29643 = r29635 * r29642;
        float r29644 = b;
        float r29645 = c;
        float r29646 = r29645 * r29637;
        float r29647 = i;
        float r29648 = r29647 * r29640;
        float r29649 = r29646 - r29648;
        float r29650 = r29644 * r29649;
        float r29651 = r29643 - r29650;
        float r29652 = j;
        float r29653 = r29645 * r29639;
        float r29654 = r29647 * r29636;
        float r29655 = r29653 - r29654;
        float r29656 = r29652 * r29655;
        float r29657 = r29651 + r29656;
        return r29657;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r29658 = x;
        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 = r29658 * r29665;
        double r29667 = b;
        double r29668 = c;
        double r29669 = r29668 * r29660;
        double r29670 = i;
        double r29671 = r29670 * r29663;
        double r29672 = r29669 - r29671;
        double r29673 = r29667 * r29672;
        double r29674 = r29666 - r29673;
        double r29675 = j;
        double r29676 = r29668 * r29662;
        double r29677 = r29670 * r29659;
        double r29678 = r29676 - r29677;
        double r29679 = r29675 * r29678;
        double r29680 = r29674 + r29679;
        return r29680;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r29681 = x;
        float r29682 = -3.1186130314637846e+124;
        bool r29683 = r29681 <= r29682;
        float r29684 = y;
        float r29685 = z;
        float r29686 = r29684 * r29685;
        float r29687 = t;
        float r29688 = a;
        float r29689 = r29687 * r29688;
        float r29690 = r29686 - r29689;
        float r29691 = r29681 * r29690;
        float r29692 = b;
        float r29693 = c;
        float r29694 = r29693 * r29685;
        float r29695 = i;
        float r29696 = r29695 * r29688;
        float r29697 = r29694 - r29696;
        float r29698 = cbrt(r29697);
        float r29699 = r29698 * r29698;
        float r29700 = r29692 * r29699;
        float r29701 = r29700 * r29698;
        float r29702 = r29691 - r29701;
        float r29703 = j;
        float r29704 = r29693 * r29687;
        float r29705 = r29695 * r29684;
        float r29706 = r29704 - r29705;
        float r29707 = r29703 * r29706;
        float r29708 = r29702 + r29707;
        float r29709 = 4.863955640625947e+121;
        bool r29710 = r29681 <= r29709;
        float r29711 = r29681 * r29685;
        float r29712 = r29711 * r29684;
        float r29713 = r29687 * r29681;
        float r29714 = -r29688;
        float r29715 = r29713 * r29714;
        float r29716 = r29712 + r29715;
        float r29717 = r29697 * r29692;
        float r29718 = r29684 * r29695;
        float r29719 = r29704 - r29718;
        float r29720 = r29703 * r29719;
        float r29721 = r29717 - r29720;
        float r29722 = r29716 - r29721;
        float r29723 = r29710 ? r29722 : r29708;
        float r29724 = r29683 ? r29708 : r29723;
        return r29724;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r29725 = x;
        double r29726 = -3.1186130314637846e+124;
        bool r29727 = r29725 <= r29726;
        double r29728 = y;
        double r29729 = z;
        double r29730 = r29728 * r29729;
        double r29731 = t;
        double r29732 = a;
        double r29733 = r29731 * r29732;
        double r29734 = r29730 - r29733;
        double r29735 = r29725 * r29734;
        double r29736 = b;
        double r29737 = c;
        double r29738 = r29737 * r29729;
        double r29739 = i;
        double r29740 = r29739 * r29732;
        double r29741 = r29738 - r29740;
        double r29742 = cbrt(r29741);
        double r29743 = r29742 * r29742;
        double r29744 = r29736 * r29743;
        double r29745 = r29744 * r29742;
        double r29746 = r29735 - r29745;
        double r29747 = j;
        double r29748 = r29737 * r29731;
        double r29749 = r29739 * r29728;
        double r29750 = r29748 - r29749;
        double r29751 = r29747 * r29750;
        double r29752 = r29746 + r29751;
        double r29753 = 4.863955640625947e+121;
        bool r29754 = r29725 <= r29753;
        double r29755 = r29725 * r29729;
        double r29756 = r29755 * r29728;
        double r29757 = r29731 * r29725;
        double r29758 = -r29732;
        double r29759 = r29757 * r29758;
        double r29760 = r29756 + r29759;
        double r29761 = r29741 * r29736;
        double r29762 = r29728 * r29739;
        double r29763 = r29748 - r29762;
        double r29764 = r29747 * r29763;
        double r29765 = r29761 - r29764;
        double r29766 = r29760 - r29765;
        double r29767 = r29754 ? r29766 : r29752;
        double r29768 = r29727 ? r29752 : r29767;
        return r29768;
}

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 r29769, r29770, r29771, r29772, r29773, r29774, r29775, r29776, r29777, r29778, r29779, r29780, r29781, r29782, r29783, r29784, r29785, r29786, r29787, r29788, r29789, r29790, r29791;

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

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29769, x, 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, r29769, 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_mul(r29784, r29778, r29783, MPFR_RNDN);
        mpfr_sub(r29785, r29777, r29784, MPFR_RNDN);
        mpfr_set_d(r29786, j, MPFR_RNDN);
        mpfr_mul(r29787, r29779, r29773, MPFR_RNDN);
        mpfr_mul(r29788, r29781, r29770, MPFR_RNDN);
        mpfr_sub(r29789, r29787, r29788, MPFR_RNDN);
        mpfr_mul(r29790, r29786, r29789, MPFR_RNDN);
        mpfr_add(r29791, r29785, r29790, MPFR_RNDN);
        return mpfr_get_d(r29791, MPFR_RNDN);
}

static mpfr_t r29792, r29793, r29794, r29795, r29796, r29797, r29798, r29799, r29800, r29801, r29802, r29803, r29804, r29805, r29806, r29807, r29808, r29809, r29810, r29811, r29812, r29813, r29814, r29815, r29816, r29817, r29818, r29819, r29820, r29821, r29822, r29823, r29824, r29825, r29826, r29827, r29828, r29829, r29830, r29831, r29832, r29833, r29834, r29835;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29792);
        mpfr_init_set_str(r29793, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        mpfr_init(r29794);
        mpfr_init(r29795);
        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);
        mpfr_init(r29811);
        mpfr_init(r29812);
        mpfr_init(r29813);
        mpfr_init(r29814);
        mpfr_init(r29815);
        mpfr_init(r29816);
        mpfr_init(r29817);
        mpfr_init(r29818);
        mpfr_init(r29819);
        mpfr_init_set_str(r29820, "4.863955640625947e+121", 10, MPFR_RNDN);
        mpfr_init(r29821);
        mpfr_init(r29822);
        mpfr_init(r29823);
        mpfr_init(r29824);
        mpfr_init(r29825);
        mpfr_init(r29826);
        mpfr_init(r29827);
        mpfr_init(r29828);
        mpfr_init(r29829);
        mpfr_init(r29830);
        mpfr_init(r29831);
        mpfr_init(r29832);
        mpfr_init(r29833);
        mpfr_init(r29834);
        mpfr_init(r29835);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29792, x, MPFR_RNDN);
        ;
        mpfr_set_si(r29794, mpfr_cmp(r29792, r29793) <= 0, MPFR_RNDN);
        mpfr_set_d(r29795, y, MPFR_RNDN);
        mpfr_set_d(r29796, z, MPFR_RNDN);
        mpfr_mul(r29797, r29795, r29796, MPFR_RNDN);
        mpfr_set_d(r29798, t, MPFR_RNDN);
        mpfr_set_d(r29799, a, MPFR_RNDN);
        mpfr_mul(r29800, r29798, r29799, MPFR_RNDN);
        mpfr_sub(r29801, r29797, r29800, MPFR_RNDN);
        mpfr_mul(r29802, r29792, r29801, MPFR_RNDN);
        mpfr_set_d(r29803, b, MPFR_RNDN);
        mpfr_set_d(r29804, c, MPFR_RNDN);
        mpfr_mul(r29805, r29804, r29796, MPFR_RNDN);
        mpfr_set_d(r29806, i, MPFR_RNDN);
        mpfr_mul(r29807, r29806, r29799, MPFR_RNDN);
        mpfr_sub(r29808, r29805, r29807, MPFR_RNDN);
        mpfr_cbrt(r29809, r29808, MPFR_RNDN);
        mpfr_mul(r29810, r29809, r29809, MPFR_RNDN);
        mpfr_mul(r29811, r29803, r29810, MPFR_RNDN);
        mpfr_mul(r29812, r29811, r29809, MPFR_RNDN);
        mpfr_sub(r29813, r29802, r29812, MPFR_RNDN);
        mpfr_set_d(r29814, j, MPFR_RNDN);
        mpfr_mul(r29815, r29804, r29798, MPFR_RNDN);
        mpfr_mul(r29816, r29806, r29795, MPFR_RNDN);
        mpfr_sub(r29817, r29815, r29816, MPFR_RNDN);
        mpfr_mul(r29818, r29814, r29817, MPFR_RNDN);
        mpfr_add(r29819, r29813, r29818, MPFR_RNDN);
        ;
        mpfr_set_si(r29821, mpfr_cmp(r29792, r29820) <= 0, MPFR_RNDN);
        mpfr_mul(r29822, r29792, r29796, MPFR_RNDN);
        mpfr_mul(r29823, r29822, r29795, MPFR_RNDN);
        mpfr_mul(r29824, r29798, r29792, MPFR_RNDN);
        mpfr_neg(r29825, r29799, MPFR_RNDN);
        mpfr_mul(r29826, r29824, r29825, MPFR_RNDN);
        mpfr_add(r29827, r29823, r29826, MPFR_RNDN);
        mpfr_mul(r29828, r29808, r29803, MPFR_RNDN);
        mpfr_mul(r29829, r29795, r29806, MPFR_RNDN);
        mpfr_sub(r29830, r29815, r29829, MPFR_RNDN);
        mpfr_mul(r29831, r29814, r29830, MPFR_RNDN);
        mpfr_sub(r29832, r29828, r29831, MPFR_RNDN);
        mpfr_sub(r29833, r29827, r29832, MPFR_RNDN);
        if (mpfr_get_si(r29821, MPFR_RNDN)) { mpfr_set(r29834, r29833, MPFR_RNDN); } else { mpfr_set(r29834, r29819, MPFR_RNDN); };
        if (mpfr_get_si(r29794, MPFR_RNDN)) { mpfr_set(r29835, r29819, MPFR_RNDN); } else { mpfr_set(r29835, r29834, MPFR_RNDN); };
        return mpfr_get_d(r29835, MPFR_RNDN);
}

static mpfr_t r29836, r29837, r29838, r29839, r29840, r29841, r29842, r29843, r29844, r29845, r29846, r29847, r29848, r29849, r29850, r29851, r29852, r29853, r29854, r29855, r29856, r29857, r29858, r29859, r29860, r29861, r29862, r29863, r29864, r29865, r29866, r29867, r29868, r29869, r29870, r29871, r29872, r29873, r29874, r29875, r29876, r29877, r29878, r29879;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29836);
        mpfr_init_set_str(r29837, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        mpfr_init(r29838);
        mpfr_init(r29839);
        mpfr_init(r29840);
        mpfr_init(r29841);
        mpfr_init(r29842);
        mpfr_init(r29843);
        mpfr_init(r29844);
        mpfr_init(r29845);
        mpfr_init(r29846);
        mpfr_init(r29847);
        mpfr_init(r29848);
        mpfr_init(r29849);
        mpfr_init(r29850);
        mpfr_init(r29851);
        mpfr_init(r29852);
        mpfr_init(r29853);
        mpfr_init(r29854);
        mpfr_init(r29855);
        mpfr_init(r29856);
        mpfr_init(r29857);
        mpfr_init(r29858);
        mpfr_init(r29859);
        mpfr_init(r29860);
        mpfr_init(r29861);
        mpfr_init(r29862);
        mpfr_init(r29863);
        mpfr_init_set_str(r29864, "4.863955640625947e+121", 10, MPFR_RNDN);
        mpfr_init(r29865);
        mpfr_init(r29866);
        mpfr_init(r29867);
        mpfr_init(r29868);
        mpfr_init(r29869);
        mpfr_init(r29870);
        mpfr_init(r29871);
        mpfr_init(r29872);
        mpfr_init(r29873);
        mpfr_init(r29874);
        mpfr_init(r29875);
        mpfr_init(r29876);
        mpfr_init(r29877);
        mpfr_init(r29878);
        mpfr_init(r29879);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29836, x, MPFR_RNDN);
        ;
        mpfr_set_si(r29838, mpfr_cmp(r29836, r29837) <= 0, MPFR_RNDN);
        mpfr_set_d(r29839, y, MPFR_RNDN);
        mpfr_set_d(r29840, z, MPFR_RNDN);
        mpfr_mul(r29841, r29839, r29840, MPFR_RNDN);
        mpfr_set_d(r29842, t, MPFR_RNDN);
        mpfr_set_d(r29843, a, MPFR_RNDN);
        mpfr_mul(r29844, r29842, r29843, MPFR_RNDN);
        mpfr_sub(r29845, r29841, r29844, MPFR_RNDN);
        mpfr_mul(r29846, r29836, r29845, MPFR_RNDN);
        mpfr_set_d(r29847, b, MPFR_RNDN);
        mpfr_set_d(r29848, c, MPFR_RNDN);
        mpfr_mul(r29849, r29848, r29840, MPFR_RNDN);
        mpfr_set_d(r29850, i, MPFR_RNDN);
        mpfr_mul(r29851, r29850, r29843, MPFR_RNDN);
        mpfr_sub(r29852, r29849, r29851, MPFR_RNDN);
        mpfr_cbrt(r29853, r29852, MPFR_RNDN);
        mpfr_mul(r29854, r29853, r29853, MPFR_RNDN);
        mpfr_mul(r29855, r29847, r29854, MPFR_RNDN);
        mpfr_mul(r29856, r29855, r29853, MPFR_RNDN);
        mpfr_sub(r29857, r29846, r29856, MPFR_RNDN);
        mpfr_set_d(r29858, j, MPFR_RNDN);
        mpfr_mul(r29859, r29848, r29842, MPFR_RNDN);
        mpfr_mul(r29860, r29850, r29839, MPFR_RNDN);
        mpfr_sub(r29861, r29859, r29860, MPFR_RNDN);
        mpfr_mul(r29862, r29858, r29861, MPFR_RNDN);
        mpfr_add(r29863, r29857, r29862, MPFR_RNDN);
        ;
        mpfr_set_si(r29865, mpfr_cmp(r29836, r29864) <= 0, MPFR_RNDN);
        mpfr_mul(r29866, r29836, r29840, MPFR_RNDN);
        mpfr_mul(r29867, r29866, r29839, MPFR_RNDN);
        mpfr_mul(r29868, r29842, r29836, MPFR_RNDN);
        mpfr_neg(r29869, r29843, MPFR_RNDN);
        mpfr_mul(r29870, r29868, r29869, MPFR_RNDN);
        mpfr_add(r29871, r29867, r29870, MPFR_RNDN);
        mpfr_mul(r29872, r29852, r29847, MPFR_RNDN);
        mpfr_mul(r29873, r29839, r29850, MPFR_RNDN);
        mpfr_sub(r29874, r29859, r29873, MPFR_RNDN);
        mpfr_mul(r29875, r29858, r29874, MPFR_RNDN);
        mpfr_sub(r29876, r29872, r29875, MPFR_RNDN);
        mpfr_sub(r29877, r29871, r29876, MPFR_RNDN);
        if (mpfr_get_si(r29865, MPFR_RNDN)) { mpfr_set(r29878, r29877, MPFR_RNDN); } else { mpfr_set(r29878, r29863, MPFR_RNDN); };
        if (mpfr_get_si(r29838, MPFR_RNDN)) { mpfr_set(r29879, r29863, MPFR_RNDN); } else { mpfr_set(r29879, r29878, MPFR_RNDN); };
        return mpfr_get_d(r29879, MPFR_RNDN);
}

