#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 r29758 = x;
        float r29759 = y;
        float r29760 = z;
        float r29761 = r29759 * r29760;
        float r29762 = t;
        float r29763 = a;
        float r29764 = r29762 * r29763;
        float r29765 = r29761 - r29764;
        float r29766 = r29758 * r29765;
        float r29767 = b;
        float r29768 = c;
        float r29769 = r29768 * r29760;
        float r29770 = i;
        float r29771 = r29770 * r29763;
        float r29772 = r29769 - r29771;
        float r29773 = r29767 * r29772;
        float r29774 = r29766 - r29773;
        float r29775 = j;
        float r29776 = r29768 * r29762;
        float r29777 = r29770 * r29759;
        float r29778 = r29776 - r29777;
        float r29779 = r29775 * r29778;
        float r29780 = r29774 + r29779;
        return r29780;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r29781 = x;
        double r29782 = y;
        double r29783 = z;
        double r29784 = r29782 * r29783;
        double r29785 = t;
        double r29786 = a;
        double r29787 = r29785 * r29786;
        double r29788 = r29784 - r29787;
        double r29789 = r29781 * r29788;
        double r29790 = b;
        double r29791 = c;
        double r29792 = r29791 * r29783;
        double r29793 = i;
        double r29794 = r29793 * r29786;
        double r29795 = r29792 - r29794;
        double r29796 = r29790 * r29795;
        double r29797 = r29789 - r29796;
        double r29798 = j;
        double r29799 = r29791 * r29785;
        double r29800 = r29793 * r29782;
        double r29801 = r29799 - r29800;
        double r29802 = r29798 * r29801;
        double r29803 = r29797 + r29802;
        return r29803;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r29804 = y;
        float r29805 = -2.695791018707365e-48;
        bool r29806 = r29804 <= r29805;
        float r29807 = j;
        float r29808 = c;
        float r29809 = t;
        float r29810 = r29808 * r29809;
        float r29811 = r29807 * r29810;
        float r29812 = a;
        float r29813 = r29812 * r29809;
        float r29814 = x;
        float r29815 = -r29814;
        float r29816 = r29813 * r29815;
        float r29817 = r29811 + r29816;
        float r29818 = b;
        float r29819 = z;
        float r29820 = r29808 * r29819;
        float r29821 = i;
        float r29822 = r29821 * r29812;
        float r29823 = r29820 - r29822;
        float r29824 = r29818 * r29823;
        float r29825 = r29817 - r29824;
        float r29826 = r29814 * r29819;
        float r29827 = r29807 * r29821;
        float r29828 = r29826 - r29827;
        float r29829 = r29828 * r29804;
        float r29830 = r29825 + r29829;
        float r29831 = 3.434074777275514e-112;
        bool r29832 = r29804 <= r29831;
        float r29833 = r29804 * r29819;
        float r29834 = r29809 * r29812;
        float r29835 = r29833 - r29834;
        float r29836 = r29814 * r29835;
        float r29837 = r29836 - r29824;
        float r29838 = r29821 * r29804;
        float r29839 = r29810 - r29838;
        float r29840 = cbrt(r29839);
        float r29841 = r29840 * r29840;
        float r29842 = r29807 * r29841;
        float r29843 = r29842 * r29840;
        float r29844 = r29837 + r29843;
        float r29845 = r29832 ? r29844 : r29830;
        float r29846 = r29806 ? r29830 : r29845;
        return r29846;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r29847 = y;
        double r29848 = -2.695791018707365e-48;
        bool r29849 = r29847 <= r29848;
        double r29850 = j;
        double r29851 = c;
        double r29852 = t;
        double r29853 = r29851 * r29852;
        double r29854 = r29850 * r29853;
        double r29855 = a;
        double r29856 = r29855 * r29852;
        double r29857 = x;
        double r29858 = -r29857;
        double r29859 = r29856 * r29858;
        double r29860 = r29854 + r29859;
        double r29861 = b;
        double r29862 = z;
        double r29863 = r29851 * r29862;
        double r29864 = i;
        double r29865 = r29864 * r29855;
        double r29866 = r29863 - r29865;
        double r29867 = r29861 * r29866;
        double r29868 = r29860 - r29867;
        double r29869 = r29857 * r29862;
        double r29870 = r29850 * r29864;
        double r29871 = r29869 - r29870;
        double r29872 = r29871 * r29847;
        double r29873 = r29868 + r29872;
        double r29874 = 3.434074777275514e-112;
        bool r29875 = r29847 <= r29874;
        double r29876 = r29847 * r29862;
        double r29877 = r29852 * r29855;
        double r29878 = r29876 - r29877;
        double r29879 = r29857 * r29878;
        double r29880 = r29879 - r29867;
        double r29881 = r29864 * r29847;
        double r29882 = r29853 - r29881;
        double r29883 = cbrt(r29882);
        double r29884 = r29883 * r29883;
        double r29885 = r29850 * r29884;
        double r29886 = r29885 * r29883;
        double r29887 = r29880 + r29886;
        double r29888 = r29875 ? r29887 : r29873;
        double r29889 = r29849 ? r29873 : r29888;
        return r29889;
}

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 r29890, r29891, r29892, r29893, r29894, r29895, r29896, r29897, r29898, r29899, r29900, r29901, r29902, r29903, r29904, r29905, r29906, r29907, r29908, r29909, r29910, r29911, r29912;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29890);
        mpfr_init(r29891);
        mpfr_init(r29892);
        mpfr_init(r29893);
        mpfr_init(r29894);
        mpfr_init(r29895);
        mpfr_init(r29896);
        mpfr_init(r29897);
        mpfr_init(r29898);
        mpfr_init(r29899);
        mpfr_init(r29900);
        mpfr_init(r29901);
        mpfr_init(r29902);
        mpfr_init(r29903);
        mpfr_init(r29904);
        mpfr_init(r29905);
        mpfr_init(r29906);
        mpfr_init(r29907);
        mpfr_init(r29908);
        mpfr_init(r29909);
        mpfr_init(r29910);
        mpfr_init(r29911);
        mpfr_init(r29912);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29890, x, MPFR_RNDN);
        mpfr_set_d(r29891, y, MPFR_RNDN);
        mpfr_set_d(r29892, z, MPFR_RNDN);
        mpfr_mul(r29893, r29891, r29892, MPFR_RNDN);
        mpfr_set_d(r29894, t, MPFR_RNDN);
        mpfr_set_d(r29895, a, MPFR_RNDN);
        mpfr_mul(r29896, r29894, r29895, MPFR_RNDN);
        mpfr_sub(r29897, r29893, r29896, MPFR_RNDN);
        mpfr_mul(r29898, r29890, r29897, MPFR_RNDN);
        mpfr_set_d(r29899, b, MPFR_RNDN);
        mpfr_set_d(r29900, c, MPFR_RNDN);
        mpfr_mul(r29901, r29900, r29892, MPFR_RNDN);
        mpfr_set_d(r29902, i, MPFR_RNDN);
        mpfr_mul(r29903, r29902, r29895, MPFR_RNDN);
        mpfr_sub(r29904, r29901, r29903, MPFR_RNDN);
        mpfr_mul(r29905, r29899, r29904, MPFR_RNDN);
        mpfr_sub(r29906, r29898, r29905, MPFR_RNDN);
        mpfr_set_d(r29907, j, MPFR_RNDN);
        mpfr_mul(r29908, r29900, r29894, MPFR_RNDN);
        mpfr_mul(r29909, r29902, r29891, MPFR_RNDN);
        mpfr_sub(r29910, r29908, r29909, MPFR_RNDN);
        mpfr_mul(r29911, r29907, r29910, MPFR_RNDN);
        mpfr_add(r29912, r29906, r29911, MPFR_RNDN);
        return mpfr_get_d(r29912, MPFR_RNDN);
}

static mpfr_t r29913, r29914, r29915, r29916, r29917, r29918, r29919, r29920, r29921, r29922, r29923, r29924, r29925, r29926, r29927, r29928, r29929, r29930, r29931, r29932, r29933, r29934, r29935, r29936, r29937, r29938, r29939, r29940, r29941, r29942, r29943, r29944, r29945, r29946, r29947, r29948, r29949, r29950, r29951, r29952, r29953, r29954, r29955;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29913);
        mpfr_init_set_str(r29914, "-2.695791018707365e-48", 10, MPFR_RNDN);
        mpfr_init(r29915);
        mpfr_init(r29916);
        mpfr_init(r29917);
        mpfr_init(r29918);
        mpfr_init(r29919);
        mpfr_init(r29920);
        mpfr_init(r29921);
        mpfr_init(r29922);
        mpfr_init(r29923);
        mpfr_init(r29924);
        mpfr_init(r29925);
        mpfr_init(r29926);
        mpfr_init(r29927);
        mpfr_init(r29928);
        mpfr_init(r29929);
        mpfr_init(r29930);
        mpfr_init(r29931);
        mpfr_init(r29932);
        mpfr_init(r29933);
        mpfr_init(r29934);
        mpfr_init(r29935);
        mpfr_init(r29936);
        mpfr_init(r29937);
        mpfr_init(r29938);
        mpfr_init(r29939);
        mpfr_init_set_str(r29940, "3.434074777275514e-112", 10, MPFR_RNDN);
        mpfr_init(r29941);
        mpfr_init(r29942);
        mpfr_init(r29943);
        mpfr_init(r29944);
        mpfr_init(r29945);
        mpfr_init(r29946);
        mpfr_init(r29947);
        mpfr_init(r29948);
        mpfr_init(r29949);
        mpfr_init(r29950);
        mpfr_init(r29951);
        mpfr_init(r29952);
        mpfr_init(r29953);
        mpfr_init(r29954);
        mpfr_init(r29955);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29913, y, MPFR_RNDN);
        ;
        mpfr_set_si(r29915, mpfr_cmp(r29913, r29914) <= 0, MPFR_RNDN);
        mpfr_set_d(r29916, j, MPFR_RNDN);
        mpfr_set_d(r29917, c, MPFR_RNDN);
        mpfr_set_d(r29918, t, MPFR_RNDN);
        mpfr_mul(r29919, r29917, r29918, MPFR_RNDN);
        mpfr_mul(r29920, r29916, r29919, MPFR_RNDN);
        mpfr_set_d(r29921, a, MPFR_RNDN);
        mpfr_mul(r29922, r29921, r29918, MPFR_RNDN);
        mpfr_set_d(r29923, x, MPFR_RNDN);
        mpfr_neg(r29924, r29923, MPFR_RNDN);
        mpfr_mul(r29925, r29922, r29924, MPFR_RNDN);
        mpfr_add(r29926, r29920, r29925, MPFR_RNDN);
        mpfr_set_d(r29927, b, MPFR_RNDN);
        mpfr_set_d(r29928, z, MPFR_RNDN);
        mpfr_mul(r29929, r29917, r29928, MPFR_RNDN);
        mpfr_set_d(r29930, i, MPFR_RNDN);
        mpfr_mul(r29931, r29930, r29921, MPFR_RNDN);
        mpfr_sub(r29932, r29929, r29931, MPFR_RNDN);
        mpfr_mul(r29933, r29927, r29932, MPFR_RNDN);
        mpfr_sub(r29934, r29926, r29933, MPFR_RNDN);
        mpfr_mul(r29935, r29923, r29928, MPFR_RNDN);
        mpfr_mul(r29936, r29916, r29930, MPFR_RNDN);
        mpfr_sub(r29937, r29935, r29936, MPFR_RNDN);
        mpfr_mul(r29938, r29937, r29913, MPFR_RNDN);
        mpfr_add(r29939, r29934, r29938, MPFR_RNDN);
        ;
        mpfr_set_si(r29941, mpfr_cmp(r29913, r29940) <= 0, MPFR_RNDN);
        mpfr_mul(r29942, r29913, r29928, MPFR_RNDN);
        mpfr_mul(r29943, r29918, r29921, MPFR_RNDN);
        mpfr_sub(r29944, r29942, r29943, MPFR_RNDN);
        mpfr_mul(r29945, r29923, r29944, MPFR_RNDN);
        mpfr_sub(r29946, r29945, r29933, MPFR_RNDN);
        mpfr_mul(r29947, r29930, r29913, MPFR_RNDN);
        mpfr_sub(r29948, r29919, r29947, MPFR_RNDN);
        mpfr_cbrt(r29949, r29948, MPFR_RNDN);
        mpfr_mul(r29950, r29949, r29949, MPFR_RNDN);
        mpfr_mul(r29951, r29916, r29950, MPFR_RNDN);
        mpfr_mul(r29952, r29951, r29949, MPFR_RNDN);
        mpfr_add(r29953, r29946, r29952, MPFR_RNDN);
        if (mpfr_get_si(r29941, MPFR_RNDN)) { mpfr_set(r29954, r29953, MPFR_RNDN); } else { mpfr_set(r29954, r29939, MPFR_RNDN); };
        if (mpfr_get_si(r29915, MPFR_RNDN)) { mpfr_set(r29955, r29939, MPFR_RNDN); } else { mpfr_set(r29955, r29954, MPFR_RNDN); };
        return mpfr_get_d(r29955, MPFR_RNDN);
}

static mpfr_t r29956, r29957, r29958, r29959, r29960, r29961, r29962, r29963, r29964, r29965, r29966, r29967, r29968, r29969, r29970, r29971, r29972, r29973, r29974, r29975, r29976, r29977, r29978, r29979, r29980, r29981, r29982, r29983, r29984, r29985, r29986, r29987, r29988, r29989, r29990, r29991, r29992, r29993, r29994, r29995, r29996, r29997, r29998;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29956);
        mpfr_init_set_str(r29957, "-2.695791018707365e-48", 10, MPFR_RNDN);
        mpfr_init(r29958);
        mpfr_init(r29959);
        mpfr_init(r29960);
        mpfr_init(r29961);
        mpfr_init(r29962);
        mpfr_init(r29963);
        mpfr_init(r29964);
        mpfr_init(r29965);
        mpfr_init(r29966);
        mpfr_init(r29967);
        mpfr_init(r29968);
        mpfr_init(r29969);
        mpfr_init(r29970);
        mpfr_init(r29971);
        mpfr_init(r29972);
        mpfr_init(r29973);
        mpfr_init(r29974);
        mpfr_init(r29975);
        mpfr_init(r29976);
        mpfr_init(r29977);
        mpfr_init(r29978);
        mpfr_init(r29979);
        mpfr_init(r29980);
        mpfr_init(r29981);
        mpfr_init(r29982);
        mpfr_init_set_str(r29983, "3.434074777275514e-112", 10, MPFR_RNDN);
        mpfr_init(r29984);
        mpfr_init(r29985);
        mpfr_init(r29986);
        mpfr_init(r29987);
        mpfr_init(r29988);
        mpfr_init(r29989);
        mpfr_init(r29990);
        mpfr_init(r29991);
        mpfr_init(r29992);
        mpfr_init(r29993);
        mpfr_init(r29994);
        mpfr_init(r29995);
        mpfr_init(r29996);
        mpfr_init(r29997);
        mpfr_init(r29998);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29956, y, MPFR_RNDN);
        ;
        mpfr_set_si(r29958, mpfr_cmp(r29956, r29957) <= 0, MPFR_RNDN);
        mpfr_set_d(r29959, j, MPFR_RNDN);
        mpfr_set_d(r29960, c, MPFR_RNDN);
        mpfr_set_d(r29961, t, MPFR_RNDN);
        mpfr_mul(r29962, r29960, r29961, MPFR_RNDN);
        mpfr_mul(r29963, r29959, r29962, MPFR_RNDN);
        mpfr_set_d(r29964, a, MPFR_RNDN);
        mpfr_mul(r29965, r29964, r29961, MPFR_RNDN);
        mpfr_set_d(r29966, x, MPFR_RNDN);
        mpfr_neg(r29967, r29966, MPFR_RNDN);
        mpfr_mul(r29968, r29965, r29967, MPFR_RNDN);
        mpfr_add(r29969, r29963, r29968, MPFR_RNDN);
        mpfr_set_d(r29970, b, MPFR_RNDN);
        mpfr_set_d(r29971, z, MPFR_RNDN);
        mpfr_mul(r29972, r29960, r29971, MPFR_RNDN);
        mpfr_set_d(r29973, i, MPFR_RNDN);
        mpfr_mul(r29974, r29973, r29964, MPFR_RNDN);
        mpfr_sub(r29975, r29972, r29974, MPFR_RNDN);
        mpfr_mul(r29976, r29970, r29975, MPFR_RNDN);
        mpfr_sub(r29977, r29969, r29976, MPFR_RNDN);
        mpfr_mul(r29978, r29966, r29971, MPFR_RNDN);
        mpfr_mul(r29979, r29959, r29973, MPFR_RNDN);
        mpfr_sub(r29980, r29978, r29979, MPFR_RNDN);
        mpfr_mul(r29981, r29980, r29956, MPFR_RNDN);
        mpfr_add(r29982, r29977, r29981, MPFR_RNDN);
        ;
        mpfr_set_si(r29984, mpfr_cmp(r29956, r29983) <= 0, MPFR_RNDN);
        mpfr_mul(r29985, r29956, r29971, MPFR_RNDN);
        mpfr_mul(r29986, r29961, r29964, MPFR_RNDN);
        mpfr_sub(r29987, r29985, r29986, MPFR_RNDN);
        mpfr_mul(r29988, r29966, r29987, MPFR_RNDN);
        mpfr_sub(r29989, r29988, r29976, MPFR_RNDN);
        mpfr_mul(r29990, r29973, r29956, MPFR_RNDN);
        mpfr_sub(r29991, r29962, r29990, MPFR_RNDN);
        mpfr_cbrt(r29992, r29991, MPFR_RNDN);
        mpfr_mul(r29993, r29992, r29992, MPFR_RNDN);
        mpfr_mul(r29994, r29959, r29993, MPFR_RNDN);
        mpfr_mul(r29995, r29994, r29992, MPFR_RNDN);
        mpfr_add(r29996, r29989, r29995, MPFR_RNDN);
        if (mpfr_get_si(r29984, MPFR_RNDN)) { mpfr_set(r29997, r29996, MPFR_RNDN); } else { mpfr_set(r29997, r29982, MPFR_RNDN); };
        if (mpfr_get_si(r29958, MPFR_RNDN)) { mpfr_set(r29998, r29982, MPFR_RNDN); } else { mpfr_set(r29998, r29997, MPFR_RNDN); };
        return mpfr_get_d(r29998, MPFR_RNDN);
}

