#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 r9722 = x;
        float r9723 = y;
        float r9724 = z;
        float r9725 = r9723 * r9724;
        float r9726 = t;
        float r9727 = a;
        float r9728 = r9726 * r9727;
        float r9729 = r9725 - r9728;
        float r9730 = r9722 * r9729;
        float r9731 = b;
        float r9732 = c;
        float r9733 = r9732 * r9724;
        float r9734 = i;
        float r9735 = r9734 * r9727;
        float r9736 = r9733 - r9735;
        float r9737 = r9731 * r9736;
        float r9738 = r9730 - r9737;
        float r9739 = j;
        float r9740 = r9732 * r9726;
        float r9741 = r9734 * r9723;
        float r9742 = r9740 - r9741;
        float r9743 = r9739 * r9742;
        float r9744 = r9738 + r9743;
        return r9744;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r9745 = x;
        double r9746 = y;
        double r9747 = z;
        double r9748 = r9746 * r9747;
        double r9749 = t;
        double r9750 = a;
        double r9751 = r9749 * r9750;
        double r9752 = r9748 - r9751;
        double r9753 = r9745 * r9752;
        double r9754 = b;
        double r9755 = c;
        double r9756 = r9755 * r9747;
        double r9757 = i;
        double r9758 = r9757 * r9750;
        double r9759 = r9756 - r9758;
        double r9760 = r9754 * r9759;
        double r9761 = r9753 - r9760;
        double r9762 = j;
        double r9763 = r9755 * r9749;
        double r9764 = r9757 * r9746;
        double r9765 = r9763 - r9764;
        double r9766 = r9762 * r9765;
        double r9767 = r9761 + r9766;
        return r9767;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r9768 = x;
        float r9769 = z;
        float r9770 = y;
        float r9771 = r9769 * r9770;
        float r9772 = t;
        float r9773 = a;
        float r9774 = r9772 * r9773;
        float r9775 = r9771 - r9774;
        float r9776 = c;
        float r9777 = j;
        float r9778 = r9777 * r9772;
        float r9779 = r9776 * r9778;
        float r9780 = fma(r9768, r9775, r9779);
        float r9781 = r9776 * r9769;
        float r9782 = i;
        float r9783 = r9773 * r9782;
        float r9784 = r9781 - r9783;
        float r9785 = b;
        float r9786 = r9777 * r9770;
        float r9787 = r9786 * r9782;
        float r9788 = cbrt(r9787);
        float r9789 = r9788 * r9788;
        float r9790 = r9789 * r9788;
        float r9791 = fma(r9784, r9785, r9790);
        float r9792 = r9780 - r9791;
        float r9793 = -5.210460511359957e+287;
        bool r9794 = r9792 <= r9793;
        float r9795 = r9772 * r9776;
        float r9796 = r9770 * r9782;
        float r9797 = r9795 - r9796;
        float r9798 = r9797 * r9777;
        float r9799 = r9785 * r9776;
        float r9800 = r9769 * r9799;
        float r9801 = r9782 * r9785;
        float r9802 = r9773 * r9801;
        float r9803 = r9800 - r9802;
        float r9804 = r9798 - r9803;
        float r9805 = fma(r9775, r9768, r9804);
        float r9806 = 1.3007239354022815e+303;
        bool r9807 = r9792 <= r9806;
        float r9808 = r9776 * r9777;
        float r9809 = r9768 * r9773;
        float r9810 = r9808 - r9809;
        float r9811 = r9770 * r9768;
        float r9812 = r9769 * r9811;
        float r9813 = fma(r9772, r9810, r9812);
        float r9814 = r9769 * r9776;
        float r9815 = r9814 - r9783;
        float r9816 = r9796 * r9777;
        float r9817 = fma(r9815, r9785, r9816);
        float r9818 = r9813 - r9817;
        float r9819 = r9807 ? r9792 : r9818;
        float r9820 = r9794 ? r9805 : r9819;
        return r9820;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r9821 = x;
        double r9822 = z;
        double r9823 = y;
        double r9824 = r9822 * r9823;
        double r9825 = t;
        double r9826 = a;
        double r9827 = r9825 * r9826;
        double r9828 = r9824 - r9827;
        double r9829 = c;
        double r9830 = j;
        double r9831 = r9830 * r9825;
        double r9832 = r9829 * r9831;
        double r9833 = fma(r9821, r9828, r9832);
        double r9834 = r9829 * r9822;
        double r9835 = i;
        double r9836 = r9826 * r9835;
        double r9837 = r9834 - r9836;
        double r9838 = b;
        double r9839 = r9830 * r9823;
        double r9840 = r9839 * r9835;
        double r9841 = cbrt(r9840);
        double r9842 = r9841 * r9841;
        double r9843 = r9842 * r9841;
        double r9844 = fma(r9837, r9838, r9843);
        double r9845 = r9833 - r9844;
        double r9846 = -5.210460511359957e+287;
        bool r9847 = r9845 <= r9846;
        double r9848 = r9825 * r9829;
        double r9849 = r9823 * r9835;
        double r9850 = r9848 - r9849;
        double r9851 = r9850 * r9830;
        double r9852 = r9838 * r9829;
        double r9853 = r9822 * r9852;
        double r9854 = r9835 * r9838;
        double r9855 = r9826 * r9854;
        double r9856 = r9853 - r9855;
        double r9857 = r9851 - r9856;
        double r9858 = fma(r9828, r9821, r9857);
        double r9859 = 1.3007239354022815e+303;
        bool r9860 = r9845 <= r9859;
        double r9861 = r9829 * r9830;
        double r9862 = r9821 * r9826;
        double r9863 = r9861 - r9862;
        double r9864 = r9823 * r9821;
        double r9865 = r9822 * r9864;
        double r9866 = fma(r9825, r9863, r9865);
        double r9867 = r9822 * r9829;
        double r9868 = r9867 - r9836;
        double r9869 = r9849 * r9830;
        double r9870 = fma(r9868, r9838, r9869);
        double r9871 = r9866 - r9870;
        double r9872 = r9860 ? r9845 : r9871;
        double r9873 = r9847 ? r9858 : r9872;
        return r9873;
}

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 r9874, r9875, r9876, r9877, r9878, r9879, r9880, r9881, r9882, r9883, r9884, r9885, r9886, r9887, r9888, r9889, r9890, r9891, r9892, r9893, r9894, r9895, r9896;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9874);
        mpfr_init(r9875);
        mpfr_init(r9876);
        mpfr_init(r9877);
        mpfr_init(r9878);
        mpfr_init(r9879);
        mpfr_init(r9880);
        mpfr_init(r9881);
        mpfr_init(r9882);
        mpfr_init(r9883);
        mpfr_init(r9884);
        mpfr_init(r9885);
        mpfr_init(r9886);
        mpfr_init(r9887);
        mpfr_init(r9888);
        mpfr_init(r9889);
        mpfr_init(r9890);
        mpfr_init(r9891);
        mpfr_init(r9892);
        mpfr_init(r9893);
        mpfr_init(r9894);
        mpfr_init(r9895);
        mpfr_init(r9896);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r9874, x, MPFR_RNDN);
        mpfr_set_d(r9875, y, MPFR_RNDN);
        mpfr_set_d(r9876, z, MPFR_RNDN);
        mpfr_mul(r9877, r9875, r9876, MPFR_RNDN);
        mpfr_set_d(r9878, t, MPFR_RNDN);
        mpfr_set_d(r9879, a, MPFR_RNDN);
        mpfr_mul(r9880, r9878, r9879, MPFR_RNDN);
        mpfr_sub(r9881, r9877, r9880, MPFR_RNDN);
        mpfr_mul(r9882, r9874, r9881, MPFR_RNDN);
        mpfr_set_d(r9883, b, MPFR_RNDN);
        mpfr_set_d(r9884, c, MPFR_RNDN);
        mpfr_mul(r9885, r9884, r9876, MPFR_RNDN);
        mpfr_set_d(r9886, i, MPFR_RNDN);
        mpfr_mul(r9887, r9886, r9879, MPFR_RNDN);
        mpfr_sub(r9888, r9885, r9887, MPFR_RNDN);
        mpfr_mul(r9889, r9883, r9888, MPFR_RNDN);
        mpfr_sub(r9890, r9882, r9889, MPFR_RNDN);
        mpfr_set_d(r9891, j, MPFR_RNDN);
        mpfr_mul(r9892, r9884, r9878, MPFR_RNDN);
        mpfr_mul(r9893, r9886, r9875, MPFR_RNDN);
        mpfr_sub(r9894, r9892, r9893, MPFR_RNDN);
        mpfr_mul(r9895, r9891, r9894, MPFR_RNDN);
        mpfr_add(r9896, r9890, r9895, MPFR_RNDN);
        return mpfr_get_d(r9896, MPFR_RNDN);
}

static mpfr_t r9897, r9898, r9899, r9900, r9901, r9902, r9903, r9904, r9905, r9906, r9907, r9908, r9909, r9910, r9911, r9912, r9913, r9914, r9915, r9916, r9917, r9918, r9919, r9920, r9921, r9922, r9923, r9924, r9925, r9926, r9927, r9928, r9929, r9930, r9931, r9932, r9933, r9934, r9935, r9936, r9937, r9938, r9939, r9940, r9941, r9942, r9943, r9944, r9945, r9946, r9947, r9948, r9949;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9897);
        mpfr_init(r9898);
        mpfr_init(r9899);
        mpfr_init(r9900);
        mpfr_init(r9901);
        mpfr_init(r9902);
        mpfr_init(r9903);
        mpfr_init(r9904);
        mpfr_init(r9905);
        mpfr_init(r9906);
        mpfr_init(r9907);
        mpfr_init(r9908);
        mpfr_init(r9909);
        mpfr_init(r9910);
        mpfr_init(r9911);
        mpfr_init(r9912);
        mpfr_init(r9913);
        mpfr_init(r9914);
        mpfr_init(r9915);
        mpfr_init(r9916);
        mpfr_init(r9917);
        mpfr_init(r9918);
        mpfr_init(r9919);
        mpfr_init(r9920);
        mpfr_init(r9921);
        mpfr_init_set_str(r9922, "-5.210460511359957e+287", 10, MPFR_RNDN);
        mpfr_init(r9923);
        mpfr_init(r9924);
        mpfr_init(r9925);
        mpfr_init(r9926);
        mpfr_init(r9927);
        mpfr_init(r9928);
        mpfr_init(r9929);
        mpfr_init(r9930);
        mpfr_init(r9931);
        mpfr_init(r9932);
        mpfr_init(r9933);
        mpfr_init(r9934);
        mpfr_init_set_str(r9935, "1.3007239354022815e+303", 10, MPFR_RNDN);
        mpfr_init(r9936);
        mpfr_init(r9937);
        mpfr_init(r9938);
        mpfr_init(r9939);
        mpfr_init(r9940);
        mpfr_init(r9941);
        mpfr_init(r9942);
        mpfr_init(r9943);
        mpfr_init(r9944);
        mpfr_init(r9945);
        mpfr_init(r9946);
        mpfr_init(r9947);
        mpfr_init(r9948);
        mpfr_init(r9949);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r9897, x, MPFR_RNDN);
        mpfr_set_d(r9898, z, MPFR_RNDN);
        mpfr_set_d(r9899, y, MPFR_RNDN);
        mpfr_mul(r9900, r9898, r9899, MPFR_RNDN);
        mpfr_set_d(r9901, t, MPFR_RNDN);
        mpfr_set_d(r9902, a, MPFR_RNDN);
        mpfr_mul(r9903, r9901, r9902, MPFR_RNDN);
        mpfr_sub(r9904, r9900, r9903, MPFR_RNDN);
        mpfr_set_d(r9905, c, MPFR_RNDN);
        mpfr_set_d(r9906, j, MPFR_RNDN);
        mpfr_mul(r9907, r9906, r9901, MPFR_RNDN);
        mpfr_mul(r9908, r9905, r9907, MPFR_RNDN);
        mpfr_fma(r9909, r9897, r9904, r9908, MPFR_RNDN);
        mpfr_mul(r9910, r9905, r9898, MPFR_RNDN);
        mpfr_set_d(r9911, i, MPFR_RNDN);
        mpfr_mul(r9912, r9902, r9911, MPFR_RNDN);
        mpfr_sub(r9913, r9910, r9912, MPFR_RNDN);
        mpfr_set_d(r9914, b, MPFR_RNDN);
        mpfr_mul(r9915, r9906, r9899, MPFR_RNDN);
        mpfr_mul(r9916, r9915, r9911, MPFR_RNDN);
        mpfr_cbrt(r9917, r9916, MPFR_RNDN);
        mpfr_mul(r9918, r9917, r9917, MPFR_RNDN);
        mpfr_mul(r9919, r9918, r9917, MPFR_RNDN);
        mpfr_fma(r9920, r9913, r9914, r9919, MPFR_RNDN);
        mpfr_sub(r9921, r9909, r9920, MPFR_RNDN);
        ;
        mpfr_set_si(r9923, mpfr_cmp(r9921, r9922) <= 0, MPFR_RNDN);
        mpfr_mul(r9924, r9901, r9905, MPFR_RNDN);
        mpfr_mul(r9925, r9899, r9911, MPFR_RNDN);
        mpfr_sub(r9926, r9924, r9925, MPFR_RNDN);
        mpfr_mul(r9927, r9926, r9906, MPFR_RNDN);
        mpfr_mul(r9928, r9914, r9905, MPFR_RNDN);
        mpfr_mul(r9929, r9898, r9928, MPFR_RNDN);
        mpfr_mul(r9930, r9911, r9914, MPFR_RNDN);
        mpfr_mul(r9931, r9902, r9930, MPFR_RNDN);
        mpfr_sub(r9932, r9929, r9931, MPFR_RNDN);
        mpfr_sub(r9933, r9927, r9932, MPFR_RNDN);
        mpfr_fma(r9934, r9904, r9897, r9933, MPFR_RNDN);
        ;
        mpfr_set_si(r9936, mpfr_cmp(r9921, r9935) <= 0, MPFR_RNDN);
        mpfr_mul(r9937, r9905, r9906, MPFR_RNDN);
        mpfr_mul(r9938, r9897, r9902, MPFR_RNDN);
        mpfr_sub(r9939, r9937, r9938, MPFR_RNDN);
        mpfr_mul(r9940, r9899, r9897, MPFR_RNDN);
        mpfr_mul(r9941, r9898, r9940, MPFR_RNDN);
        mpfr_fma(r9942, r9901, r9939, r9941, MPFR_RNDN);
        mpfr_mul(r9943, r9898, r9905, MPFR_RNDN);
        mpfr_sub(r9944, r9943, r9912, MPFR_RNDN);
        mpfr_mul(r9945, r9925, r9906, MPFR_RNDN);
        mpfr_fma(r9946, r9944, r9914, r9945, MPFR_RNDN);
        mpfr_sub(r9947, r9942, r9946, MPFR_RNDN);
        if (mpfr_get_si(r9936, MPFR_RNDN)) { mpfr_set(r9948, r9921, MPFR_RNDN); } else { mpfr_set(r9948, r9947, MPFR_RNDN); };
        if (mpfr_get_si(r9923, MPFR_RNDN)) { mpfr_set(r9949, r9934, MPFR_RNDN); } else { mpfr_set(r9949, r9948, MPFR_RNDN); };
        return mpfr_get_d(r9949, MPFR_RNDN);
}

static mpfr_t r9950, r9951, r9952, r9953, r9954, r9955, r9956, r9957, r9958, r9959, r9960, r9961, r9962, r9963, r9964, r9965, r9966, r9967, r9968, r9969, r9970, r9971, r9972, r9973, r9974, r9975, r9976, r9977, r9978, r9979, r9980, r9981, r9982, r9983, r9984, r9985, r9986, r9987, r9988, r9989, r9990, r9991, r9992, r9993, r9994, r9995, r9996, r9997, r9998, r9999, r10000, r10001, r10002;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9950);
        mpfr_init(r9951);
        mpfr_init(r9952);
        mpfr_init(r9953);
        mpfr_init(r9954);
        mpfr_init(r9955);
        mpfr_init(r9956);
        mpfr_init(r9957);
        mpfr_init(r9958);
        mpfr_init(r9959);
        mpfr_init(r9960);
        mpfr_init(r9961);
        mpfr_init(r9962);
        mpfr_init(r9963);
        mpfr_init(r9964);
        mpfr_init(r9965);
        mpfr_init(r9966);
        mpfr_init(r9967);
        mpfr_init(r9968);
        mpfr_init(r9969);
        mpfr_init(r9970);
        mpfr_init(r9971);
        mpfr_init(r9972);
        mpfr_init(r9973);
        mpfr_init(r9974);
        mpfr_init_set_str(r9975, "-5.210460511359957e+287", 10, MPFR_RNDN);
        mpfr_init(r9976);
        mpfr_init(r9977);
        mpfr_init(r9978);
        mpfr_init(r9979);
        mpfr_init(r9980);
        mpfr_init(r9981);
        mpfr_init(r9982);
        mpfr_init(r9983);
        mpfr_init(r9984);
        mpfr_init(r9985);
        mpfr_init(r9986);
        mpfr_init(r9987);
        mpfr_init_set_str(r9988, "1.3007239354022815e+303", 10, MPFR_RNDN);
        mpfr_init(r9989);
        mpfr_init(r9990);
        mpfr_init(r9991);
        mpfr_init(r9992);
        mpfr_init(r9993);
        mpfr_init(r9994);
        mpfr_init(r9995);
        mpfr_init(r9996);
        mpfr_init(r9997);
        mpfr_init(r9998);
        mpfr_init(r9999);
        mpfr_init(r10000);
        mpfr_init(r10001);
        mpfr_init(r10002);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r9950, x, MPFR_RNDN);
        mpfr_set_d(r9951, z, MPFR_RNDN);
        mpfr_set_d(r9952, y, MPFR_RNDN);
        mpfr_mul(r9953, r9951, r9952, MPFR_RNDN);
        mpfr_set_d(r9954, t, MPFR_RNDN);
        mpfr_set_d(r9955, a, MPFR_RNDN);
        mpfr_mul(r9956, r9954, r9955, MPFR_RNDN);
        mpfr_sub(r9957, r9953, r9956, MPFR_RNDN);
        mpfr_set_d(r9958, c, MPFR_RNDN);
        mpfr_set_d(r9959, j, MPFR_RNDN);
        mpfr_mul(r9960, r9959, r9954, MPFR_RNDN);
        mpfr_mul(r9961, r9958, r9960, MPFR_RNDN);
        mpfr_fma(r9962, r9950, r9957, r9961, MPFR_RNDN);
        mpfr_mul(r9963, r9958, r9951, MPFR_RNDN);
        mpfr_set_d(r9964, i, MPFR_RNDN);
        mpfr_mul(r9965, r9955, r9964, MPFR_RNDN);
        mpfr_sub(r9966, r9963, r9965, MPFR_RNDN);
        mpfr_set_d(r9967, b, MPFR_RNDN);
        mpfr_mul(r9968, r9959, r9952, MPFR_RNDN);
        mpfr_mul(r9969, r9968, r9964, MPFR_RNDN);
        mpfr_cbrt(r9970, r9969, MPFR_RNDN);
        mpfr_mul(r9971, r9970, r9970, MPFR_RNDN);
        mpfr_mul(r9972, r9971, r9970, MPFR_RNDN);
        mpfr_fma(r9973, r9966, r9967, r9972, MPFR_RNDN);
        mpfr_sub(r9974, r9962, r9973, MPFR_RNDN);
        ;
        mpfr_set_si(r9976, mpfr_cmp(r9974, r9975) <= 0, MPFR_RNDN);
        mpfr_mul(r9977, r9954, r9958, MPFR_RNDN);
        mpfr_mul(r9978, r9952, r9964, MPFR_RNDN);
        mpfr_sub(r9979, r9977, r9978, MPFR_RNDN);
        mpfr_mul(r9980, r9979, r9959, MPFR_RNDN);
        mpfr_mul(r9981, r9967, r9958, MPFR_RNDN);
        mpfr_mul(r9982, r9951, r9981, MPFR_RNDN);
        mpfr_mul(r9983, r9964, r9967, MPFR_RNDN);
        mpfr_mul(r9984, r9955, r9983, MPFR_RNDN);
        mpfr_sub(r9985, r9982, r9984, MPFR_RNDN);
        mpfr_sub(r9986, r9980, r9985, MPFR_RNDN);
        mpfr_fma(r9987, r9957, r9950, r9986, MPFR_RNDN);
        ;
        mpfr_set_si(r9989, mpfr_cmp(r9974, r9988) <= 0, MPFR_RNDN);
        mpfr_mul(r9990, r9958, r9959, MPFR_RNDN);
        mpfr_mul(r9991, r9950, r9955, MPFR_RNDN);
        mpfr_sub(r9992, r9990, r9991, MPFR_RNDN);
        mpfr_mul(r9993, r9952, r9950, MPFR_RNDN);
        mpfr_mul(r9994, r9951, r9993, MPFR_RNDN);
        mpfr_fma(r9995, r9954, r9992, r9994, MPFR_RNDN);
        mpfr_mul(r9996, r9951, r9958, MPFR_RNDN);
        mpfr_sub(r9997, r9996, r9965, MPFR_RNDN);
        mpfr_mul(r9998, r9978, r9959, MPFR_RNDN);
        mpfr_fma(r9999, r9997, r9967, r9998, MPFR_RNDN);
        mpfr_sub(r10000, r9995, r9999, MPFR_RNDN);
        if (mpfr_get_si(r9989, MPFR_RNDN)) { mpfr_set(r10001, r9974, MPFR_RNDN); } else { mpfr_set(r10001, r10000, MPFR_RNDN); };
        if (mpfr_get_si(r9976, MPFR_RNDN)) { mpfr_set(r10002, r9987, MPFR_RNDN); } else { mpfr_set(r10002, r10001, MPFR_RNDN); };
        return mpfr_get_d(r10002, MPFR_RNDN);
}

