#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 r47802 = x;
        float r47803 = y;
        float r47804 = z;
        float r47805 = r47803 * r47804;
        float r47806 = t;
        float r47807 = a;
        float r47808 = r47806 * r47807;
        float r47809 = r47805 - r47808;
        float r47810 = r47802 * r47809;
        float r47811 = b;
        float r47812 = c;
        float r47813 = r47812 * r47804;
        float r47814 = i;
        float r47815 = r47814 * r47807;
        float r47816 = r47813 - r47815;
        float r47817 = r47811 * r47816;
        float r47818 = r47810 - r47817;
        float r47819 = j;
        float r47820 = r47812 * r47806;
        float r47821 = r47814 * r47803;
        float r47822 = r47820 - r47821;
        float r47823 = r47819 * r47822;
        float r47824 = r47818 + r47823;
        return r47824;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r47825 = x;
        double r47826 = y;
        double r47827 = z;
        double r47828 = r47826 * r47827;
        double r47829 = t;
        double r47830 = a;
        double r47831 = r47829 * r47830;
        double r47832 = r47828 - r47831;
        double r47833 = r47825 * r47832;
        double r47834 = b;
        double r47835 = c;
        double r47836 = r47835 * r47827;
        double r47837 = i;
        double r47838 = r47837 * r47830;
        double r47839 = r47836 - r47838;
        double r47840 = r47834 * r47839;
        double r47841 = r47833 - r47840;
        double r47842 = j;
        double r47843 = r47835 * r47829;
        double r47844 = r47837 * r47826;
        double r47845 = r47843 - r47844;
        double r47846 = r47842 * r47845;
        double r47847 = r47841 + r47846;
        return r47847;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r47848 = x;
        float r47849 = -2.8672604767171556e+124;
        bool r47850 = r47848 <= r47849;
        float r47851 = y;
        float r47852 = z;
        float r47853 = r47851 * r47852;
        float r47854 = t;
        float r47855 = a;
        float r47856 = r47854 * r47855;
        float r47857 = r47853 - r47856;
        float r47858 = r47848 * r47857;
        float r47859 = b;
        float r47860 = c;
        float r47861 = r47860 * r47852;
        float r47862 = i;
        float r47863 = r47862 * r47855;
        float r47864 = r47861 - r47863;
        float r47865 = cbrt(r47864);
        float r47866 = r47865 * r47865;
        float r47867 = r47859 * r47866;
        float r47868 = r47867 * r47865;
        float r47869 = r47858 - r47868;
        float r47870 = j;
        float r47871 = r47860 * r47854;
        float r47872 = r47862 * r47851;
        float r47873 = r47871 - r47872;
        float r47874 = r47870 * r47873;
        float r47875 = r47869 + r47874;
        float r47876 = 4.918058634484688e+125;
        bool r47877 = r47848 <= r47876;
        float r47878 = -r47855;
        float r47879 = r47854 * r47848;
        float r47880 = r47878 * r47879;
        float r47881 = r47848 * r47852;
        float r47882 = r47881 * r47851;
        float r47883 = r47880 + r47882;
        float r47884 = r47851 * r47862;
        float r47885 = r47871 - r47884;
        float r47886 = r47870 * r47885;
        float r47887 = r47883 + r47886;
        float r47888 = r47852 * r47860;
        float r47889 = r47888 - r47863;
        float r47890 = r47889 * r47859;
        float r47891 = r47887 - r47890;
        float r47892 = r47877 ? r47891 : r47875;
        float r47893 = r47850 ? r47875 : r47892;
        return r47893;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r47894 = x;
        double r47895 = -2.8672604767171556e+124;
        bool r47896 = r47894 <= r47895;
        double r47897 = y;
        double r47898 = z;
        double r47899 = r47897 * r47898;
        double r47900 = t;
        double r47901 = a;
        double r47902 = r47900 * r47901;
        double r47903 = r47899 - r47902;
        double r47904 = r47894 * r47903;
        double r47905 = b;
        double r47906 = c;
        double r47907 = r47906 * r47898;
        double r47908 = i;
        double r47909 = r47908 * r47901;
        double r47910 = r47907 - r47909;
        double r47911 = cbrt(r47910);
        double r47912 = r47911 * r47911;
        double r47913 = r47905 * r47912;
        double r47914 = r47913 * r47911;
        double r47915 = r47904 - r47914;
        double r47916 = j;
        double r47917 = r47906 * r47900;
        double r47918 = r47908 * r47897;
        double r47919 = r47917 - r47918;
        double r47920 = r47916 * r47919;
        double r47921 = r47915 + r47920;
        double r47922 = 4.918058634484688e+125;
        bool r47923 = r47894 <= r47922;
        double r47924 = -r47901;
        double r47925 = r47900 * r47894;
        double r47926 = r47924 * r47925;
        double r47927 = r47894 * r47898;
        double r47928 = r47927 * r47897;
        double r47929 = r47926 + r47928;
        double r47930 = r47897 * r47908;
        double r47931 = r47917 - r47930;
        double r47932 = r47916 * r47931;
        double r47933 = r47929 + r47932;
        double r47934 = r47898 * r47906;
        double r47935 = r47934 - r47909;
        double r47936 = r47935 * r47905;
        double r47937 = r47933 - r47936;
        double r47938 = r47923 ? r47937 : r47921;
        double r47939 = r47896 ? r47921 : r47938;
        return r47939;
}

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 r47940, r47941, r47942, r47943, r47944, r47945, r47946, r47947, r47948, r47949, r47950, r47951, r47952, r47953, r47954, r47955, r47956, r47957, r47958, r47959, r47960, r47961, r47962;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r47940);
        mpfr_init(r47941);
        mpfr_init(r47942);
        mpfr_init(r47943);
        mpfr_init(r47944);
        mpfr_init(r47945);
        mpfr_init(r47946);
        mpfr_init(r47947);
        mpfr_init(r47948);
        mpfr_init(r47949);
        mpfr_init(r47950);
        mpfr_init(r47951);
        mpfr_init(r47952);
        mpfr_init(r47953);
        mpfr_init(r47954);
        mpfr_init(r47955);
        mpfr_init(r47956);
        mpfr_init(r47957);
        mpfr_init(r47958);
        mpfr_init(r47959);
        mpfr_init(r47960);
        mpfr_init(r47961);
        mpfr_init(r47962);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r47940, x, MPFR_RNDN);
        mpfr_set_d(r47941, y, MPFR_RNDN);
        mpfr_set_d(r47942, z, MPFR_RNDN);
        mpfr_mul(r47943, r47941, r47942, MPFR_RNDN);
        mpfr_set_d(r47944, t, MPFR_RNDN);
        mpfr_set_d(r47945, a, MPFR_RNDN);
        mpfr_mul(r47946, r47944, r47945, MPFR_RNDN);
        mpfr_sub(r47947, r47943, r47946, MPFR_RNDN);
        mpfr_mul(r47948, r47940, r47947, MPFR_RNDN);
        mpfr_set_d(r47949, b, MPFR_RNDN);
        mpfr_set_d(r47950, c, MPFR_RNDN);
        mpfr_mul(r47951, r47950, r47942, MPFR_RNDN);
        mpfr_set_d(r47952, i, MPFR_RNDN);
        mpfr_mul(r47953, r47952, r47945, MPFR_RNDN);
        mpfr_sub(r47954, r47951, r47953, MPFR_RNDN);
        mpfr_mul(r47955, r47949, r47954, MPFR_RNDN);
        mpfr_sub(r47956, r47948, r47955, MPFR_RNDN);
        mpfr_set_d(r47957, j, MPFR_RNDN);
        mpfr_mul(r47958, r47950, r47944, MPFR_RNDN);
        mpfr_mul(r47959, r47952, r47941, MPFR_RNDN);
        mpfr_sub(r47960, r47958, r47959, MPFR_RNDN);
        mpfr_mul(r47961, r47957, r47960, MPFR_RNDN);
        mpfr_add(r47962, r47956, r47961, MPFR_RNDN);
        return mpfr_get_d(r47962, MPFR_RNDN);
}

static mpfr_t r47963, r47964, r47965, r47966, r47967, r47968, r47969, r47970, r47971, r47972, r47973, r47974, r47975, r47976, r47977, r47978, r47979, r47980, r47981, r47982, r47983, r47984, r47985, r47986, r47987, r47988, r47989, r47990, r47991, r47992, r47993, r47994, r47995, r47996, r47997, r47998, r47999, r48000, r48001, r48002, r48003, r48004, r48005, r48006, r48007, r48008;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r47963);
        mpfr_init_set_str(r47964, "-2.8672604767171556e+124", 10, MPFR_RNDN);
        mpfr_init(r47965);
        mpfr_init(r47966);
        mpfr_init(r47967);
        mpfr_init(r47968);
        mpfr_init(r47969);
        mpfr_init(r47970);
        mpfr_init(r47971);
        mpfr_init(r47972);
        mpfr_init(r47973);
        mpfr_init(r47974);
        mpfr_init(r47975);
        mpfr_init(r47976);
        mpfr_init(r47977);
        mpfr_init(r47978);
        mpfr_init(r47979);
        mpfr_init(r47980);
        mpfr_init(r47981);
        mpfr_init(r47982);
        mpfr_init(r47983);
        mpfr_init(r47984);
        mpfr_init(r47985);
        mpfr_init(r47986);
        mpfr_init(r47987);
        mpfr_init(r47988);
        mpfr_init(r47989);
        mpfr_init(r47990);
        mpfr_init_set_str(r47991, "4.918058634484688e+125", 10, MPFR_RNDN);
        mpfr_init(r47992);
        mpfr_init(r47993);
        mpfr_init(r47994);
        mpfr_init(r47995);
        mpfr_init(r47996);
        mpfr_init(r47997);
        mpfr_init(r47998);
        mpfr_init(r47999);
        mpfr_init(r48000);
        mpfr_init(r48001);
        mpfr_init(r48002);
        mpfr_init(r48003);
        mpfr_init(r48004);
        mpfr_init(r48005);
        mpfr_init(r48006);
        mpfr_init(r48007);
        mpfr_init(r48008);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r47963, x, MPFR_RNDN);
        ;
        mpfr_set_si(r47965, mpfr_cmp(r47963, r47964) <= 0, MPFR_RNDN);
        mpfr_set_d(r47966, y, MPFR_RNDN);
        mpfr_set_d(r47967, z, MPFR_RNDN);
        mpfr_mul(r47968, r47966, r47967, MPFR_RNDN);
        mpfr_set_d(r47969, t, MPFR_RNDN);
        mpfr_set_d(r47970, a, MPFR_RNDN);
        mpfr_mul(r47971, r47969, r47970, MPFR_RNDN);
        mpfr_sub(r47972, r47968, r47971, MPFR_RNDN);
        mpfr_mul(r47973, r47963, r47972, MPFR_RNDN);
        mpfr_set_d(r47974, b, MPFR_RNDN);
        mpfr_set_d(r47975, c, MPFR_RNDN);
        mpfr_mul(r47976, r47975, r47967, MPFR_RNDN);
        mpfr_set_d(r47977, i, MPFR_RNDN);
        mpfr_mul(r47978, r47977, r47970, MPFR_RNDN);
        mpfr_sub(r47979, r47976, r47978, MPFR_RNDN);
        mpfr_cbrt(r47980, r47979, MPFR_RNDN);
        mpfr_mul(r47981, r47980, r47980, MPFR_RNDN);
        mpfr_mul(r47982, r47974, r47981, MPFR_RNDN);
        mpfr_mul(r47983, r47982, r47980, MPFR_RNDN);
        mpfr_sub(r47984, r47973, r47983, MPFR_RNDN);
        mpfr_set_d(r47985, j, MPFR_RNDN);
        mpfr_mul(r47986, r47975, r47969, MPFR_RNDN);
        mpfr_mul(r47987, r47977, r47966, MPFR_RNDN);
        mpfr_sub(r47988, r47986, r47987, MPFR_RNDN);
        mpfr_mul(r47989, r47985, r47988, MPFR_RNDN);
        mpfr_add(r47990, r47984, r47989, MPFR_RNDN);
        ;
        mpfr_set_si(r47992, mpfr_cmp(r47963, r47991) <= 0, MPFR_RNDN);
        mpfr_neg(r47993, r47970, MPFR_RNDN);
        mpfr_mul(r47994, r47969, r47963, MPFR_RNDN);
        mpfr_mul(r47995, r47993, r47994, MPFR_RNDN);
        mpfr_mul(r47996, r47963, r47967, MPFR_RNDN);
        mpfr_mul(r47997, r47996, r47966, MPFR_RNDN);
        mpfr_add(r47998, r47995, r47997, MPFR_RNDN);
        mpfr_mul(r47999, r47966, r47977, MPFR_RNDN);
        mpfr_sub(r48000, r47986, r47999, MPFR_RNDN);
        mpfr_mul(r48001, r47985, r48000, MPFR_RNDN);
        mpfr_add(r48002, r47998, r48001, MPFR_RNDN);
        mpfr_mul(r48003, r47967, r47975, MPFR_RNDN);
        mpfr_sub(r48004, r48003, r47978, MPFR_RNDN);
        mpfr_mul(r48005, r48004, r47974, MPFR_RNDN);
        mpfr_sub(r48006, r48002, r48005, MPFR_RNDN);
        if (mpfr_get_si(r47992, MPFR_RNDN)) { mpfr_set(r48007, r48006, MPFR_RNDN); } else { mpfr_set(r48007, r47990, MPFR_RNDN); };
        if (mpfr_get_si(r47965, MPFR_RNDN)) { mpfr_set(r48008, r47990, MPFR_RNDN); } else { mpfr_set(r48008, r48007, MPFR_RNDN); };
        return mpfr_get_d(r48008, MPFR_RNDN);
}

static mpfr_t r48009, r48010, r48011, r48012, r48013, r48014, r48015, r48016, r48017, r48018, r48019, r48020, r48021, r48022, r48023, r48024, r48025, r48026, r48027, r48028, r48029, r48030, r48031, r48032, r48033, r48034, r48035, r48036, r48037, r48038, r48039, r48040, r48041, r48042, r48043, r48044, r48045, r48046, r48047, r48048, r48049, r48050, r48051, r48052, r48053, r48054;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r48009);
        mpfr_init_set_str(r48010, "-2.8672604767171556e+124", 10, MPFR_RNDN);
        mpfr_init(r48011);
        mpfr_init(r48012);
        mpfr_init(r48013);
        mpfr_init(r48014);
        mpfr_init(r48015);
        mpfr_init(r48016);
        mpfr_init(r48017);
        mpfr_init(r48018);
        mpfr_init(r48019);
        mpfr_init(r48020);
        mpfr_init(r48021);
        mpfr_init(r48022);
        mpfr_init(r48023);
        mpfr_init(r48024);
        mpfr_init(r48025);
        mpfr_init(r48026);
        mpfr_init(r48027);
        mpfr_init(r48028);
        mpfr_init(r48029);
        mpfr_init(r48030);
        mpfr_init(r48031);
        mpfr_init(r48032);
        mpfr_init(r48033);
        mpfr_init(r48034);
        mpfr_init(r48035);
        mpfr_init(r48036);
        mpfr_init_set_str(r48037, "4.918058634484688e+125", 10, MPFR_RNDN);
        mpfr_init(r48038);
        mpfr_init(r48039);
        mpfr_init(r48040);
        mpfr_init(r48041);
        mpfr_init(r48042);
        mpfr_init(r48043);
        mpfr_init(r48044);
        mpfr_init(r48045);
        mpfr_init(r48046);
        mpfr_init(r48047);
        mpfr_init(r48048);
        mpfr_init(r48049);
        mpfr_init(r48050);
        mpfr_init(r48051);
        mpfr_init(r48052);
        mpfr_init(r48053);
        mpfr_init(r48054);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r48009, x, MPFR_RNDN);
        ;
        mpfr_set_si(r48011, mpfr_cmp(r48009, r48010) <= 0, MPFR_RNDN);
        mpfr_set_d(r48012, y, MPFR_RNDN);
        mpfr_set_d(r48013, z, MPFR_RNDN);
        mpfr_mul(r48014, r48012, r48013, MPFR_RNDN);
        mpfr_set_d(r48015, t, MPFR_RNDN);
        mpfr_set_d(r48016, a, MPFR_RNDN);
        mpfr_mul(r48017, r48015, r48016, MPFR_RNDN);
        mpfr_sub(r48018, r48014, r48017, MPFR_RNDN);
        mpfr_mul(r48019, r48009, r48018, MPFR_RNDN);
        mpfr_set_d(r48020, b, MPFR_RNDN);
        mpfr_set_d(r48021, c, MPFR_RNDN);
        mpfr_mul(r48022, r48021, r48013, MPFR_RNDN);
        mpfr_set_d(r48023, i, MPFR_RNDN);
        mpfr_mul(r48024, r48023, r48016, MPFR_RNDN);
        mpfr_sub(r48025, r48022, r48024, MPFR_RNDN);
        mpfr_cbrt(r48026, r48025, MPFR_RNDN);
        mpfr_mul(r48027, r48026, r48026, MPFR_RNDN);
        mpfr_mul(r48028, r48020, r48027, MPFR_RNDN);
        mpfr_mul(r48029, r48028, r48026, MPFR_RNDN);
        mpfr_sub(r48030, r48019, r48029, MPFR_RNDN);
        mpfr_set_d(r48031, j, MPFR_RNDN);
        mpfr_mul(r48032, r48021, r48015, MPFR_RNDN);
        mpfr_mul(r48033, r48023, r48012, MPFR_RNDN);
        mpfr_sub(r48034, r48032, r48033, MPFR_RNDN);
        mpfr_mul(r48035, r48031, r48034, MPFR_RNDN);
        mpfr_add(r48036, r48030, r48035, MPFR_RNDN);
        ;
        mpfr_set_si(r48038, mpfr_cmp(r48009, r48037) <= 0, MPFR_RNDN);
        mpfr_neg(r48039, r48016, MPFR_RNDN);
        mpfr_mul(r48040, r48015, r48009, MPFR_RNDN);
        mpfr_mul(r48041, r48039, r48040, MPFR_RNDN);
        mpfr_mul(r48042, r48009, r48013, MPFR_RNDN);
        mpfr_mul(r48043, r48042, r48012, MPFR_RNDN);
        mpfr_add(r48044, r48041, r48043, MPFR_RNDN);
        mpfr_mul(r48045, r48012, r48023, MPFR_RNDN);
        mpfr_sub(r48046, r48032, r48045, MPFR_RNDN);
        mpfr_mul(r48047, r48031, r48046, MPFR_RNDN);
        mpfr_add(r48048, r48044, r48047, MPFR_RNDN);
        mpfr_mul(r48049, r48013, r48021, MPFR_RNDN);
        mpfr_sub(r48050, r48049, r48024, MPFR_RNDN);
        mpfr_mul(r48051, r48050, r48020, MPFR_RNDN);
        mpfr_sub(r48052, r48048, r48051, MPFR_RNDN);
        if (mpfr_get_si(r48038, MPFR_RNDN)) { mpfr_set(r48053, r48052, MPFR_RNDN); } else { mpfr_set(r48053, r48036, MPFR_RNDN); };
        if (mpfr_get_si(r48011, MPFR_RNDN)) { mpfr_set(r48054, r48036, MPFR_RNDN); } else { mpfr_set(r48054, r48053, MPFR_RNDN); };
        return mpfr_get_d(r48054, MPFR_RNDN);
}

