#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 r10075 = x;
        float r10076 = y;
        float r10077 = z;
        float r10078 = r10076 * r10077;
        float r10079 = t;
        float r10080 = a;
        float r10081 = r10079 * r10080;
        float r10082 = r10078 - r10081;
        float r10083 = r10075 * r10082;
        float r10084 = b;
        float r10085 = c;
        float r10086 = r10085 * r10077;
        float r10087 = i;
        float r10088 = r10087 * r10080;
        float r10089 = r10086 - r10088;
        float r10090 = r10084 * r10089;
        float r10091 = r10083 - r10090;
        float r10092 = j;
        float r10093 = r10085 * r10079;
        float r10094 = r10087 * r10076;
        float r10095 = r10093 - r10094;
        float r10096 = r10092 * r10095;
        float r10097 = r10091 + r10096;
        return r10097;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r10098 = x;
        double r10099 = y;
        double r10100 = z;
        double r10101 = r10099 * r10100;
        double r10102 = t;
        double r10103 = a;
        double r10104 = r10102 * r10103;
        double r10105 = r10101 - r10104;
        double r10106 = r10098 * r10105;
        double r10107 = b;
        double r10108 = c;
        double r10109 = r10108 * r10100;
        double r10110 = i;
        double r10111 = r10110 * r10103;
        double r10112 = r10109 - r10111;
        double r10113 = r10107 * r10112;
        double r10114 = r10106 - r10113;
        double r10115 = j;
        double r10116 = r10108 * r10102;
        double r10117 = r10110 * r10099;
        double r10118 = r10116 - r10117;
        double r10119 = r10115 * r10118;
        double r10120 = r10114 + r10119;
        return r10120;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r10121 = j;
        float r10122 = c;
        float r10123 = t;
        float r10124 = r10122 * r10123;
        float r10125 = y;
        float r10126 = i;
        float r10127 = r10125 * r10126;
        float r10128 = r10124 - r10127;
        float r10129 = z;
        float r10130 = x;
        float r10131 = r10129 * r10130;
        float r10132 = r10125 * r10131;
        float r10133 = fma(r10121, r10128, r10132);
        float r10134 = r10122 * r10129;
        float r10135 = a;
        float r10136 = r10126 * r10135;
        float r10137 = r10134 - r10136;
        float r10138 = b;
        float r10139 = r10135 * r10130;
        float r10140 = r10139 * r10123;
        float r10141 = fma(r10137, r10138, r10140);
        float r10142 = r10133 - r10141;
        float r10143 = -1.2938856282681744e+307;
        bool r10144 = r10142 <= r10143;
        float r10145 = r10125 * r10129;
        float r10146 = r10123 * r10135;
        float r10147 = r10145 - r10146;
        float r10148 = -r10122;
        float r10149 = r10129 * r10138;
        float r10150 = r10148 * r10149;
        float r10151 = fma(r10130, r10147, r10150);
        float r10152 = r10138 * r10135;
        float r10153 = r10121 * r10125;
        float r10154 = r10152 - r10153;
        float r10155 = r10121 * r10122;
        float r10156 = r10155 * r10123;
        float r10157 = fma(r10126, r10154, r10156);
        float r10158 = r10151 + r10157;
        float r10159 = 3.261760181174107e+304;
        bool r10160 = r10142 <= r10159;
        float r10161 = r10160 ? r10142 : r10158;
        float r10162 = r10144 ? r10158 : r10161;
        return r10162;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r10163 = j;
        double r10164 = c;
        double r10165 = t;
        double r10166 = r10164 * r10165;
        double r10167 = y;
        double r10168 = i;
        double r10169 = r10167 * r10168;
        double r10170 = r10166 - r10169;
        double r10171 = z;
        double r10172 = x;
        double r10173 = r10171 * r10172;
        double r10174 = r10167 * r10173;
        double r10175 = fma(r10163, r10170, r10174);
        double r10176 = r10164 * r10171;
        double r10177 = a;
        double r10178 = r10168 * r10177;
        double r10179 = r10176 - r10178;
        double r10180 = b;
        double r10181 = r10177 * r10172;
        double r10182 = r10181 * r10165;
        double r10183 = fma(r10179, r10180, r10182);
        double r10184 = r10175 - r10183;
        double r10185 = -1.2938856282681744e+307;
        bool r10186 = r10184 <= r10185;
        double r10187 = r10167 * r10171;
        double r10188 = r10165 * r10177;
        double r10189 = r10187 - r10188;
        double r10190 = -r10164;
        double r10191 = r10171 * r10180;
        double r10192 = r10190 * r10191;
        double r10193 = fma(r10172, r10189, r10192);
        double r10194 = r10180 * r10177;
        double r10195 = r10163 * r10167;
        double r10196 = r10194 - r10195;
        double r10197 = r10163 * r10164;
        double r10198 = r10197 * r10165;
        double r10199 = fma(r10168, r10196, r10198);
        double r10200 = r10193 + r10199;
        double r10201 = 3.261760181174107e+304;
        bool r10202 = r10184 <= r10201;
        double r10203 = r10202 ? r10184 : r10200;
        double r10204 = r10186 ? r10200 : r10203;
        return r10204;
}

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 r10205, r10206, r10207, r10208, r10209, r10210, r10211, r10212, r10213, r10214, r10215, r10216, r10217, r10218, r10219, r10220, r10221, r10222, r10223, r10224, r10225, r10226, r10227;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        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(r10215);
        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(r10227);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10205, x, MPFR_RNDN);
        mpfr_set_d(r10206, y, MPFR_RNDN);
        mpfr_set_d(r10207, z, MPFR_RNDN);
        mpfr_mul(r10208, r10206, r10207, MPFR_RNDN);
        mpfr_set_d(r10209, t, MPFR_RNDN);
        mpfr_set_d(r10210, a, MPFR_RNDN);
        mpfr_mul(r10211, r10209, r10210, MPFR_RNDN);
        mpfr_sub(r10212, r10208, r10211, MPFR_RNDN);
        mpfr_mul(r10213, r10205, r10212, MPFR_RNDN);
        mpfr_set_d(r10214, b, MPFR_RNDN);
        mpfr_set_d(r10215, c, MPFR_RNDN);
        mpfr_mul(r10216, r10215, r10207, MPFR_RNDN);
        mpfr_set_d(r10217, i, MPFR_RNDN);
        mpfr_mul(r10218, r10217, r10210, MPFR_RNDN);
        mpfr_sub(r10219, r10216, r10218, MPFR_RNDN);
        mpfr_mul(r10220, r10214, r10219, MPFR_RNDN);
        mpfr_sub(r10221, r10213, r10220, MPFR_RNDN);
        mpfr_set_d(r10222, j, MPFR_RNDN);
        mpfr_mul(r10223, r10215, r10209, MPFR_RNDN);
        mpfr_mul(r10224, r10217, r10206, MPFR_RNDN);
        mpfr_sub(r10225, r10223, r10224, MPFR_RNDN);
        mpfr_mul(r10226, r10222, r10225, MPFR_RNDN);
        mpfr_add(r10227, r10221, r10226, MPFR_RNDN);
        return mpfr_get_d(r10227, MPFR_RNDN);
}

static mpfr_t r10228, r10229, r10230, r10231, r10232, r10233, r10234, r10235, r10236, r10237, r10238, r10239, r10240, r10241, r10242, r10243, r10244, r10245, r10246, r10247, r10248, r10249, r10250, r10251, r10252, r10253, r10254, r10255, r10256, r10257, r10258, r10259, r10260, r10261, r10262, r10263, r10264, r10265, r10266, r10267, r10268, r10269;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        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);
        mpfr_init(r10243);
        mpfr_init(r10244);
        mpfr_init(r10245);
        mpfr_init(r10246);
        mpfr_init(r10247);
        mpfr_init(r10248);
        mpfr_init(r10249);
        mpfr_init_set_str(r10250, "-1.2938856282681744e+307", 10, MPFR_RNDN);
        mpfr_init(r10251);
        mpfr_init(r10252);
        mpfr_init(r10253);
        mpfr_init(r10254);
        mpfr_init(r10255);
        mpfr_init(r10256);
        mpfr_init(r10257);
        mpfr_init(r10258);
        mpfr_init(r10259);
        mpfr_init(r10260);
        mpfr_init(r10261);
        mpfr_init(r10262);
        mpfr_init(r10263);
        mpfr_init(r10264);
        mpfr_init(r10265);
        mpfr_init_set_str(r10266, "3.261760181174107e+304", 10, MPFR_RNDN);
        mpfr_init(r10267);
        mpfr_init(r10268);
        mpfr_init(r10269);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10228, j, MPFR_RNDN);
        mpfr_set_d(r10229, c, MPFR_RNDN);
        mpfr_set_d(r10230, t, MPFR_RNDN);
        mpfr_mul(r10231, r10229, r10230, MPFR_RNDN);
        mpfr_set_d(r10232, y, MPFR_RNDN);
        mpfr_set_d(r10233, i, MPFR_RNDN);
        mpfr_mul(r10234, r10232, r10233, MPFR_RNDN);
        mpfr_sub(r10235, r10231, r10234, MPFR_RNDN);
        mpfr_set_d(r10236, z, MPFR_RNDN);
        mpfr_set_d(r10237, x, MPFR_RNDN);
        mpfr_mul(r10238, r10236, r10237, MPFR_RNDN);
        mpfr_mul(r10239, r10232, r10238, MPFR_RNDN);
        mpfr_fma(r10240, r10228, r10235, r10239, MPFR_RNDN);
        mpfr_mul(r10241, r10229, r10236, MPFR_RNDN);
        mpfr_set_d(r10242, a, MPFR_RNDN);
        mpfr_mul(r10243, r10233, r10242, MPFR_RNDN);
        mpfr_sub(r10244, r10241, r10243, MPFR_RNDN);
        mpfr_set_d(r10245, b, MPFR_RNDN);
        mpfr_mul(r10246, r10242, r10237, MPFR_RNDN);
        mpfr_mul(r10247, r10246, r10230, MPFR_RNDN);
        mpfr_fma(r10248, r10244, r10245, r10247, MPFR_RNDN);
        mpfr_sub(r10249, r10240, r10248, MPFR_RNDN);
        ;
        mpfr_set_si(r10251, mpfr_cmp(r10249, r10250) <= 0, MPFR_RNDN);
        mpfr_mul(r10252, r10232, r10236, MPFR_RNDN);
        mpfr_mul(r10253, r10230, r10242, MPFR_RNDN);
        mpfr_sub(r10254, r10252, r10253, MPFR_RNDN);
        mpfr_neg(r10255, r10229, MPFR_RNDN);
        mpfr_mul(r10256, r10236, r10245, MPFR_RNDN);
        mpfr_mul(r10257, r10255, r10256, MPFR_RNDN);
        mpfr_fma(r10258, r10237, r10254, r10257, MPFR_RNDN);
        mpfr_mul(r10259, r10245, r10242, MPFR_RNDN);
        mpfr_mul(r10260, r10228, r10232, MPFR_RNDN);
        mpfr_sub(r10261, r10259, r10260, MPFR_RNDN);
        mpfr_mul(r10262, r10228, r10229, MPFR_RNDN);
        mpfr_mul(r10263, r10262, r10230, MPFR_RNDN);
        mpfr_fma(r10264, r10233, r10261, r10263, MPFR_RNDN);
        mpfr_add(r10265, r10258, r10264, MPFR_RNDN);
        ;
        mpfr_set_si(r10267, mpfr_cmp(r10249, r10266) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r10267, MPFR_RNDN)) { mpfr_set(r10268, r10249, MPFR_RNDN); } else { mpfr_set(r10268, r10265, MPFR_RNDN); };
        if (mpfr_get_si(r10251, MPFR_RNDN)) { mpfr_set(r10269, r10265, MPFR_RNDN); } else { mpfr_set(r10269, r10268, MPFR_RNDN); };
        return mpfr_get_d(r10269, MPFR_RNDN);
}

static mpfr_t r10270, r10271, r10272, r10273, r10274, r10275, r10276, r10277, r10278, r10279, r10280, r10281, r10282, r10283, r10284, r10285, r10286, r10287, r10288, r10289, r10290, r10291, r10292, r10293, r10294, r10295, r10296, r10297, r10298, r10299, r10300, r10301, r10302, r10303, r10304, r10305, r10306, r10307, r10308, r10309, r10310, r10311;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r10270);
        mpfr_init(r10271);
        mpfr_init(r10272);
        mpfr_init(r10273);
        mpfr_init(r10274);
        mpfr_init(r10275);
        mpfr_init(r10276);
        mpfr_init(r10277);
        mpfr_init(r10278);
        mpfr_init(r10279);
        mpfr_init(r10280);
        mpfr_init(r10281);
        mpfr_init(r10282);
        mpfr_init(r10283);
        mpfr_init(r10284);
        mpfr_init(r10285);
        mpfr_init(r10286);
        mpfr_init(r10287);
        mpfr_init(r10288);
        mpfr_init(r10289);
        mpfr_init(r10290);
        mpfr_init(r10291);
        mpfr_init_set_str(r10292, "-1.2938856282681744e+307", 10, MPFR_RNDN);
        mpfr_init(r10293);
        mpfr_init(r10294);
        mpfr_init(r10295);
        mpfr_init(r10296);
        mpfr_init(r10297);
        mpfr_init(r10298);
        mpfr_init(r10299);
        mpfr_init(r10300);
        mpfr_init(r10301);
        mpfr_init(r10302);
        mpfr_init(r10303);
        mpfr_init(r10304);
        mpfr_init(r10305);
        mpfr_init(r10306);
        mpfr_init(r10307);
        mpfr_init_set_str(r10308, "3.261760181174107e+304", 10, MPFR_RNDN);
        mpfr_init(r10309);
        mpfr_init(r10310);
        mpfr_init(r10311);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10270, j, MPFR_RNDN);
        mpfr_set_d(r10271, c, MPFR_RNDN);
        mpfr_set_d(r10272, t, MPFR_RNDN);
        mpfr_mul(r10273, r10271, r10272, MPFR_RNDN);
        mpfr_set_d(r10274, y, MPFR_RNDN);
        mpfr_set_d(r10275, i, MPFR_RNDN);
        mpfr_mul(r10276, r10274, r10275, MPFR_RNDN);
        mpfr_sub(r10277, r10273, r10276, MPFR_RNDN);
        mpfr_set_d(r10278, z, MPFR_RNDN);
        mpfr_set_d(r10279, x, MPFR_RNDN);
        mpfr_mul(r10280, r10278, r10279, MPFR_RNDN);
        mpfr_mul(r10281, r10274, r10280, MPFR_RNDN);
        mpfr_fma(r10282, r10270, r10277, r10281, MPFR_RNDN);
        mpfr_mul(r10283, r10271, r10278, MPFR_RNDN);
        mpfr_set_d(r10284, a, MPFR_RNDN);
        mpfr_mul(r10285, r10275, r10284, MPFR_RNDN);
        mpfr_sub(r10286, r10283, r10285, MPFR_RNDN);
        mpfr_set_d(r10287, b, MPFR_RNDN);
        mpfr_mul(r10288, r10284, r10279, MPFR_RNDN);
        mpfr_mul(r10289, r10288, r10272, MPFR_RNDN);
        mpfr_fma(r10290, r10286, r10287, r10289, MPFR_RNDN);
        mpfr_sub(r10291, r10282, r10290, MPFR_RNDN);
        ;
        mpfr_set_si(r10293, mpfr_cmp(r10291, r10292) <= 0, MPFR_RNDN);
        mpfr_mul(r10294, r10274, r10278, MPFR_RNDN);
        mpfr_mul(r10295, r10272, r10284, MPFR_RNDN);
        mpfr_sub(r10296, r10294, r10295, MPFR_RNDN);
        mpfr_neg(r10297, r10271, MPFR_RNDN);
        mpfr_mul(r10298, r10278, r10287, MPFR_RNDN);
        mpfr_mul(r10299, r10297, r10298, MPFR_RNDN);
        mpfr_fma(r10300, r10279, r10296, r10299, MPFR_RNDN);
        mpfr_mul(r10301, r10287, r10284, MPFR_RNDN);
        mpfr_mul(r10302, r10270, r10274, MPFR_RNDN);
        mpfr_sub(r10303, r10301, r10302, MPFR_RNDN);
        mpfr_mul(r10304, r10270, r10271, MPFR_RNDN);
        mpfr_mul(r10305, r10304, r10272, MPFR_RNDN);
        mpfr_fma(r10306, r10275, r10303, r10305, MPFR_RNDN);
        mpfr_add(r10307, r10300, r10306, MPFR_RNDN);
        ;
        mpfr_set_si(r10309, mpfr_cmp(r10291, r10308) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r10309, MPFR_RNDN)) { mpfr_set(r10310, r10291, MPFR_RNDN); } else { mpfr_set(r10310, r10307, MPFR_RNDN); };
        if (mpfr_get_si(r10293, MPFR_RNDN)) { mpfr_set(r10311, r10307, MPFR_RNDN); } else { mpfr_set(r10311, r10310, MPFR_RNDN); };
        return mpfr_get_d(r10311, MPFR_RNDN);
}

