#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 r25827 = x;
        float r25828 = y;
        float r25829 = z;
        float r25830 = r25828 * r25829;
        float r25831 = t;
        float r25832 = a;
        float r25833 = r25831 * r25832;
        float r25834 = r25830 - r25833;
        float r25835 = r25827 * r25834;
        float r25836 = b;
        float r25837 = c;
        float r25838 = r25837 * r25829;
        float r25839 = i;
        float r25840 = r25839 * r25832;
        float r25841 = r25838 - r25840;
        float r25842 = r25836 * r25841;
        float r25843 = r25835 - r25842;
        float r25844 = j;
        float r25845 = r25837 * r25831;
        float r25846 = r25839 * r25828;
        float r25847 = r25845 - r25846;
        float r25848 = r25844 * r25847;
        float r25849 = r25843 + r25848;
        return r25849;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r25850 = x;
        double r25851 = y;
        double r25852 = z;
        double r25853 = r25851 * r25852;
        double r25854 = t;
        double r25855 = a;
        double r25856 = r25854 * r25855;
        double r25857 = r25853 - r25856;
        double r25858 = r25850 * r25857;
        double r25859 = b;
        double r25860 = c;
        double r25861 = r25860 * r25852;
        double r25862 = i;
        double r25863 = r25862 * r25855;
        double r25864 = r25861 - r25863;
        double r25865 = r25859 * r25864;
        double r25866 = r25858 - r25865;
        double r25867 = j;
        double r25868 = r25860 * r25854;
        double r25869 = r25862 * r25851;
        double r25870 = r25868 - r25869;
        double r25871 = r25867 * r25870;
        double r25872 = r25866 + r25871;
        return r25872;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r25873 = x;
        float r25874 = y;
        float r25875 = z;
        float r25876 = r25874 * r25875;
        float r25877 = r25873 * r25876;
        float r25878 = i;
        float r25879 = b;
        float r25880 = r25878 * r25879;
        float r25881 = t;
        float r25882 = r25881 * r25873;
        float r25883 = r25880 - r25882;
        float r25884 = a;
        float r25885 = r25883 * r25884;
        float r25886 = c;
        float r25887 = r25886 * r25879;
        float r25888 = r25887 * r25875;
        float r25889 = r25885 - r25888;
        float r25890 = r25877 + r25889;
        float r25891 = j;
        float r25892 = r25886 * r25881;
        float r25893 = r25878 * r25874;
        float r25894 = r25892 - r25893;
        float r25895 = r25891 * r25894;
        float r25896 = r25890 + r25895;
        float r25897 = -2.4005335511556388e+295;
        bool r25898 = r25896 <= r25897;
        float r25899 = r25881 * r25884;
        float r25900 = r25876 - r25899;
        float r25901 = r25873 * r25900;
        float r25902 = cbrt(r25901);
        float r25903 = r25902 * r25902;
        float r25904 = r25903 * r25902;
        float r25905 = r25886 * r25875;
        float r25906 = r25878 * r25884;
        float r25907 = r25905 - r25906;
        float r25908 = r25879 * r25907;
        float r25909 = r25904 - r25908;
        float r25910 = r25909 + r25895;
        float r25911 = 1.9875367865292126e+304;
        bool r25912 = r25896 <= r25911;
        float r25913 = cbrt(r25873);
        float r25914 = cbrt(r25900);
        float r25915 = r25913 * r25914;
        float r25916 = r25903 * r25915;
        float r25917 = r25916 - r25908;
        float r25918 = r25917 + r25895;
        float r25919 = r25912 ? r25896 : r25918;
        float r25920 = r25898 ? r25910 : r25919;
        return r25920;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r25921 = x;
        double r25922 = y;
        double r25923 = z;
        double r25924 = r25922 * r25923;
        double r25925 = r25921 * r25924;
        double r25926 = i;
        double r25927 = b;
        double r25928 = r25926 * r25927;
        double r25929 = t;
        double r25930 = r25929 * r25921;
        double r25931 = r25928 - r25930;
        double r25932 = a;
        double r25933 = r25931 * r25932;
        double r25934 = c;
        double r25935 = r25934 * r25927;
        double r25936 = r25935 * r25923;
        double r25937 = r25933 - r25936;
        double r25938 = r25925 + r25937;
        double r25939 = j;
        double r25940 = r25934 * r25929;
        double r25941 = r25926 * r25922;
        double r25942 = r25940 - r25941;
        double r25943 = r25939 * r25942;
        double r25944 = r25938 + r25943;
        double r25945 = -2.4005335511556388e+295;
        bool r25946 = r25944 <= r25945;
        double r25947 = r25929 * r25932;
        double r25948 = r25924 - r25947;
        double r25949 = r25921 * r25948;
        double r25950 = cbrt(r25949);
        double r25951 = r25950 * r25950;
        double r25952 = r25951 * r25950;
        double r25953 = r25934 * r25923;
        double r25954 = r25926 * r25932;
        double r25955 = r25953 - r25954;
        double r25956 = r25927 * r25955;
        double r25957 = r25952 - r25956;
        double r25958 = r25957 + r25943;
        double r25959 = 1.9875367865292126e+304;
        bool r25960 = r25944 <= r25959;
        double r25961 = cbrt(r25921);
        double r25962 = cbrt(r25948);
        double r25963 = r25961 * r25962;
        double r25964 = r25951 * r25963;
        double r25965 = r25964 - r25956;
        double r25966 = r25965 + r25943;
        double r25967 = r25960 ? r25944 : r25966;
        double r25968 = r25946 ? r25958 : r25967;
        return r25968;
}

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 r25969, r25970, r25971, r25972, r25973, r25974, r25975, r25976, r25977, r25978, r25979, r25980, r25981, r25982, r25983, r25984, r25985, r25986, r25987, r25988, r25989, r25990, r25991;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r25969);
        mpfr_init(r25970);
        mpfr_init(r25971);
        mpfr_init(r25972);
        mpfr_init(r25973);
        mpfr_init(r25974);
        mpfr_init(r25975);
        mpfr_init(r25976);
        mpfr_init(r25977);
        mpfr_init(r25978);
        mpfr_init(r25979);
        mpfr_init(r25980);
        mpfr_init(r25981);
        mpfr_init(r25982);
        mpfr_init(r25983);
        mpfr_init(r25984);
        mpfr_init(r25985);
        mpfr_init(r25986);
        mpfr_init(r25987);
        mpfr_init(r25988);
        mpfr_init(r25989);
        mpfr_init(r25990);
        mpfr_init(r25991);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r25969, x, MPFR_RNDN);
        mpfr_set_d(r25970, y, MPFR_RNDN);
        mpfr_set_d(r25971, z, MPFR_RNDN);
        mpfr_mul(r25972, r25970, r25971, MPFR_RNDN);
        mpfr_set_d(r25973, t, MPFR_RNDN);
        mpfr_set_d(r25974, a, MPFR_RNDN);
        mpfr_mul(r25975, r25973, r25974, MPFR_RNDN);
        mpfr_sub(r25976, r25972, r25975, MPFR_RNDN);
        mpfr_mul(r25977, r25969, r25976, MPFR_RNDN);
        mpfr_set_d(r25978, b, MPFR_RNDN);
        mpfr_set_d(r25979, c, MPFR_RNDN);
        mpfr_mul(r25980, r25979, r25971, MPFR_RNDN);
        mpfr_set_d(r25981, i, MPFR_RNDN);
        mpfr_mul(r25982, r25981, r25974, MPFR_RNDN);
        mpfr_sub(r25983, r25980, r25982, MPFR_RNDN);
        mpfr_mul(r25984, r25978, r25983, MPFR_RNDN);
        mpfr_sub(r25985, r25977, r25984, MPFR_RNDN);
        mpfr_set_d(r25986, j, MPFR_RNDN);
        mpfr_mul(r25987, r25979, r25973, MPFR_RNDN);
        mpfr_mul(r25988, r25981, r25970, MPFR_RNDN);
        mpfr_sub(r25989, r25987, r25988, MPFR_RNDN);
        mpfr_mul(r25990, r25986, r25989, MPFR_RNDN);
        mpfr_add(r25991, r25985, r25990, MPFR_RNDN);
        return mpfr_get_d(r25991, MPFR_RNDN);
}

static mpfr_t r25992, r25993, r25994, r25995, r25996, r25997, r25998, r25999, r26000, r26001, r26002, r26003, r26004, r26005, r26006, r26007, r26008, r26009, r26010, r26011, r26012, r26013, r26014, r26015, r26016, r26017, r26018, r26019, r26020, r26021, r26022, r26023, r26024, r26025, r26026, r26027, r26028, r26029, r26030, r26031, r26032, r26033, r26034, r26035, r26036, r26037, r26038, r26039;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r25992);
        mpfr_init(r25993);
        mpfr_init(r25994);
        mpfr_init(r25995);
        mpfr_init(r25996);
        mpfr_init(r25997);
        mpfr_init(r25998);
        mpfr_init(r25999);
        mpfr_init(r26000);
        mpfr_init(r26001);
        mpfr_init(r26002);
        mpfr_init(r26003);
        mpfr_init(r26004);
        mpfr_init(r26005);
        mpfr_init(r26006);
        mpfr_init(r26007);
        mpfr_init(r26008);
        mpfr_init(r26009);
        mpfr_init(r26010);
        mpfr_init(r26011);
        mpfr_init(r26012);
        mpfr_init(r26013);
        mpfr_init(r26014);
        mpfr_init(r26015);
        mpfr_init_set_str(r26016, "-2.4005335511556388e+295", 10, MPFR_RNDN);
        mpfr_init(r26017);
        mpfr_init(r26018);
        mpfr_init(r26019);
        mpfr_init(r26020);
        mpfr_init(r26021);
        mpfr_init(r26022);
        mpfr_init(r26023);
        mpfr_init(r26024);
        mpfr_init(r26025);
        mpfr_init(r26026);
        mpfr_init(r26027);
        mpfr_init(r26028);
        mpfr_init(r26029);
        mpfr_init_set_str(r26030, "1.9875367865292126e+304", 10, MPFR_RNDN);
        mpfr_init(r26031);
        mpfr_init(r26032);
        mpfr_init(r26033);
        mpfr_init(r26034);
        mpfr_init(r26035);
        mpfr_init(r26036);
        mpfr_init(r26037);
        mpfr_init(r26038);
        mpfr_init(r26039);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r25992, x, MPFR_RNDN);
        mpfr_set_d(r25993, y, MPFR_RNDN);
        mpfr_set_d(r25994, z, MPFR_RNDN);
        mpfr_mul(r25995, r25993, r25994, MPFR_RNDN);
        mpfr_mul(r25996, r25992, r25995, MPFR_RNDN);
        mpfr_set_d(r25997, i, MPFR_RNDN);
        mpfr_set_d(r25998, b, MPFR_RNDN);
        mpfr_mul(r25999, r25997, r25998, MPFR_RNDN);
        mpfr_set_d(r26000, t, MPFR_RNDN);
        mpfr_mul(r26001, r26000, r25992, MPFR_RNDN);
        mpfr_sub(r26002, r25999, r26001, MPFR_RNDN);
        mpfr_set_d(r26003, a, MPFR_RNDN);
        mpfr_mul(r26004, r26002, r26003, MPFR_RNDN);
        mpfr_set_d(r26005, c, MPFR_RNDN);
        mpfr_mul(r26006, r26005, r25998, MPFR_RNDN);
        mpfr_mul(r26007, r26006, r25994, MPFR_RNDN);
        mpfr_sub(r26008, r26004, r26007, MPFR_RNDN);
        mpfr_add(r26009, r25996, r26008, MPFR_RNDN);
        mpfr_set_d(r26010, j, MPFR_RNDN);
        mpfr_mul(r26011, r26005, r26000, MPFR_RNDN);
        mpfr_mul(r26012, r25997, r25993, MPFR_RNDN);
        mpfr_sub(r26013, r26011, r26012, MPFR_RNDN);
        mpfr_mul(r26014, r26010, r26013, MPFR_RNDN);
        mpfr_add(r26015, r26009, r26014, MPFR_RNDN);
        ;
        mpfr_set_si(r26017, mpfr_cmp(r26015, r26016) <= 0, MPFR_RNDN);
        mpfr_mul(r26018, r26000, r26003, MPFR_RNDN);
        mpfr_sub(r26019, r25995, r26018, MPFR_RNDN);
        mpfr_mul(r26020, r25992, r26019, MPFR_RNDN);
        mpfr_cbrt(r26021, r26020, MPFR_RNDN);
        mpfr_mul(r26022, r26021, r26021, MPFR_RNDN);
        mpfr_mul(r26023, r26022, r26021, MPFR_RNDN);
        mpfr_mul(r26024, r26005, r25994, MPFR_RNDN);
        mpfr_mul(r26025, r25997, r26003, MPFR_RNDN);
        mpfr_sub(r26026, r26024, r26025, MPFR_RNDN);
        mpfr_mul(r26027, r25998, r26026, MPFR_RNDN);
        mpfr_sub(r26028, r26023, r26027, MPFR_RNDN);
        mpfr_add(r26029, r26028, r26014, MPFR_RNDN);
        ;
        mpfr_set_si(r26031, mpfr_cmp(r26015, r26030) <= 0, MPFR_RNDN);
        mpfr_cbrt(r26032, r25992, MPFR_RNDN);
        mpfr_cbrt(r26033, r26019, MPFR_RNDN);
        mpfr_mul(r26034, r26032, r26033, MPFR_RNDN);
        mpfr_mul(r26035, r26022, r26034, MPFR_RNDN);
        mpfr_sub(r26036, r26035, r26027, MPFR_RNDN);
        mpfr_add(r26037, r26036, r26014, MPFR_RNDN);
        if (mpfr_get_si(r26031, MPFR_RNDN)) { mpfr_set(r26038, r26015, MPFR_RNDN); } else { mpfr_set(r26038, r26037, MPFR_RNDN); };
        if (mpfr_get_si(r26017, MPFR_RNDN)) { mpfr_set(r26039, r26029, MPFR_RNDN); } else { mpfr_set(r26039, r26038, MPFR_RNDN); };
        return mpfr_get_d(r26039, MPFR_RNDN);
}

static mpfr_t r26040, r26041, r26042, r26043, r26044, r26045, r26046, r26047, r26048, r26049, r26050, r26051, r26052, r26053, r26054, r26055, r26056, r26057, r26058, r26059, r26060, r26061, r26062, r26063, r26064, r26065, r26066, r26067, r26068, r26069, r26070, r26071, r26072, r26073, r26074, r26075, r26076, r26077, r26078, r26079, r26080, r26081, r26082, r26083, r26084, r26085, r26086, r26087;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26040);
        mpfr_init(r26041);
        mpfr_init(r26042);
        mpfr_init(r26043);
        mpfr_init(r26044);
        mpfr_init(r26045);
        mpfr_init(r26046);
        mpfr_init(r26047);
        mpfr_init(r26048);
        mpfr_init(r26049);
        mpfr_init(r26050);
        mpfr_init(r26051);
        mpfr_init(r26052);
        mpfr_init(r26053);
        mpfr_init(r26054);
        mpfr_init(r26055);
        mpfr_init(r26056);
        mpfr_init(r26057);
        mpfr_init(r26058);
        mpfr_init(r26059);
        mpfr_init(r26060);
        mpfr_init(r26061);
        mpfr_init(r26062);
        mpfr_init(r26063);
        mpfr_init_set_str(r26064, "-2.4005335511556388e+295", 10, MPFR_RNDN);
        mpfr_init(r26065);
        mpfr_init(r26066);
        mpfr_init(r26067);
        mpfr_init(r26068);
        mpfr_init(r26069);
        mpfr_init(r26070);
        mpfr_init(r26071);
        mpfr_init(r26072);
        mpfr_init(r26073);
        mpfr_init(r26074);
        mpfr_init(r26075);
        mpfr_init(r26076);
        mpfr_init(r26077);
        mpfr_init_set_str(r26078, "1.9875367865292126e+304", 10, MPFR_RNDN);
        mpfr_init(r26079);
        mpfr_init(r26080);
        mpfr_init(r26081);
        mpfr_init(r26082);
        mpfr_init(r26083);
        mpfr_init(r26084);
        mpfr_init(r26085);
        mpfr_init(r26086);
        mpfr_init(r26087);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26040, x, MPFR_RNDN);
        mpfr_set_d(r26041, y, MPFR_RNDN);
        mpfr_set_d(r26042, z, MPFR_RNDN);
        mpfr_mul(r26043, r26041, r26042, MPFR_RNDN);
        mpfr_mul(r26044, r26040, r26043, MPFR_RNDN);
        mpfr_set_d(r26045, i, MPFR_RNDN);
        mpfr_set_d(r26046, b, MPFR_RNDN);
        mpfr_mul(r26047, r26045, r26046, MPFR_RNDN);
        mpfr_set_d(r26048, t, MPFR_RNDN);
        mpfr_mul(r26049, r26048, r26040, MPFR_RNDN);
        mpfr_sub(r26050, r26047, r26049, MPFR_RNDN);
        mpfr_set_d(r26051, a, MPFR_RNDN);
        mpfr_mul(r26052, r26050, r26051, MPFR_RNDN);
        mpfr_set_d(r26053, c, MPFR_RNDN);
        mpfr_mul(r26054, r26053, r26046, MPFR_RNDN);
        mpfr_mul(r26055, r26054, r26042, MPFR_RNDN);
        mpfr_sub(r26056, r26052, r26055, MPFR_RNDN);
        mpfr_add(r26057, r26044, r26056, MPFR_RNDN);
        mpfr_set_d(r26058, j, MPFR_RNDN);
        mpfr_mul(r26059, r26053, r26048, MPFR_RNDN);
        mpfr_mul(r26060, r26045, r26041, MPFR_RNDN);
        mpfr_sub(r26061, r26059, r26060, MPFR_RNDN);
        mpfr_mul(r26062, r26058, r26061, MPFR_RNDN);
        mpfr_add(r26063, r26057, r26062, MPFR_RNDN);
        ;
        mpfr_set_si(r26065, mpfr_cmp(r26063, r26064) <= 0, MPFR_RNDN);
        mpfr_mul(r26066, r26048, r26051, MPFR_RNDN);
        mpfr_sub(r26067, r26043, r26066, MPFR_RNDN);
        mpfr_mul(r26068, r26040, r26067, MPFR_RNDN);
        mpfr_cbrt(r26069, r26068, MPFR_RNDN);
        mpfr_mul(r26070, r26069, r26069, MPFR_RNDN);
        mpfr_mul(r26071, r26070, r26069, MPFR_RNDN);
        mpfr_mul(r26072, r26053, r26042, MPFR_RNDN);
        mpfr_mul(r26073, r26045, r26051, MPFR_RNDN);
        mpfr_sub(r26074, r26072, r26073, MPFR_RNDN);
        mpfr_mul(r26075, r26046, r26074, MPFR_RNDN);
        mpfr_sub(r26076, r26071, r26075, MPFR_RNDN);
        mpfr_add(r26077, r26076, r26062, MPFR_RNDN);
        ;
        mpfr_set_si(r26079, mpfr_cmp(r26063, r26078) <= 0, MPFR_RNDN);
        mpfr_cbrt(r26080, r26040, MPFR_RNDN);
        mpfr_cbrt(r26081, r26067, MPFR_RNDN);
        mpfr_mul(r26082, r26080, r26081, MPFR_RNDN);
        mpfr_mul(r26083, r26070, r26082, MPFR_RNDN);
        mpfr_sub(r26084, r26083, r26075, MPFR_RNDN);
        mpfr_add(r26085, r26084, r26062, MPFR_RNDN);
        if (mpfr_get_si(r26079, MPFR_RNDN)) { mpfr_set(r26086, r26063, MPFR_RNDN); } else { mpfr_set(r26086, r26085, MPFR_RNDN); };
        if (mpfr_get_si(r26065, MPFR_RNDN)) { mpfr_set(r26087, r26077, MPFR_RNDN); } else { mpfr_set(r26087, r26086, MPFR_RNDN); };
        return mpfr_get_d(r26087, MPFR_RNDN);
}

