#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 r9994 = x;
        float r9995 = y;
        float r9996 = z;
        float r9997 = r9995 * r9996;
        float r9998 = t;
        float r9999 = a;
        float r10000 = r9998 * r9999;
        float r10001 = r9997 - r10000;
        float r10002 = r9994 * r10001;
        float r10003 = b;
        float r10004 = c;
        float r10005 = r10004 * r9996;
        float r10006 = i;
        float r10007 = r10006 * r9999;
        float r10008 = r10005 - r10007;
        float r10009 = r10003 * r10008;
        float r10010 = r10002 - r10009;
        float r10011 = j;
        float r10012 = r10004 * r9998;
        float r10013 = r10006 * r9995;
        float r10014 = r10012 - r10013;
        float r10015 = r10011 * r10014;
        float r10016 = r10010 + r10015;
        return r10016;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r10017 = x;
        double r10018 = y;
        double r10019 = z;
        double r10020 = r10018 * r10019;
        double r10021 = t;
        double r10022 = a;
        double r10023 = r10021 * r10022;
        double r10024 = r10020 - r10023;
        double r10025 = r10017 * r10024;
        double r10026 = b;
        double r10027 = c;
        double r10028 = r10027 * r10019;
        double r10029 = i;
        double r10030 = r10029 * r10022;
        double r10031 = r10028 - r10030;
        double r10032 = r10026 * r10031;
        double r10033 = r10025 - r10032;
        double r10034 = j;
        double r10035 = r10027 * r10021;
        double r10036 = r10029 * r10018;
        double r10037 = r10035 - r10036;
        double r10038 = r10034 * r10037;
        double r10039 = r10033 + r10038;
        return r10039;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r10040 = c;
        float r10041 = t;
        float r10042 = r10040 * r10041;
        float r10043 = y;
        float r10044 = i;
        float r10045 = r10043 * r10044;
        float r10046 = r10042 - r10045;
        float r10047 = j;
        float r10048 = r10046 * r10047;
        float r10049 = z;
        float r10050 = r10040 * r10049;
        float r10051 = a;
        float r10052 = r10044 * r10051;
        float r10053 = r10050 - r10052;
        float r10054 = b;
        float r10055 = r10053 * r10054;
        float r10056 = r10048 - r10055;
        float r10057 = -1.2938856282681744e+307;
        bool r10058 = r10056 <= r10057;
        float r10059 = r10049 * r10043;
        float r10060 = r10051 * r10041;
        float r10061 = r10059 - r10060;
        float r10062 = x;
        float r10063 = r10061 * r10062;
        float r10064 = r10041 * r10040;
        float r10065 = r10044 * r10043;
        float r10066 = r10064 - r10065;
        float r10067 = r10066 * r10047;
        float r10068 = r10063 + r10067;
        float r10069 = -4.7207762576185816e+165;
        bool r10070 = r10056 <= r10069;
        float r10071 = r10043 * r10049;
        float r10072 = r10041 * r10051;
        float r10073 = r10071 - r10072;
        float r10074 = r10062 * r10073;
        float r10075 = cbrt(r10053);
        float r10076 = r10075 * r10075;
        float r10077 = r10054 * r10076;
        float r10078 = r10077 * r10075;
        float r10079 = r10074 - r10078;
        float r10080 = r10042 - r10065;
        float r10081 = r10047 * r10080;
        float r10082 = r10079 + r10081;
        float r10083 = r10070 ? r10056 : r10082;
        float r10084 = r10058 ? r10068 : r10083;
        return r10084;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r10085 = c;
        double r10086 = t;
        double r10087 = r10085 * r10086;
        double r10088 = y;
        double r10089 = i;
        double r10090 = r10088 * r10089;
        double r10091 = r10087 - r10090;
        double r10092 = j;
        double r10093 = r10091 * r10092;
        double r10094 = z;
        double r10095 = r10085 * r10094;
        double r10096 = a;
        double r10097 = r10089 * r10096;
        double r10098 = r10095 - r10097;
        double r10099 = b;
        double r10100 = r10098 * r10099;
        double r10101 = r10093 - r10100;
        double r10102 = -1.2938856282681744e+307;
        bool r10103 = r10101 <= r10102;
        double r10104 = r10094 * r10088;
        double r10105 = r10096 * r10086;
        double r10106 = r10104 - r10105;
        double r10107 = x;
        double r10108 = r10106 * r10107;
        double r10109 = r10086 * r10085;
        double r10110 = r10089 * r10088;
        double r10111 = r10109 - r10110;
        double r10112 = r10111 * r10092;
        double r10113 = r10108 + r10112;
        double r10114 = -4.7207762576185816e+165;
        bool r10115 = r10101 <= r10114;
        double r10116 = r10088 * r10094;
        double r10117 = r10086 * r10096;
        double r10118 = r10116 - r10117;
        double r10119 = r10107 * r10118;
        double r10120 = cbrt(r10098);
        double r10121 = r10120 * r10120;
        double r10122 = r10099 * r10121;
        double r10123 = r10122 * r10120;
        double r10124 = r10119 - r10123;
        double r10125 = r10087 - r10110;
        double r10126 = r10092 * r10125;
        double r10127 = r10124 + r10126;
        double r10128 = r10115 ? r10101 : r10127;
        double r10129 = r10103 ? r10113 : r10128;
        return r10129;
}

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 r10130, r10131, r10132, r10133, r10134, r10135, r10136, r10137, r10138, r10139, r10140, r10141, r10142, r10143, r10144, r10145, r10146, r10147, r10148, r10149, r10150, r10151, r10152;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r10130);
        mpfr_init(r10131);
        mpfr_init(r10132);
        mpfr_init(r10133);
        mpfr_init(r10134);
        mpfr_init(r10135);
        mpfr_init(r10136);
        mpfr_init(r10137);
        mpfr_init(r10138);
        mpfr_init(r10139);
        mpfr_init(r10140);
        mpfr_init(r10141);
        mpfr_init(r10142);
        mpfr_init(r10143);
        mpfr_init(r10144);
        mpfr_init(r10145);
        mpfr_init(r10146);
        mpfr_init(r10147);
        mpfr_init(r10148);
        mpfr_init(r10149);
        mpfr_init(r10150);
        mpfr_init(r10151);
        mpfr_init(r10152);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10130, x, MPFR_RNDN);
        mpfr_set_d(r10131, y, MPFR_RNDN);
        mpfr_set_d(r10132, z, MPFR_RNDN);
        mpfr_mul(r10133, r10131, r10132, MPFR_RNDN);
        mpfr_set_d(r10134, t, MPFR_RNDN);
        mpfr_set_d(r10135, a, MPFR_RNDN);
        mpfr_mul(r10136, r10134, r10135, MPFR_RNDN);
        mpfr_sub(r10137, r10133, r10136, MPFR_RNDN);
        mpfr_mul(r10138, r10130, r10137, MPFR_RNDN);
        mpfr_set_d(r10139, b, MPFR_RNDN);
        mpfr_set_d(r10140, c, MPFR_RNDN);
        mpfr_mul(r10141, r10140, r10132, MPFR_RNDN);
        mpfr_set_d(r10142, i, MPFR_RNDN);
        mpfr_mul(r10143, r10142, r10135, MPFR_RNDN);
        mpfr_sub(r10144, r10141, r10143, MPFR_RNDN);
        mpfr_mul(r10145, r10139, r10144, MPFR_RNDN);
        mpfr_sub(r10146, r10138, r10145, MPFR_RNDN);
        mpfr_set_d(r10147, j, MPFR_RNDN);
        mpfr_mul(r10148, r10140, r10134, MPFR_RNDN);
        mpfr_mul(r10149, r10142, r10131, MPFR_RNDN);
        mpfr_sub(r10150, r10148, r10149, MPFR_RNDN);
        mpfr_mul(r10151, r10147, r10150, MPFR_RNDN);
        mpfr_add(r10152, r10146, r10151, MPFR_RNDN);
        return mpfr_get_d(r10152, MPFR_RNDN);
}

static mpfr_t r10153, r10154, r10155, r10156, r10157, r10158, r10159, r10160, r10161, r10162, r10163, r10164, r10165, r10166, r10167, r10168, r10169, r10170, r10171, r10172, r10173, r10174, r10175, r10176, r10177, r10178, r10179, r10180, r10181, r10182, r10183, r10184, r10185, r10186, r10187, r10188, r10189, r10190, r10191, r10192, r10193, r10194, r10195, r10196, r10197;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r10153);
        mpfr_init(r10154);
        mpfr_init(r10155);
        mpfr_init(r10156);
        mpfr_init(r10157);
        mpfr_init(r10158);
        mpfr_init(r10159);
        mpfr_init(r10160);
        mpfr_init(r10161);
        mpfr_init(r10162);
        mpfr_init(r10163);
        mpfr_init(r10164);
        mpfr_init(r10165);
        mpfr_init(r10166);
        mpfr_init(r10167);
        mpfr_init(r10168);
        mpfr_init(r10169);
        mpfr_init_set_str(r10170, "-1.2938856282681744e+307", 10, MPFR_RNDN);
        mpfr_init(r10171);
        mpfr_init(r10172);
        mpfr_init(r10173);
        mpfr_init(r10174);
        mpfr_init(r10175);
        mpfr_init(r10176);
        mpfr_init(r10177);
        mpfr_init(r10178);
        mpfr_init(r10179);
        mpfr_init(r10180);
        mpfr_init(r10181);
        mpfr_init_set_str(r10182, "-4.7207762576185816e+165", 10, MPFR_RNDN);
        mpfr_init(r10183);
        mpfr_init(r10184);
        mpfr_init(r10185);
        mpfr_init(r10186);
        mpfr_init(r10187);
        mpfr_init(r10188);
        mpfr_init(r10189);
        mpfr_init(r10190);
        mpfr_init(r10191);
        mpfr_init(r10192);
        mpfr_init(r10193);
        mpfr_init(r10194);
        mpfr_init(r10195);
        mpfr_init(r10196);
        mpfr_init(r10197);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10153, c, MPFR_RNDN);
        mpfr_set_d(r10154, t, MPFR_RNDN);
        mpfr_mul(r10155, r10153, r10154, MPFR_RNDN);
        mpfr_set_d(r10156, y, MPFR_RNDN);
        mpfr_set_d(r10157, i, MPFR_RNDN);
        mpfr_mul(r10158, r10156, r10157, MPFR_RNDN);
        mpfr_sub(r10159, r10155, r10158, MPFR_RNDN);
        mpfr_set_d(r10160, j, MPFR_RNDN);
        mpfr_mul(r10161, r10159, r10160, MPFR_RNDN);
        mpfr_set_d(r10162, z, MPFR_RNDN);
        mpfr_mul(r10163, r10153, r10162, MPFR_RNDN);
        mpfr_set_d(r10164, a, MPFR_RNDN);
        mpfr_mul(r10165, r10157, r10164, MPFR_RNDN);
        mpfr_sub(r10166, r10163, r10165, MPFR_RNDN);
        mpfr_set_d(r10167, b, MPFR_RNDN);
        mpfr_mul(r10168, r10166, r10167, MPFR_RNDN);
        mpfr_sub(r10169, r10161, r10168, MPFR_RNDN);
        ;
        mpfr_set_si(r10171, mpfr_cmp(r10169, r10170) <= 0, MPFR_RNDN);
        mpfr_mul(r10172, r10162, r10156, MPFR_RNDN);
        mpfr_mul(r10173, r10164, r10154, MPFR_RNDN);
        mpfr_sub(r10174, r10172, r10173, MPFR_RNDN);
        mpfr_set_d(r10175, x, MPFR_RNDN);
        mpfr_mul(r10176, r10174, r10175, MPFR_RNDN);
        mpfr_mul(r10177, r10154, r10153, MPFR_RNDN);
        mpfr_mul(r10178, r10157, r10156, MPFR_RNDN);
        mpfr_sub(r10179, r10177, r10178, MPFR_RNDN);
        mpfr_mul(r10180, r10179, r10160, MPFR_RNDN);
        mpfr_add(r10181, r10176, r10180, MPFR_RNDN);
        ;
        mpfr_set_si(r10183, mpfr_cmp(r10169, r10182) <= 0, MPFR_RNDN);
        mpfr_mul(r10184, r10156, r10162, MPFR_RNDN);
        mpfr_mul(r10185, r10154, r10164, MPFR_RNDN);
        mpfr_sub(r10186, r10184, r10185, MPFR_RNDN);
        mpfr_mul(r10187, r10175, r10186, MPFR_RNDN);
        mpfr_cbrt(r10188, r10166, MPFR_RNDN);
        mpfr_mul(r10189, r10188, r10188, MPFR_RNDN);
        mpfr_mul(r10190, r10167, r10189, MPFR_RNDN);
        mpfr_mul(r10191, r10190, r10188, MPFR_RNDN);
        mpfr_sub(r10192, r10187, r10191, MPFR_RNDN);
        mpfr_sub(r10193, r10155, r10178, MPFR_RNDN);
        mpfr_mul(r10194, r10160, r10193, MPFR_RNDN);
        mpfr_add(r10195, r10192, r10194, MPFR_RNDN);
        if (mpfr_get_si(r10183, MPFR_RNDN)) { mpfr_set(r10196, r10169, MPFR_RNDN); } else { mpfr_set(r10196, r10195, MPFR_RNDN); };
        if (mpfr_get_si(r10171, MPFR_RNDN)) { mpfr_set(r10197, r10181, MPFR_RNDN); } else { mpfr_set(r10197, r10196, MPFR_RNDN); };
        return mpfr_get_d(r10197, MPFR_RNDN);
}

static mpfr_t r10198, r10199, r10200, r10201, r10202, r10203, r10204, r10205, r10206, r10207, r10208, r10209, r10210, r10211, r10212, r10213, r10214, r10215, r10216, r10217, r10218, r10219, r10220, r10221, r10222, r10223, r10224, r10225, r10226, r10227, r10228, r10229, r10230, r10231, r10232, r10233, r10234, r10235, r10236, r10237, r10238, r10239, r10240, r10241, r10242;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r10198);
        mpfr_init(r10199);
        mpfr_init(r10200);
        mpfr_init(r10201);
        mpfr_init(r10202);
        mpfr_init(r10203);
        mpfr_init(r10204);
        mpfr_init(r10205);
        mpfr_init(r10206);
        mpfr_init(r10207);
        mpfr_init(r10208);
        mpfr_init(r10209);
        mpfr_init(r10210);
        mpfr_init(r10211);
        mpfr_init(r10212);
        mpfr_init(r10213);
        mpfr_init(r10214);
        mpfr_init_set_str(r10215, "-1.2938856282681744e+307", 10, MPFR_RNDN);
        mpfr_init(r10216);
        mpfr_init(r10217);
        mpfr_init(r10218);
        mpfr_init(r10219);
        mpfr_init(r10220);
        mpfr_init(r10221);
        mpfr_init(r10222);
        mpfr_init(r10223);
        mpfr_init(r10224);
        mpfr_init(r10225);
        mpfr_init(r10226);
        mpfr_init_set_str(r10227, "-4.7207762576185816e+165", 10, MPFR_RNDN);
        mpfr_init(r10228);
        mpfr_init(r10229);
        mpfr_init(r10230);
        mpfr_init(r10231);
        mpfr_init(r10232);
        mpfr_init(r10233);
        mpfr_init(r10234);
        mpfr_init(r10235);
        mpfr_init(r10236);
        mpfr_init(r10237);
        mpfr_init(r10238);
        mpfr_init(r10239);
        mpfr_init(r10240);
        mpfr_init(r10241);
        mpfr_init(r10242);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10198, c, MPFR_RNDN);
        mpfr_set_d(r10199, t, MPFR_RNDN);
        mpfr_mul(r10200, r10198, r10199, MPFR_RNDN);
        mpfr_set_d(r10201, y, MPFR_RNDN);
        mpfr_set_d(r10202, i, MPFR_RNDN);
        mpfr_mul(r10203, r10201, r10202, MPFR_RNDN);
        mpfr_sub(r10204, r10200, r10203, MPFR_RNDN);
        mpfr_set_d(r10205, j, MPFR_RNDN);
        mpfr_mul(r10206, r10204, r10205, MPFR_RNDN);
        mpfr_set_d(r10207, z, MPFR_RNDN);
        mpfr_mul(r10208, r10198, r10207, MPFR_RNDN);
        mpfr_set_d(r10209, a, MPFR_RNDN);
        mpfr_mul(r10210, r10202, r10209, MPFR_RNDN);
        mpfr_sub(r10211, r10208, r10210, MPFR_RNDN);
        mpfr_set_d(r10212, b, MPFR_RNDN);
        mpfr_mul(r10213, r10211, r10212, MPFR_RNDN);
        mpfr_sub(r10214, r10206, r10213, MPFR_RNDN);
        ;
        mpfr_set_si(r10216, mpfr_cmp(r10214, r10215) <= 0, MPFR_RNDN);
        mpfr_mul(r10217, r10207, r10201, MPFR_RNDN);
        mpfr_mul(r10218, r10209, r10199, MPFR_RNDN);
        mpfr_sub(r10219, r10217, r10218, MPFR_RNDN);
        mpfr_set_d(r10220, x, MPFR_RNDN);
        mpfr_mul(r10221, r10219, r10220, MPFR_RNDN);
        mpfr_mul(r10222, r10199, r10198, MPFR_RNDN);
        mpfr_mul(r10223, r10202, r10201, MPFR_RNDN);
        mpfr_sub(r10224, r10222, r10223, MPFR_RNDN);
        mpfr_mul(r10225, r10224, r10205, MPFR_RNDN);
        mpfr_add(r10226, r10221, r10225, MPFR_RNDN);
        ;
        mpfr_set_si(r10228, mpfr_cmp(r10214, r10227) <= 0, MPFR_RNDN);
        mpfr_mul(r10229, r10201, r10207, MPFR_RNDN);
        mpfr_mul(r10230, r10199, r10209, MPFR_RNDN);
        mpfr_sub(r10231, r10229, r10230, MPFR_RNDN);
        mpfr_mul(r10232, r10220, r10231, MPFR_RNDN);
        mpfr_cbrt(r10233, r10211, MPFR_RNDN);
        mpfr_mul(r10234, r10233, r10233, MPFR_RNDN);
        mpfr_mul(r10235, r10212, r10234, MPFR_RNDN);
        mpfr_mul(r10236, r10235, r10233, MPFR_RNDN);
        mpfr_sub(r10237, r10232, r10236, MPFR_RNDN);
        mpfr_sub(r10238, r10200, r10223, MPFR_RNDN);
        mpfr_mul(r10239, r10205, r10238, MPFR_RNDN);
        mpfr_add(r10240, r10237, r10239, MPFR_RNDN);
        if (mpfr_get_si(r10228, MPFR_RNDN)) { mpfr_set(r10241, r10214, MPFR_RNDN); } else { mpfr_set(r10241, r10240, MPFR_RNDN); };
        if (mpfr_get_si(r10216, MPFR_RNDN)) { mpfr_set(r10242, r10226, MPFR_RNDN); } else { mpfr_set(r10242, r10241, MPFR_RNDN); };
        return mpfr_get_d(r10242, MPFR_RNDN);
}

