#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 r47866 = x;
        float r47867 = y;
        float r47868 = z;
        float r47869 = r47867 * r47868;
        float r47870 = t;
        float r47871 = a;
        float r47872 = r47870 * r47871;
        float r47873 = r47869 - r47872;
        float r47874 = r47866 * r47873;
        float r47875 = b;
        float r47876 = c;
        float r47877 = r47876 * r47868;
        float r47878 = i;
        float r47879 = r47878 * r47871;
        float r47880 = r47877 - r47879;
        float r47881 = r47875 * r47880;
        float r47882 = r47874 - r47881;
        float r47883 = j;
        float r47884 = r47876 * r47870;
        float r47885 = r47878 * r47867;
        float r47886 = r47884 - r47885;
        float r47887 = r47883 * r47886;
        float r47888 = r47882 + r47887;
        return r47888;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r47889 = x;
        double r47890 = y;
        double r47891 = z;
        double r47892 = r47890 * r47891;
        double r47893 = t;
        double r47894 = a;
        double r47895 = r47893 * r47894;
        double r47896 = r47892 - r47895;
        double r47897 = r47889 * r47896;
        double r47898 = b;
        double r47899 = c;
        double r47900 = r47899 * r47891;
        double r47901 = i;
        double r47902 = r47901 * r47894;
        double r47903 = r47900 - r47902;
        double r47904 = r47898 * r47903;
        double r47905 = r47897 - r47904;
        double r47906 = j;
        double r47907 = r47899 * r47893;
        double r47908 = r47901 * r47890;
        double r47909 = r47907 - r47908;
        double r47910 = r47906 * r47909;
        double r47911 = r47905 + r47910;
        return r47911;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r47912 = x;
        float r47913 = -3.1186130314637846e+124;
        bool r47914 = r47912 <= r47913;
        float r47915 = y;
        float r47916 = z;
        float r47917 = r47915 * r47916;
        float r47918 = t;
        float r47919 = a;
        float r47920 = r47918 * r47919;
        float r47921 = r47917 - r47920;
        float r47922 = r47912 * r47921;
        float r47923 = b;
        float r47924 = c;
        float r47925 = r47924 * r47916;
        float r47926 = i;
        float r47927 = r47926 * r47919;
        float r47928 = r47925 - r47927;
        float r47929 = cbrt(r47928);
        float r47930 = r47929 * r47929;
        float r47931 = r47923 * r47930;
        float r47932 = r47931 * r47929;
        float r47933 = r47922 - r47932;
        float r47934 = j;
        float r47935 = r47924 * r47918;
        float r47936 = r47926 * r47915;
        float r47937 = r47935 - r47936;
        float r47938 = r47934 * r47937;
        float r47939 = r47933 + r47938;
        float r47940 = 4.863955640625947e+121;
        bool r47941 = r47912 <= r47940;
        float r47942 = r47912 * r47916;
        float r47943 = r47942 * r47915;
        float r47944 = r47918 * r47912;
        float r47945 = -r47919;
        float r47946 = r47944 * r47945;
        float r47947 = r47943 + r47946;
        float r47948 = r47928 * r47923;
        float r47949 = r47915 * r47926;
        float r47950 = r47935 - r47949;
        float r47951 = r47934 * r47950;
        float r47952 = r47948 - r47951;
        float r47953 = r47947 - r47952;
        float r47954 = r47941 ? r47953 : r47939;
        float r47955 = r47914 ? r47939 : r47954;
        return r47955;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r47956 = x;
        double r47957 = -3.1186130314637846e+124;
        bool r47958 = r47956 <= r47957;
        double r47959 = y;
        double r47960 = z;
        double r47961 = r47959 * r47960;
        double r47962 = t;
        double r47963 = a;
        double r47964 = r47962 * r47963;
        double r47965 = r47961 - r47964;
        double r47966 = r47956 * r47965;
        double r47967 = b;
        double r47968 = c;
        double r47969 = r47968 * r47960;
        double r47970 = i;
        double r47971 = r47970 * r47963;
        double r47972 = r47969 - r47971;
        double r47973 = cbrt(r47972);
        double r47974 = r47973 * r47973;
        double r47975 = r47967 * r47974;
        double r47976 = r47975 * r47973;
        double r47977 = r47966 - r47976;
        double r47978 = j;
        double r47979 = r47968 * r47962;
        double r47980 = r47970 * r47959;
        double r47981 = r47979 - r47980;
        double r47982 = r47978 * r47981;
        double r47983 = r47977 + r47982;
        double r47984 = 4.863955640625947e+121;
        bool r47985 = r47956 <= r47984;
        double r47986 = r47956 * r47960;
        double r47987 = r47986 * r47959;
        double r47988 = r47962 * r47956;
        double r47989 = -r47963;
        double r47990 = r47988 * r47989;
        double r47991 = r47987 + r47990;
        double r47992 = r47972 * r47967;
        double r47993 = r47959 * r47970;
        double r47994 = r47979 - r47993;
        double r47995 = r47978 * r47994;
        double r47996 = r47992 - r47995;
        double r47997 = r47991 - r47996;
        double r47998 = r47985 ? r47997 : r47983;
        double r47999 = r47958 ? r47983 : r47998;
        return r47999;
}

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 r48000, r48001, r48002, r48003, r48004, r48005, r48006, r48007, r48008, r48009, r48010, r48011, r48012, r48013, r48014, r48015, r48016, r48017, r48018, r48019, r48020, r48021, r48022;

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

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r48000, x, MPFR_RNDN);
        mpfr_set_d(r48001, y, MPFR_RNDN);
        mpfr_set_d(r48002, z, MPFR_RNDN);
        mpfr_mul(r48003, r48001, r48002, MPFR_RNDN);
        mpfr_set_d(r48004, t, MPFR_RNDN);
        mpfr_set_d(r48005, a, MPFR_RNDN);
        mpfr_mul(r48006, r48004, r48005, MPFR_RNDN);
        mpfr_sub(r48007, r48003, r48006, MPFR_RNDN);
        mpfr_mul(r48008, r48000, r48007, MPFR_RNDN);
        mpfr_set_d(r48009, b, MPFR_RNDN);
        mpfr_set_d(r48010, c, MPFR_RNDN);
        mpfr_mul(r48011, r48010, r48002, MPFR_RNDN);
        mpfr_set_d(r48012, i, MPFR_RNDN);
        mpfr_mul(r48013, r48012, r48005, MPFR_RNDN);
        mpfr_sub(r48014, r48011, r48013, MPFR_RNDN);
        mpfr_mul(r48015, r48009, r48014, MPFR_RNDN);
        mpfr_sub(r48016, r48008, r48015, MPFR_RNDN);
        mpfr_set_d(r48017, j, MPFR_RNDN);
        mpfr_mul(r48018, r48010, r48004, MPFR_RNDN);
        mpfr_mul(r48019, r48012, r48001, MPFR_RNDN);
        mpfr_sub(r48020, r48018, r48019, MPFR_RNDN);
        mpfr_mul(r48021, r48017, r48020, MPFR_RNDN);
        mpfr_add(r48022, r48016, r48021, MPFR_RNDN);
        return mpfr_get_d(r48022, MPFR_RNDN);
}

static mpfr_t 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, r48055, r48056, r48057, r48058, r48059, r48060, r48061, r48062, r48063, r48064, r48065, r48066;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r48023);
        mpfr_init_set_str(r48024, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        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(r48037);
        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_set_str(r48051, "4.863955640625947e+121", 10, MPFR_RNDN);
        mpfr_init(r48052);
        mpfr_init(r48053);
        mpfr_init(r48054);
        mpfr_init(r48055);
        mpfr_init(r48056);
        mpfr_init(r48057);
        mpfr_init(r48058);
        mpfr_init(r48059);
        mpfr_init(r48060);
        mpfr_init(r48061);
        mpfr_init(r48062);
        mpfr_init(r48063);
        mpfr_init(r48064);
        mpfr_init(r48065);
        mpfr_init(r48066);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r48023, x, MPFR_RNDN);
        ;
        mpfr_set_si(r48025, mpfr_cmp(r48023, r48024) <= 0, MPFR_RNDN);
        mpfr_set_d(r48026, y, MPFR_RNDN);
        mpfr_set_d(r48027, z, MPFR_RNDN);
        mpfr_mul(r48028, r48026, r48027, MPFR_RNDN);
        mpfr_set_d(r48029, t, MPFR_RNDN);
        mpfr_set_d(r48030, a, MPFR_RNDN);
        mpfr_mul(r48031, r48029, r48030, MPFR_RNDN);
        mpfr_sub(r48032, r48028, r48031, MPFR_RNDN);
        mpfr_mul(r48033, r48023, r48032, MPFR_RNDN);
        mpfr_set_d(r48034, b, MPFR_RNDN);
        mpfr_set_d(r48035, c, MPFR_RNDN);
        mpfr_mul(r48036, r48035, r48027, MPFR_RNDN);
        mpfr_set_d(r48037, i, MPFR_RNDN);
        mpfr_mul(r48038, r48037, r48030, MPFR_RNDN);
        mpfr_sub(r48039, r48036, r48038, MPFR_RNDN);
        mpfr_cbrt(r48040, r48039, MPFR_RNDN);
        mpfr_mul(r48041, r48040, r48040, MPFR_RNDN);
        mpfr_mul(r48042, r48034, r48041, MPFR_RNDN);
        mpfr_mul(r48043, r48042, r48040, MPFR_RNDN);
        mpfr_sub(r48044, r48033, r48043, MPFR_RNDN);
        mpfr_set_d(r48045, j, MPFR_RNDN);
        mpfr_mul(r48046, r48035, r48029, MPFR_RNDN);
        mpfr_mul(r48047, r48037, r48026, MPFR_RNDN);
        mpfr_sub(r48048, r48046, r48047, MPFR_RNDN);
        mpfr_mul(r48049, r48045, r48048, MPFR_RNDN);
        mpfr_add(r48050, r48044, r48049, MPFR_RNDN);
        ;
        mpfr_set_si(r48052, mpfr_cmp(r48023, r48051) <= 0, MPFR_RNDN);
        mpfr_mul(r48053, r48023, r48027, MPFR_RNDN);
        mpfr_mul(r48054, r48053, r48026, MPFR_RNDN);
        mpfr_mul(r48055, r48029, r48023, MPFR_RNDN);
        mpfr_neg(r48056, r48030, MPFR_RNDN);
        mpfr_mul(r48057, r48055, r48056, MPFR_RNDN);
        mpfr_add(r48058, r48054, r48057, MPFR_RNDN);
        mpfr_mul(r48059, r48039, r48034, MPFR_RNDN);
        mpfr_mul(r48060, r48026, r48037, MPFR_RNDN);
        mpfr_sub(r48061, r48046, r48060, MPFR_RNDN);
        mpfr_mul(r48062, r48045, r48061, MPFR_RNDN);
        mpfr_sub(r48063, r48059, r48062, MPFR_RNDN);
        mpfr_sub(r48064, r48058, r48063, MPFR_RNDN);
        if (mpfr_get_si(r48052, MPFR_RNDN)) { mpfr_set(r48065, r48064, MPFR_RNDN); } else { mpfr_set(r48065, r48050, MPFR_RNDN); };
        if (mpfr_get_si(r48025, MPFR_RNDN)) { mpfr_set(r48066, r48050, MPFR_RNDN); } else { mpfr_set(r48066, r48065, MPFR_RNDN); };
        return mpfr_get_d(r48066, MPFR_RNDN);
}

static mpfr_t r48067, r48068, r48069, r48070, r48071, r48072, r48073, r48074, r48075, r48076, r48077, r48078, r48079, r48080, r48081, r48082, r48083, r48084, r48085, r48086, r48087, r48088, r48089, r48090, r48091, r48092, r48093, r48094, r48095, r48096, r48097, r48098, r48099, r48100, r48101, r48102, r48103, r48104, r48105, r48106, r48107, r48108, r48109, r48110;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r48067);
        mpfr_init_set_str(r48068, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        mpfr_init(r48069);
        mpfr_init(r48070);
        mpfr_init(r48071);
        mpfr_init(r48072);
        mpfr_init(r48073);
        mpfr_init(r48074);
        mpfr_init(r48075);
        mpfr_init(r48076);
        mpfr_init(r48077);
        mpfr_init(r48078);
        mpfr_init(r48079);
        mpfr_init(r48080);
        mpfr_init(r48081);
        mpfr_init(r48082);
        mpfr_init(r48083);
        mpfr_init(r48084);
        mpfr_init(r48085);
        mpfr_init(r48086);
        mpfr_init(r48087);
        mpfr_init(r48088);
        mpfr_init(r48089);
        mpfr_init(r48090);
        mpfr_init(r48091);
        mpfr_init(r48092);
        mpfr_init(r48093);
        mpfr_init(r48094);
        mpfr_init_set_str(r48095, "4.863955640625947e+121", 10, MPFR_RNDN);
        mpfr_init(r48096);
        mpfr_init(r48097);
        mpfr_init(r48098);
        mpfr_init(r48099);
        mpfr_init(r48100);
        mpfr_init(r48101);
        mpfr_init(r48102);
        mpfr_init(r48103);
        mpfr_init(r48104);
        mpfr_init(r48105);
        mpfr_init(r48106);
        mpfr_init(r48107);
        mpfr_init(r48108);
        mpfr_init(r48109);
        mpfr_init(r48110);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r48067, x, MPFR_RNDN);
        ;
        mpfr_set_si(r48069, mpfr_cmp(r48067, r48068) <= 0, MPFR_RNDN);
        mpfr_set_d(r48070, y, MPFR_RNDN);
        mpfr_set_d(r48071, z, MPFR_RNDN);
        mpfr_mul(r48072, r48070, r48071, MPFR_RNDN);
        mpfr_set_d(r48073, t, MPFR_RNDN);
        mpfr_set_d(r48074, a, MPFR_RNDN);
        mpfr_mul(r48075, r48073, r48074, MPFR_RNDN);
        mpfr_sub(r48076, r48072, r48075, MPFR_RNDN);
        mpfr_mul(r48077, r48067, r48076, MPFR_RNDN);
        mpfr_set_d(r48078, b, MPFR_RNDN);
        mpfr_set_d(r48079, c, MPFR_RNDN);
        mpfr_mul(r48080, r48079, r48071, MPFR_RNDN);
        mpfr_set_d(r48081, i, MPFR_RNDN);
        mpfr_mul(r48082, r48081, r48074, MPFR_RNDN);
        mpfr_sub(r48083, r48080, r48082, MPFR_RNDN);
        mpfr_cbrt(r48084, r48083, MPFR_RNDN);
        mpfr_mul(r48085, r48084, r48084, MPFR_RNDN);
        mpfr_mul(r48086, r48078, r48085, MPFR_RNDN);
        mpfr_mul(r48087, r48086, r48084, MPFR_RNDN);
        mpfr_sub(r48088, r48077, r48087, MPFR_RNDN);
        mpfr_set_d(r48089, j, MPFR_RNDN);
        mpfr_mul(r48090, r48079, r48073, MPFR_RNDN);
        mpfr_mul(r48091, r48081, r48070, MPFR_RNDN);
        mpfr_sub(r48092, r48090, r48091, MPFR_RNDN);
        mpfr_mul(r48093, r48089, r48092, MPFR_RNDN);
        mpfr_add(r48094, r48088, r48093, MPFR_RNDN);
        ;
        mpfr_set_si(r48096, mpfr_cmp(r48067, r48095) <= 0, MPFR_RNDN);
        mpfr_mul(r48097, r48067, r48071, MPFR_RNDN);
        mpfr_mul(r48098, r48097, r48070, MPFR_RNDN);
        mpfr_mul(r48099, r48073, r48067, MPFR_RNDN);
        mpfr_neg(r48100, r48074, MPFR_RNDN);
        mpfr_mul(r48101, r48099, r48100, MPFR_RNDN);
        mpfr_add(r48102, r48098, r48101, MPFR_RNDN);
        mpfr_mul(r48103, r48083, r48078, MPFR_RNDN);
        mpfr_mul(r48104, r48070, r48081, MPFR_RNDN);
        mpfr_sub(r48105, r48090, r48104, MPFR_RNDN);
        mpfr_mul(r48106, r48089, r48105, MPFR_RNDN);
        mpfr_sub(r48107, r48103, r48106, MPFR_RNDN);
        mpfr_sub(r48108, r48102, r48107, MPFR_RNDN);
        if (mpfr_get_si(r48096, MPFR_RNDN)) { mpfr_set(r48109, r48108, MPFR_RNDN); } else { mpfr_set(r48109, r48094, MPFR_RNDN); };
        if (mpfr_get_si(r48069, MPFR_RNDN)) { mpfr_set(r48110, r48094, MPFR_RNDN); } else { mpfr_set(r48110, r48109, MPFR_RNDN); };
        return mpfr_get_d(r48110, MPFR_RNDN);
}

