#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 r26729 = x;
        float r26730 = y;
        float r26731 = z;
        float r26732 = r26730 * r26731;
        float r26733 = t;
        float r26734 = a;
        float r26735 = r26733 * r26734;
        float r26736 = r26732 - r26735;
        float r26737 = r26729 * r26736;
        float r26738 = b;
        float r26739 = c;
        float r26740 = r26739 * r26731;
        float r26741 = i;
        float r26742 = r26741 * r26734;
        float r26743 = r26740 - r26742;
        float r26744 = r26738 * r26743;
        float r26745 = r26737 - r26744;
        float r26746 = j;
        float r26747 = r26739 * r26733;
        float r26748 = r26741 * r26730;
        float r26749 = r26747 - r26748;
        float r26750 = r26746 * r26749;
        float r26751 = r26745 + r26750;
        return r26751;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26752 = x;
        double r26753 = y;
        double r26754 = z;
        double r26755 = r26753 * r26754;
        double r26756 = t;
        double r26757 = a;
        double r26758 = r26756 * r26757;
        double r26759 = r26755 - r26758;
        double r26760 = r26752 * r26759;
        double r26761 = b;
        double r26762 = c;
        double r26763 = r26762 * r26754;
        double r26764 = i;
        double r26765 = r26764 * r26757;
        double r26766 = r26763 - r26765;
        double r26767 = r26761 * r26766;
        double r26768 = r26760 - r26767;
        double r26769 = j;
        double r26770 = r26762 * r26756;
        double r26771 = r26764 * r26753;
        double r26772 = r26770 - r26771;
        double r26773 = r26769 * r26772;
        double r26774 = r26768 + r26773;
        return r26774;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r26775 = b;
        float r26776 = z;
        float r26777 = c;
        float r26778 = -r26777;
        float r26779 = a;
        float r26780 = i;
        float r26781 = r26779 * r26780;
        float r26782 = fma(r26776, r26778, r26781);
        float r26783 = y;
        float r26784 = r26783 * r26776;
        float r26785 = t;
        float r26786 = r26785 * r26779;
        float r26787 = r26784 - r26786;
        float r26788 = x;
        float r26789 = r26787 * r26788;
        float r26790 = fma(r26775, r26782, r26789);
        float r26791 = -4.003618947400749e+305;
        bool r26792 = r26790 <= r26791;
        float r26793 = r26785 * r26777;
        float r26794 = r26783 * r26780;
        float r26795 = r26793 - r26794;
        float r26796 = j;
        float r26797 = r26775 * r26780;
        float r26798 = r26788 * r26785;
        float r26799 = r26797 - r26798;
        float r26800 = -r26776;
        float r26801 = r26775 * r26777;
        float r26802 = r26800 * r26801;
        float r26803 = fma(r26779, r26799, r26802);
        float r26804 = fma(r26795, r26796, r26803);
        float r26805 = -2.1541483089475933e+148;
        bool r26806 = r26790 <= r26805;
        float r26807 = 1.5754270791658508e+303;
        bool r26808 = r26790 <= r26807;
        float r26809 = cbrt(r26787);
        float r26810 = r26809 * r26809;
        float r26811 = r26810 * r26809;
        float r26812 = r26775 * r26782;
        float r26813 = fma(r26811, r26788, r26812);
        float r26814 = fma(r26796, r26795, r26813);
        float r26815 = r26808 ? r26814 : r26804;
        float r26816 = r26806 ? r26790 : r26815;
        float r26817 = r26792 ? r26804 : r26816;
        return r26817;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26818 = b;
        double r26819 = z;
        double r26820 = c;
        double r26821 = -r26820;
        double r26822 = a;
        double r26823 = i;
        double r26824 = r26822 * r26823;
        double r26825 = fma(r26819, r26821, r26824);
        double r26826 = y;
        double r26827 = r26826 * r26819;
        double r26828 = t;
        double r26829 = r26828 * r26822;
        double r26830 = r26827 - r26829;
        double r26831 = x;
        double r26832 = r26830 * r26831;
        double r26833 = fma(r26818, r26825, r26832);
        double r26834 = -4.003618947400749e+305;
        bool r26835 = r26833 <= r26834;
        double r26836 = r26828 * r26820;
        double r26837 = r26826 * r26823;
        double r26838 = r26836 - r26837;
        double r26839 = j;
        double r26840 = r26818 * r26823;
        double r26841 = r26831 * r26828;
        double r26842 = r26840 - r26841;
        double r26843 = -r26819;
        double r26844 = r26818 * r26820;
        double r26845 = r26843 * r26844;
        double r26846 = fma(r26822, r26842, r26845);
        double r26847 = fma(r26838, r26839, r26846);
        double r26848 = -2.1541483089475933e+148;
        bool r26849 = r26833 <= r26848;
        double r26850 = 1.5754270791658508e+303;
        bool r26851 = r26833 <= r26850;
        double r26852 = cbrt(r26830);
        double r26853 = r26852 * r26852;
        double r26854 = r26853 * r26852;
        double r26855 = r26818 * r26825;
        double r26856 = fma(r26854, r26831, r26855);
        double r26857 = fma(r26839, r26838, r26856);
        double r26858 = r26851 ? r26857 : r26847;
        double r26859 = r26849 ? r26833 : r26858;
        double r26860 = r26835 ? r26847 : r26859;
        return r26860;
}

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 r26861, r26862, r26863, r26864, r26865, r26866, r26867, r26868, r26869, r26870, r26871, r26872, r26873, r26874, r26875, r26876, r26877, r26878, r26879, r26880, r26881, r26882, r26883;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26861);
        mpfr_init(r26862);
        mpfr_init(r26863);
        mpfr_init(r26864);
        mpfr_init(r26865);
        mpfr_init(r26866);
        mpfr_init(r26867);
        mpfr_init(r26868);
        mpfr_init(r26869);
        mpfr_init(r26870);
        mpfr_init(r26871);
        mpfr_init(r26872);
        mpfr_init(r26873);
        mpfr_init(r26874);
        mpfr_init(r26875);
        mpfr_init(r26876);
        mpfr_init(r26877);
        mpfr_init(r26878);
        mpfr_init(r26879);
        mpfr_init(r26880);
        mpfr_init(r26881);
        mpfr_init(r26882);
        mpfr_init(r26883);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26861, x, MPFR_RNDN);
        mpfr_set_d(r26862, y, MPFR_RNDN);
        mpfr_set_d(r26863, z, MPFR_RNDN);
        mpfr_mul(r26864, r26862, r26863, MPFR_RNDN);
        mpfr_set_d(r26865, t, MPFR_RNDN);
        mpfr_set_d(r26866, a, MPFR_RNDN);
        mpfr_mul(r26867, r26865, r26866, MPFR_RNDN);
        mpfr_sub(r26868, r26864, r26867, MPFR_RNDN);
        mpfr_mul(r26869, r26861, r26868, MPFR_RNDN);
        mpfr_set_d(r26870, b, MPFR_RNDN);
        mpfr_set_d(r26871, c, MPFR_RNDN);
        mpfr_mul(r26872, r26871, r26863, MPFR_RNDN);
        mpfr_set_d(r26873, i, MPFR_RNDN);
        mpfr_mul(r26874, r26873, r26866, MPFR_RNDN);
        mpfr_sub(r26875, r26872, r26874, MPFR_RNDN);
        mpfr_mul(r26876, r26870, r26875, MPFR_RNDN);
        mpfr_sub(r26877, r26869, r26876, MPFR_RNDN);
        mpfr_set_d(r26878, j, MPFR_RNDN);
        mpfr_mul(r26879, r26871, r26865, MPFR_RNDN);
        mpfr_mul(r26880, r26873, r26862, MPFR_RNDN);
        mpfr_sub(r26881, r26879, r26880, MPFR_RNDN);
        mpfr_mul(r26882, r26878, r26881, MPFR_RNDN);
        mpfr_add(r26883, r26877, r26882, MPFR_RNDN);
        return mpfr_get_d(r26883, MPFR_RNDN);
}

static mpfr_t r26884, r26885, r26886, r26887, r26888, r26889, r26890, r26891, r26892, r26893, r26894, r26895, r26896, r26897, r26898, r26899, r26900, r26901, r26902, r26903, r26904, r26905, r26906, r26907, r26908, r26909, r26910, r26911, r26912, r26913, r26914, r26915, r26916, r26917, r26918, r26919, r26920, r26921, r26922, r26923, r26924, r26925, r26926;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26884);
        mpfr_init(r26885);
        mpfr_init(r26886);
        mpfr_init(r26887);
        mpfr_init(r26888);
        mpfr_init(r26889);
        mpfr_init(r26890);
        mpfr_init(r26891);
        mpfr_init(r26892);
        mpfr_init(r26893);
        mpfr_init(r26894);
        mpfr_init(r26895);
        mpfr_init(r26896);
        mpfr_init(r26897);
        mpfr_init(r26898);
        mpfr_init(r26899);
        mpfr_init_set_str(r26900, "-4.003618947400749e+305", 10, MPFR_RNDN);
        mpfr_init(r26901);
        mpfr_init(r26902);
        mpfr_init(r26903);
        mpfr_init(r26904);
        mpfr_init(r26905);
        mpfr_init(r26906);
        mpfr_init(r26907);
        mpfr_init(r26908);
        mpfr_init(r26909);
        mpfr_init(r26910);
        mpfr_init(r26911);
        mpfr_init(r26912);
        mpfr_init(r26913);
        mpfr_init_set_str(r26914, "-2.1541483089475933e+148", 10, MPFR_RNDN);
        mpfr_init(r26915);
        mpfr_init_set_str(r26916, "1.5754270791658508e+303", 10, MPFR_RNDN);
        mpfr_init(r26917);
        mpfr_init(r26918);
        mpfr_init(r26919);
        mpfr_init(r26920);
        mpfr_init(r26921);
        mpfr_init(r26922);
        mpfr_init(r26923);
        mpfr_init(r26924);
        mpfr_init(r26925);
        mpfr_init(r26926);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26884, b, MPFR_RNDN);
        mpfr_set_d(r26885, z, MPFR_RNDN);
        mpfr_set_d(r26886, c, MPFR_RNDN);
        mpfr_neg(r26887, r26886, MPFR_RNDN);
        mpfr_set_d(r26888, a, MPFR_RNDN);
        mpfr_set_d(r26889, i, MPFR_RNDN);
        mpfr_mul(r26890, r26888, r26889, MPFR_RNDN);
        mpfr_fma(r26891, r26885, r26887, r26890, MPFR_RNDN);
        mpfr_set_d(r26892, y, MPFR_RNDN);
        mpfr_mul(r26893, r26892, r26885, MPFR_RNDN);
        mpfr_set_d(r26894, t, MPFR_RNDN);
        mpfr_mul(r26895, r26894, r26888, MPFR_RNDN);
        mpfr_sub(r26896, r26893, r26895, MPFR_RNDN);
        mpfr_set_d(r26897, x, MPFR_RNDN);
        mpfr_mul(r26898, r26896, r26897, MPFR_RNDN);
        mpfr_fma(r26899, r26884, r26891, r26898, MPFR_RNDN);
        ;
        mpfr_set_si(r26901, mpfr_cmp(r26899, r26900) <= 0, MPFR_RNDN);
        mpfr_mul(r26902, r26894, r26886, MPFR_RNDN);
        mpfr_mul(r26903, r26892, r26889, MPFR_RNDN);
        mpfr_sub(r26904, r26902, r26903, MPFR_RNDN);
        mpfr_set_d(r26905, j, MPFR_RNDN);
        mpfr_mul(r26906, r26884, r26889, MPFR_RNDN);
        mpfr_mul(r26907, r26897, r26894, MPFR_RNDN);
        mpfr_sub(r26908, r26906, r26907, MPFR_RNDN);
        mpfr_neg(r26909, r26885, MPFR_RNDN);
        mpfr_mul(r26910, r26884, r26886, MPFR_RNDN);
        mpfr_mul(r26911, r26909, r26910, MPFR_RNDN);
        mpfr_fma(r26912, r26888, r26908, r26911, MPFR_RNDN);
        mpfr_fma(r26913, r26904, r26905, r26912, MPFR_RNDN);
        ;
        mpfr_set_si(r26915, mpfr_cmp(r26899, r26914) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26917, mpfr_cmp(r26899, r26916) <= 0, MPFR_RNDN);
        mpfr_cbrt(r26918, r26896, MPFR_RNDN);
        mpfr_mul(r26919, r26918, r26918, MPFR_RNDN);
        mpfr_mul(r26920, r26919, r26918, MPFR_RNDN);
        mpfr_mul(r26921, r26884, r26891, MPFR_RNDN);
        mpfr_fma(r26922, r26920, r26897, r26921, MPFR_RNDN);
        mpfr_fma(r26923, r26905, r26904, r26922, MPFR_RNDN);
        if (mpfr_get_si(r26917, MPFR_RNDN)) { mpfr_set(r26924, r26923, MPFR_RNDN); } else { mpfr_set(r26924, r26913, MPFR_RNDN); };
        if (mpfr_get_si(r26915, MPFR_RNDN)) { mpfr_set(r26925, r26899, MPFR_RNDN); } else { mpfr_set(r26925, r26924, MPFR_RNDN); };
        if (mpfr_get_si(r26901, MPFR_RNDN)) { mpfr_set(r26926, r26913, MPFR_RNDN); } else { mpfr_set(r26926, r26925, MPFR_RNDN); };
        return mpfr_get_d(r26926, MPFR_RNDN);
}

static mpfr_t r26927, r26928, r26929, r26930, r26931, r26932, r26933, r26934, r26935, r26936, r26937, r26938, r26939, r26940, r26941, r26942, r26943, r26944, r26945, r26946, r26947, r26948, r26949, r26950, r26951, r26952, r26953, r26954, r26955, r26956, r26957, r26958, r26959, r26960, r26961, r26962, r26963, r26964, r26965, r26966, r26967, r26968, r26969;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26927);
        mpfr_init(r26928);
        mpfr_init(r26929);
        mpfr_init(r26930);
        mpfr_init(r26931);
        mpfr_init(r26932);
        mpfr_init(r26933);
        mpfr_init(r26934);
        mpfr_init(r26935);
        mpfr_init(r26936);
        mpfr_init(r26937);
        mpfr_init(r26938);
        mpfr_init(r26939);
        mpfr_init(r26940);
        mpfr_init(r26941);
        mpfr_init(r26942);
        mpfr_init_set_str(r26943, "-4.003618947400749e+305", 10, MPFR_RNDN);
        mpfr_init(r26944);
        mpfr_init(r26945);
        mpfr_init(r26946);
        mpfr_init(r26947);
        mpfr_init(r26948);
        mpfr_init(r26949);
        mpfr_init(r26950);
        mpfr_init(r26951);
        mpfr_init(r26952);
        mpfr_init(r26953);
        mpfr_init(r26954);
        mpfr_init(r26955);
        mpfr_init(r26956);
        mpfr_init_set_str(r26957, "-2.1541483089475933e+148", 10, MPFR_RNDN);
        mpfr_init(r26958);
        mpfr_init_set_str(r26959, "1.5754270791658508e+303", 10, MPFR_RNDN);
        mpfr_init(r26960);
        mpfr_init(r26961);
        mpfr_init(r26962);
        mpfr_init(r26963);
        mpfr_init(r26964);
        mpfr_init(r26965);
        mpfr_init(r26966);
        mpfr_init(r26967);
        mpfr_init(r26968);
        mpfr_init(r26969);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26927, b, MPFR_RNDN);
        mpfr_set_d(r26928, z, MPFR_RNDN);
        mpfr_set_d(r26929, c, MPFR_RNDN);
        mpfr_neg(r26930, r26929, MPFR_RNDN);
        mpfr_set_d(r26931, a, MPFR_RNDN);
        mpfr_set_d(r26932, i, MPFR_RNDN);
        mpfr_mul(r26933, r26931, r26932, MPFR_RNDN);
        mpfr_fma(r26934, r26928, r26930, r26933, MPFR_RNDN);
        mpfr_set_d(r26935, y, MPFR_RNDN);
        mpfr_mul(r26936, r26935, r26928, MPFR_RNDN);
        mpfr_set_d(r26937, t, MPFR_RNDN);
        mpfr_mul(r26938, r26937, r26931, MPFR_RNDN);
        mpfr_sub(r26939, r26936, r26938, MPFR_RNDN);
        mpfr_set_d(r26940, x, MPFR_RNDN);
        mpfr_mul(r26941, r26939, r26940, MPFR_RNDN);
        mpfr_fma(r26942, r26927, r26934, r26941, MPFR_RNDN);
        ;
        mpfr_set_si(r26944, mpfr_cmp(r26942, r26943) <= 0, MPFR_RNDN);
        mpfr_mul(r26945, r26937, r26929, MPFR_RNDN);
        mpfr_mul(r26946, r26935, r26932, MPFR_RNDN);
        mpfr_sub(r26947, r26945, r26946, MPFR_RNDN);
        mpfr_set_d(r26948, j, MPFR_RNDN);
        mpfr_mul(r26949, r26927, r26932, MPFR_RNDN);
        mpfr_mul(r26950, r26940, r26937, MPFR_RNDN);
        mpfr_sub(r26951, r26949, r26950, MPFR_RNDN);
        mpfr_neg(r26952, r26928, MPFR_RNDN);
        mpfr_mul(r26953, r26927, r26929, MPFR_RNDN);
        mpfr_mul(r26954, r26952, r26953, MPFR_RNDN);
        mpfr_fma(r26955, r26931, r26951, r26954, MPFR_RNDN);
        mpfr_fma(r26956, r26947, r26948, r26955, MPFR_RNDN);
        ;
        mpfr_set_si(r26958, mpfr_cmp(r26942, r26957) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26960, mpfr_cmp(r26942, r26959) <= 0, MPFR_RNDN);
        mpfr_cbrt(r26961, r26939, MPFR_RNDN);
        mpfr_mul(r26962, r26961, r26961, MPFR_RNDN);
        mpfr_mul(r26963, r26962, r26961, MPFR_RNDN);
        mpfr_mul(r26964, r26927, r26934, MPFR_RNDN);
        mpfr_fma(r26965, r26963, r26940, r26964, MPFR_RNDN);
        mpfr_fma(r26966, r26948, r26947, r26965, MPFR_RNDN);
        if (mpfr_get_si(r26960, MPFR_RNDN)) { mpfr_set(r26967, r26966, MPFR_RNDN); } else { mpfr_set(r26967, r26956, MPFR_RNDN); };
        if (mpfr_get_si(r26958, MPFR_RNDN)) { mpfr_set(r26968, r26942, MPFR_RNDN); } else { mpfr_set(r26968, r26967, MPFR_RNDN); };
        if (mpfr_get_si(r26944, MPFR_RNDN)) { mpfr_set(r26969, r26956, MPFR_RNDN); } else { mpfr_set(r26969, r26968, MPFR_RNDN); };
        return mpfr_get_d(r26969, MPFR_RNDN);
}

