#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 r26899 = x;
        float r26900 = y;
        float r26901 = z;
        float r26902 = r26900 * r26901;
        float r26903 = t;
        float r26904 = a;
        float r26905 = r26903 * r26904;
        float r26906 = r26902 - r26905;
        float r26907 = r26899 * r26906;
        float r26908 = b;
        float r26909 = c;
        float r26910 = r26909 * r26901;
        float r26911 = i;
        float r26912 = r26911 * r26904;
        float r26913 = r26910 - r26912;
        float r26914 = r26908 * r26913;
        float r26915 = r26907 - r26914;
        float r26916 = j;
        float r26917 = r26909 * r26903;
        float r26918 = r26911 * r26900;
        float r26919 = r26917 - r26918;
        float r26920 = r26916 * r26919;
        float r26921 = r26915 + r26920;
        return r26921;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26922 = x;
        double r26923 = y;
        double r26924 = z;
        double r26925 = r26923 * r26924;
        double r26926 = t;
        double r26927 = a;
        double r26928 = r26926 * r26927;
        double r26929 = r26925 - r26928;
        double r26930 = r26922 * r26929;
        double r26931 = b;
        double r26932 = c;
        double r26933 = r26932 * r26924;
        double r26934 = i;
        double r26935 = r26934 * r26927;
        double r26936 = r26933 - r26935;
        double r26937 = r26931 * r26936;
        double r26938 = r26930 - r26937;
        double r26939 = j;
        double r26940 = r26932 * r26926;
        double r26941 = r26934 * r26923;
        double r26942 = r26940 - r26941;
        double r26943 = r26939 * r26942;
        double r26944 = r26938 + r26943;
        return r26944;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r26945 = x;
        float r26946 = y;
        float r26947 = z;
        float r26948 = r26946 * r26947;
        float r26949 = r26945 * r26948;
        float r26950 = i;
        float r26951 = b;
        float r26952 = r26950 * r26951;
        float r26953 = t;
        float r26954 = r26953 * r26945;
        float r26955 = r26952 - r26954;
        float r26956 = a;
        float r26957 = r26955 * r26956;
        float r26958 = c;
        float r26959 = r26958 * r26951;
        float r26960 = r26959 * r26947;
        float r26961 = r26957 - r26960;
        float r26962 = r26949 + r26961;
        float r26963 = j;
        float r26964 = r26958 * r26953;
        float r26965 = r26950 * r26946;
        float r26966 = r26964 - r26965;
        float r26967 = r26963 * r26966;
        float r26968 = r26962 + r26967;
        float r26969 = -4.586634916659257e+304;
        bool r26970 = r26968 <= r26969;
        float r26971 = r26953 * r26956;
        float r26972 = r26948 - r26971;
        float r26973 = r26945 * r26972;
        float r26974 = r26958 * r26947;
        float r26975 = r26950 * r26956;
        float r26976 = r26974 - r26975;
        float r26977 = cbrt(r26976);
        float r26978 = r26977 * r26977;
        float r26979 = r26951 * r26978;
        float r26980 = r26979 * r26977;
        float r26981 = r26973 - r26980;
        float r26982 = r26981 + r26967;
        float r26983 = 3.065894309188398e+307;
        bool r26984 = r26968 <= r26983;
        float r26985 = r26947 * r26958;
        float r26986 = r26956 * r26950;
        float r26987 = r26985 + r26986;
        float r26988 = r26987 * r26951;
        float r26989 = r26963 * r26946;
        float r26990 = r26989 * r26950;
        float r26991 = r26988 - r26990;
        float r26992 = r26956 * r26945;
        float r26993 = r26958 * r26963;
        float r26994 = r26992 + r26993;
        float r26995 = r26953 * r26994;
        float r26996 = r26991 + r26995;
        float r26997 = r26984 ? r26968 : r26996;
        float r26998 = r26970 ? r26982 : r26997;
        return r26998;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26999 = x;
        double r27000 = y;
        double r27001 = z;
        double r27002 = r27000 * r27001;
        double r27003 = r26999 * r27002;
        double r27004 = i;
        double r27005 = b;
        double r27006 = r27004 * r27005;
        double r27007 = t;
        double r27008 = r27007 * r26999;
        double r27009 = r27006 - r27008;
        double r27010 = a;
        double r27011 = r27009 * r27010;
        double r27012 = c;
        double r27013 = r27012 * r27005;
        double r27014 = r27013 * r27001;
        double r27015 = r27011 - r27014;
        double r27016 = r27003 + r27015;
        double r27017 = j;
        double r27018 = r27012 * r27007;
        double r27019 = r27004 * r27000;
        double r27020 = r27018 - r27019;
        double r27021 = r27017 * r27020;
        double r27022 = r27016 + r27021;
        double r27023 = -4.586634916659257e+304;
        bool r27024 = r27022 <= r27023;
        double r27025 = r27007 * r27010;
        double r27026 = r27002 - r27025;
        double r27027 = r26999 * r27026;
        double r27028 = r27012 * r27001;
        double r27029 = r27004 * r27010;
        double r27030 = r27028 - r27029;
        double r27031 = cbrt(r27030);
        double r27032 = r27031 * r27031;
        double r27033 = r27005 * r27032;
        double r27034 = r27033 * r27031;
        double r27035 = r27027 - r27034;
        double r27036 = r27035 + r27021;
        double r27037 = 3.065894309188398e+307;
        bool r27038 = r27022 <= r27037;
        double r27039 = r27001 * r27012;
        double r27040 = r27010 * r27004;
        double r27041 = r27039 + r27040;
        double r27042 = r27041 * r27005;
        double r27043 = r27017 * r27000;
        double r27044 = r27043 * r27004;
        double r27045 = r27042 - r27044;
        double r27046 = r27010 * r26999;
        double r27047 = r27012 * r27017;
        double r27048 = r27046 + r27047;
        double r27049 = r27007 * r27048;
        double r27050 = r27045 + r27049;
        double r27051 = r27038 ? r27022 : r27050;
        double r27052 = r27024 ? r27036 : r27051;
        return r27052;
}

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 r27053, r27054, r27055, r27056, r27057, r27058, r27059, r27060, r27061, r27062, r27063, r27064, r27065, r27066, r27067, r27068, r27069, r27070, r27071, r27072, r27073, r27074, r27075;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r27053);
        mpfr_init(r27054);
        mpfr_init(r27055);
        mpfr_init(r27056);
        mpfr_init(r27057);
        mpfr_init(r27058);
        mpfr_init(r27059);
        mpfr_init(r27060);
        mpfr_init(r27061);
        mpfr_init(r27062);
        mpfr_init(r27063);
        mpfr_init(r27064);
        mpfr_init(r27065);
        mpfr_init(r27066);
        mpfr_init(r27067);
        mpfr_init(r27068);
        mpfr_init(r27069);
        mpfr_init(r27070);
        mpfr_init(r27071);
        mpfr_init(r27072);
        mpfr_init(r27073);
        mpfr_init(r27074);
        mpfr_init(r27075);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r27053, x, MPFR_RNDN);
        mpfr_set_d(r27054, y, MPFR_RNDN);
        mpfr_set_d(r27055, z, MPFR_RNDN);
        mpfr_mul(r27056, r27054, r27055, MPFR_RNDN);
        mpfr_set_d(r27057, t, MPFR_RNDN);
        mpfr_set_d(r27058, a, MPFR_RNDN);
        mpfr_mul(r27059, r27057, r27058, MPFR_RNDN);
        mpfr_sub(r27060, r27056, r27059, MPFR_RNDN);
        mpfr_mul(r27061, r27053, r27060, MPFR_RNDN);
        mpfr_set_d(r27062, b, MPFR_RNDN);
        mpfr_set_d(r27063, c, MPFR_RNDN);
        mpfr_mul(r27064, r27063, r27055, MPFR_RNDN);
        mpfr_set_d(r27065, i, MPFR_RNDN);
        mpfr_mul(r27066, r27065, r27058, MPFR_RNDN);
        mpfr_sub(r27067, r27064, r27066, MPFR_RNDN);
        mpfr_mul(r27068, r27062, r27067, MPFR_RNDN);
        mpfr_sub(r27069, r27061, r27068, MPFR_RNDN);
        mpfr_set_d(r27070, j, MPFR_RNDN);
        mpfr_mul(r27071, r27063, r27057, MPFR_RNDN);
        mpfr_mul(r27072, r27065, r27054, MPFR_RNDN);
        mpfr_sub(r27073, r27071, r27072, MPFR_RNDN);
        mpfr_mul(r27074, r27070, r27073, MPFR_RNDN);
        mpfr_add(r27075, r27069, r27074, MPFR_RNDN);
        return mpfr_get_d(r27075, MPFR_RNDN);
}

static mpfr_t r27076, r27077, r27078, r27079, r27080, r27081, r27082, r27083, r27084, r27085, r27086, r27087, r27088, r27089, r27090, r27091, r27092, r27093, r27094, r27095, r27096, r27097, r27098, r27099, r27100, r27101, r27102, r27103, r27104, r27105, r27106, r27107, r27108, r27109, r27110, r27111, r27112, r27113, r27114, r27115, r27116, r27117, r27118, r27119, r27120, r27121, r27122, r27123, r27124, r27125, r27126, r27127, r27128, r27129;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27076);
        mpfr_init(r27077);
        mpfr_init(r27078);
        mpfr_init(r27079);
        mpfr_init(r27080);
        mpfr_init(r27081);
        mpfr_init(r27082);
        mpfr_init(r27083);
        mpfr_init(r27084);
        mpfr_init(r27085);
        mpfr_init(r27086);
        mpfr_init(r27087);
        mpfr_init(r27088);
        mpfr_init(r27089);
        mpfr_init(r27090);
        mpfr_init(r27091);
        mpfr_init(r27092);
        mpfr_init(r27093);
        mpfr_init(r27094);
        mpfr_init(r27095);
        mpfr_init(r27096);
        mpfr_init(r27097);
        mpfr_init(r27098);
        mpfr_init(r27099);
        mpfr_init_set_str(r27100, "-4.586634916659257e+304", 10, MPFR_RNDN);
        mpfr_init(r27101);
        mpfr_init(r27102);
        mpfr_init(r27103);
        mpfr_init(r27104);
        mpfr_init(r27105);
        mpfr_init(r27106);
        mpfr_init(r27107);
        mpfr_init(r27108);
        mpfr_init(r27109);
        mpfr_init(r27110);
        mpfr_init(r27111);
        mpfr_init(r27112);
        mpfr_init(r27113);
        mpfr_init_set_str(r27114, "3.065894309188398e+307", 10, MPFR_RNDN);
        mpfr_init(r27115);
        mpfr_init(r27116);
        mpfr_init(r27117);
        mpfr_init(r27118);
        mpfr_init(r27119);
        mpfr_init(r27120);
        mpfr_init(r27121);
        mpfr_init(r27122);
        mpfr_init(r27123);
        mpfr_init(r27124);
        mpfr_init(r27125);
        mpfr_init(r27126);
        mpfr_init(r27127);
        mpfr_init(r27128);
        mpfr_init(r27129);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r27076, x, MPFR_RNDN);
        mpfr_set_d(r27077, y, MPFR_RNDN);
        mpfr_set_d(r27078, z, MPFR_RNDN);
        mpfr_mul(r27079, r27077, r27078, MPFR_RNDN);
        mpfr_mul(r27080, r27076, r27079, MPFR_RNDN);
        mpfr_set_d(r27081, i, MPFR_RNDN);
        mpfr_set_d(r27082, b, MPFR_RNDN);
        mpfr_mul(r27083, r27081, r27082, MPFR_RNDN);
        mpfr_set_d(r27084, t, MPFR_RNDN);
        mpfr_mul(r27085, r27084, r27076, MPFR_RNDN);
        mpfr_sub(r27086, r27083, r27085, MPFR_RNDN);
        mpfr_set_d(r27087, a, MPFR_RNDN);
        mpfr_mul(r27088, r27086, r27087, MPFR_RNDN);
        mpfr_set_d(r27089, c, MPFR_RNDN);
        mpfr_mul(r27090, r27089, r27082, MPFR_RNDN);
        mpfr_mul(r27091, r27090, r27078, MPFR_RNDN);
        mpfr_sub(r27092, r27088, r27091, MPFR_RNDN);
        mpfr_add(r27093, r27080, r27092, MPFR_RNDN);
        mpfr_set_d(r27094, j, MPFR_RNDN);
        mpfr_mul(r27095, r27089, r27084, MPFR_RNDN);
        mpfr_mul(r27096, r27081, r27077, MPFR_RNDN);
        mpfr_sub(r27097, r27095, r27096, MPFR_RNDN);
        mpfr_mul(r27098, r27094, r27097, MPFR_RNDN);
        mpfr_add(r27099, r27093, r27098, MPFR_RNDN);
        ;
        mpfr_set_si(r27101, mpfr_cmp(r27099, r27100) <= 0, MPFR_RNDN);
        mpfr_mul(r27102, r27084, r27087, MPFR_RNDN);
        mpfr_sub(r27103, r27079, r27102, MPFR_RNDN);
        mpfr_mul(r27104, r27076, r27103, MPFR_RNDN);
        mpfr_mul(r27105, r27089, r27078, MPFR_RNDN);
        mpfr_mul(r27106, r27081, r27087, MPFR_RNDN);
        mpfr_sub(r27107, r27105, r27106, MPFR_RNDN);
        mpfr_cbrt(r27108, r27107, MPFR_RNDN);
        mpfr_mul(r27109, r27108, r27108, MPFR_RNDN);
        mpfr_mul(r27110, r27082, r27109, MPFR_RNDN);
        mpfr_mul(r27111, r27110, r27108, MPFR_RNDN);
        mpfr_sub(r27112, r27104, r27111, MPFR_RNDN);
        mpfr_add(r27113, r27112, r27098, MPFR_RNDN);
        ;
        mpfr_set_si(r27115, mpfr_cmp(r27099, r27114) <= 0, MPFR_RNDN);
        mpfr_mul(r27116, r27078, r27089, MPFR_RNDN);
        mpfr_mul(r27117, r27087, r27081, MPFR_RNDN);
        mpfr_add(r27118, r27116, r27117, MPFR_RNDN);
        mpfr_mul(r27119, r27118, r27082, MPFR_RNDN);
        mpfr_mul(r27120, r27094, r27077, MPFR_RNDN);
        mpfr_mul(r27121, r27120, r27081, MPFR_RNDN);
        mpfr_sub(r27122, r27119, r27121, MPFR_RNDN);
        mpfr_mul(r27123, r27087, r27076, MPFR_RNDN);
        mpfr_mul(r27124, r27089, r27094, MPFR_RNDN);
        mpfr_add(r27125, r27123, r27124, MPFR_RNDN);
        mpfr_mul(r27126, r27084, r27125, MPFR_RNDN);
        mpfr_add(r27127, r27122, r27126, MPFR_RNDN);
        if (mpfr_get_si(r27115, MPFR_RNDN)) { mpfr_set(r27128, r27099, MPFR_RNDN); } else { mpfr_set(r27128, r27127, MPFR_RNDN); };
        if (mpfr_get_si(r27101, MPFR_RNDN)) { mpfr_set(r27129, r27113, MPFR_RNDN); } else { mpfr_set(r27129, r27128, MPFR_RNDN); };
        return mpfr_get_d(r27129, MPFR_RNDN);
}

static mpfr_t r27130, r27131, r27132, r27133, r27134, r27135, r27136, r27137, r27138, r27139, r27140, r27141, r27142, r27143, r27144, r27145, r27146, r27147, r27148, r27149, r27150, r27151, r27152, r27153, r27154, r27155, r27156, r27157, r27158, r27159, r27160, r27161, r27162, r27163, r27164, r27165, r27166, r27167, r27168, r27169, r27170, r27171, r27172, r27173, r27174, r27175, r27176, r27177, r27178, r27179, r27180, r27181, r27182, r27183;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27130);
        mpfr_init(r27131);
        mpfr_init(r27132);
        mpfr_init(r27133);
        mpfr_init(r27134);
        mpfr_init(r27135);
        mpfr_init(r27136);
        mpfr_init(r27137);
        mpfr_init(r27138);
        mpfr_init(r27139);
        mpfr_init(r27140);
        mpfr_init(r27141);
        mpfr_init(r27142);
        mpfr_init(r27143);
        mpfr_init(r27144);
        mpfr_init(r27145);
        mpfr_init(r27146);
        mpfr_init(r27147);
        mpfr_init(r27148);
        mpfr_init(r27149);
        mpfr_init(r27150);
        mpfr_init(r27151);
        mpfr_init(r27152);
        mpfr_init(r27153);
        mpfr_init_set_str(r27154, "-4.586634916659257e+304", 10, MPFR_RNDN);
        mpfr_init(r27155);
        mpfr_init(r27156);
        mpfr_init(r27157);
        mpfr_init(r27158);
        mpfr_init(r27159);
        mpfr_init(r27160);
        mpfr_init(r27161);
        mpfr_init(r27162);
        mpfr_init(r27163);
        mpfr_init(r27164);
        mpfr_init(r27165);
        mpfr_init(r27166);
        mpfr_init(r27167);
        mpfr_init_set_str(r27168, "3.065894309188398e+307", 10, MPFR_RNDN);
        mpfr_init(r27169);
        mpfr_init(r27170);
        mpfr_init(r27171);
        mpfr_init(r27172);
        mpfr_init(r27173);
        mpfr_init(r27174);
        mpfr_init(r27175);
        mpfr_init(r27176);
        mpfr_init(r27177);
        mpfr_init(r27178);
        mpfr_init(r27179);
        mpfr_init(r27180);
        mpfr_init(r27181);
        mpfr_init(r27182);
        mpfr_init(r27183);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r27130, x, MPFR_RNDN);
        mpfr_set_d(r27131, y, MPFR_RNDN);
        mpfr_set_d(r27132, z, MPFR_RNDN);
        mpfr_mul(r27133, r27131, r27132, MPFR_RNDN);
        mpfr_mul(r27134, r27130, r27133, MPFR_RNDN);
        mpfr_set_d(r27135, i, MPFR_RNDN);
        mpfr_set_d(r27136, b, MPFR_RNDN);
        mpfr_mul(r27137, r27135, r27136, MPFR_RNDN);
        mpfr_set_d(r27138, t, MPFR_RNDN);
        mpfr_mul(r27139, r27138, r27130, MPFR_RNDN);
        mpfr_sub(r27140, r27137, r27139, MPFR_RNDN);
        mpfr_set_d(r27141, a, MPFR_RNDN);
        mpfr_mul(r27142, r27140, r27141, MPFR_RNDN);
        mpfr_set_d(r27143, c, MPFR_RNDN);
        mpfr_mul(r27144, r27143, r27136, MPFR_RNDN);
        mpfr_mul(r27145, r27144, r27132, MPFR_RNDN);
        mpfr_sub(r27146, r27142, r27145, MPFR_RNDN);
        mpfr_add(r27147, r27134, r27146, MPFR_RNDN);
        mpfr_set_d(r27148, j, MPFR_RNDN);
        mpfr_mul(r27149, r27143, r27138, MPFR_RNDN);
        mpfr_mul(r27150, r27135, r27131, MPFR_RNDN);
        mpfr_sub(r27151, r27149, r27150, MPFR_RNDN);
        mpfr_mul(r27152, r27148, r27151, MPFR_RNDN);
        mpfr_add(r27153, r27147, r27152, MPFR_RNDN);
        ;
        mpfr_set_si(r27155, mpfr_cmp(r27153, r27154) <= 0, MPFR_RNDN);
        mpfr_mul(r27156, r27138, r27141, MPFR_RNDN);
        mpfr_sub(r27157, r27133, r27156, MPFR_RNDN);
        mpfr_mul(r27158, r27130, r27157, MPFR_RNDN);
        mpfr_mul(r27159, r27143, r27132, MPFR_RNDN);
        mpfr_mul(r27160, r27135, r27141, MPFR_RNDN);
        mpfr_sub(r27161, r27159, r27160, MPFR_RNDN);
        mpfr_cbrt(r27162, r27161, MPFR_RNDN);
        mpfr_mul(r27163, r27162, r27162, MPFR_RNDN);
        mpfr_mul(r27164, r27136, r27163, MPFR_RNDN);
        mpfr_mul(r27165, r27164, r27162, MPFR_RNDN);
        mpfr_sub(r27166, r27158, r27165, MPFR_RNDN);
        mpfr_add(r27167, r27166, r27152, MPFR_RNDN);
        ;
        mpfr_set_si(r27169, mpfr_cmp(r27153, r27168) <= 0, MPFR_RNDN);
        mpfr_mul(r27170, r27132, r27143, MPFR_RNDN);
        mpfr_mul(r27171, r27141, r27135, MPFR_RNDN);
        mpfr_add(r27172, r27170, r27171, MPFR_RNDN);
        mpfr_mul(r27173, r27172, r27136, MPFR_RNDN);
        mpfr_mul(r27174, r27148, r27131, MPFR_RNDN);
        mpfr_mul(r27175, r27174, r27135, MPFR_RNDN);
        mpfr_sub(r27176, r27173, r27175, MPFR_RNDN);
        mpfr_mul(r27177, r27141, r27130, MPFR_RNDN);
        mpfr_mul(r27178, r27143, r27148, MPFR_RNDN);
        mpfr_add(r27179, r27177, r27178, MPFR_RNDN);
        mpfr_mul(r27180, r27138, r27179, MPFR_RNDN);
        mpfr_add(r27181, r27176, r27180, MPFR_RNDN);
        if (mpfr_get_si(r27169, MPFR_RNDN)) { mpfr_set(r27182, r27153, MPFR_RNDN); } else { mpfr_set(r27182, r27181, MPFR_RNDN); };
        if (mpfr_get_si(r27155, MPFR_RNDN)) { mpfr_set(r27183, r27167, MPFR_RNDN); } else { mpfr_set(r27183, r27182, MPFR_RNDN); };
        return mpfr_get_d(r27183, MPFR_RNDN);
}

