#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 r48122 = x;
        float r48123 = y;
        float r48124 = z;
        float r48125 = r48123 * r48124;
        float r48126 = t;
        float r48127 = a;
        float r48128 = r48126 * r48127;
        float r48129 = r48125 - r48128;
        float r48130 = r48122 * r48129;
        float r48131 = b;
        float r48132 = c;
        float r48133 = r48132 * r48124;
        float r48134 = i;
        float r48135 = r48134 * r48127;
        float r48136 = r48133 - r48135;
        float r48137 = r48131 * r48136;
        float r48138 = r48130 - r48137;
        float r48139 = j;
        float r48140 = r48132 * r48126;
        float r48141 = r48134 * r48123;
        float r48142 = r48140 - r48141;
        float r48143 = r48139 * r48142;
        float r48144 = r48138 + r48143;
        return r48144;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r48145 = x;
        double r48146 = y;
        double r48147 = z;
        double r48148 = r48146 * r48147;
        double r48149 = t;
        double r48150 = a;
        double r48151 = r48149 * r48150;
        double r48152 = r48148 - r48151;
        double r48153 = r48145 * r48152;
        double r48154 = b;
        double r48155 = c;
        double r48156 = r48155 * r48147;
        double r48157 = i;
        double r48158 = r48157 * r48150;
        double r48159 = r48156 - r48158;
        double r48160 = r48154 * r48159;
        double r48161 = r48153 - r48160;
        double r48162 = j;
        double r48163 = r48155 * r48149;
        double r48164 = r48157 * r48146;
        double r48165 = r48163 - r48164;
        double r48166 = r48162 * r48165;
        double r48167 = r48161 + r48166;
        return r48167;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r48168 = x;
        float r48169 = -3.1186130314637846e+124;
        bool r48170 = r48168 <= r48169;
        float r48171 = y;
        float r48172 = z;
        float r48173 = r48171 * r48172;
        float r48174 = t;
        float r48175 = a;
        float r48176 = r48174 * r48175;
        float r48177 = r48173 - r48176;
        float r48178 = r48168 * r48177;
        float r48179 = b;
        float r48180 = c;
        float r48181 = r48180 * r48172;
        float r48182 = i;
        float r48183 = r48182 * r48175;
        float r48184 = r48181 - r48183;
        float r48185 = cbrt(r48184);
        float r48186 = r48185 * r48185;
        float r48187 = r48179 * r48186;
        float r48188 = r48187 * r48185;
        float r48189 = r48178 - r48188;
        float r48190 = j;
        float r48191 = r48180 * r48174;
        float r48192 = r48182 * r48171;
        float r48193 = r48191 - r48192;
        float r48194 = r48190 * r48193;
        float r48195 = r48189 + r48194;
        float r48196 = 4.863955640625947e+121;
        bool r48197 = r48168 <= r48196;
        float r48198 = r48168 * r48172;
        float r48199 = r48198 * r48171;
        float r48200 = r48174 * r48168;
        float r48201 = -r48175;
        float r48202 = r48200 * r48201;
        float r48203 = r48199 + r48202;
        float r48204 = r48184 * r48179;
        float r48205 = r48171 * r48182;
        float r48206 = r48191 - r48205;
        float r48207 = r48190 * r48206;
        float r48208 = r48204 - r48207;
        float r48209 = r48203 - r48208;
        float r48210 = r48197 ? r48209 : r48195;
        float r48211 = r48170 ? r48195 : r48210;
        return r48211;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r48212 = x;
        double r48213 = -3.1186130314637846e+124;
        bool r48214 = r48212 <= r48213;
        double r48215 = y;
        double r48216 = z;
        double r48217 = r48215 * r48216;
        double r48218 = t;
        double r48219 = a;
        double r48220 = r48218 * r48219;
        double r48221 = r48217 - r48220;
        double r48222 = r48212 * r48221;
        double r48223 = b;
        double r48224 = c;
        double r48225 = r48224 * r48216;
        double r48226 = i;
        double r48227 = r48226 * r48219;
        double r48228 = r48225 - r48227;
        double r48229 = cbrt(r48228);
        double r48230 = r48229 * r48229;
        double r48231 = r48223 * r48230;
        double r48232 = r48231 * r48229;
        double r48233 = r48222 - r48232;
        double r48234 = j;
        double r48235 = r48224 * r48218;
        double r48236 = r48226 * r48215;
        double r48237 = r48235 - r48236;
        double r48238 = r48234 * r48237;
        double r48239 = r48233 + r48238;
        double r48240 = 4.863955640625947e+121;
        bool r48241 = r48212 <= r48240;
        double r48242 = r48212 * r48216;
        double r48243 = r48242 * r48215;
        double r48244 = r48218 * r48212;
        double r48245 = -r48219;
        double r48246 = r48244 * r48245;
        double r48247 = r48243 + r48246;
        double r48248 = r48228 * r48223;
        double r48249 = r48215 * r48226;
        double r48250 = r48235 - r48249;
        double r48251 = r48234 * r48250;
        double r48252 = r48248 - r48251;
        double r48253 = r48247 - r48252;
        double r48254 = r48241 ? r48253 : r48239;
        double r48255 = r48214 ? r48239 : r48254;
        return r48255;
}

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 r48256, r48257, r48258, r48259, r48260, r48261, r48262, r48263, r48264, r48265, r48266, r48267, r48268, r48269, r48270, r48271, r48272, r48273, r48274, r48275, r48276, r48277, r48278;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r48256);
        mpfr_init(r48257);
        mpfr_init(r48258);
        mpfr_init(r48259);
        mpfr_init(r48260);
        mpfr_init(r48261);
        mpfr_init(r48262);
        mpfr_init(r48263);
        mpfr_init(r48264);
        mpfr_init(r48265);
        mpfr_init(r48266);
        mpfr_init(r48267);
        mpfr_init(r48268);
        mpfr_init(r48269);
        mpfr_init(r48270);
        mpfr_init(r48271);
        mpfr_init(r48272);
        mpfr_init(r48273);
        mpfr_init(r48274);
        mpfr_init(r48275);
        mpfr_init(r48276);
        mpfr_init(r48277);
        mpfr_init(r48278);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r48256, x, MPFR_RNDN);
        mpfr_set_d(r48257, y, MPFR_RNDN);
        mpfr_set_d(r48258, z, MPFR_RNDN);
        mpfr_mul(r48259, r48257, r48258, MPFR_RNDN);
        mpfr_set_d(r48260, t, MPFR_RNDN);
        mpfr_set_d(r48261, a, MPFR_RNDN);
        mpfr_mul(r48262, r48260, r48261, MPFR_RNDN);
        mpfr_sub(r48263, r48259, r48262, MPFR_RNDN);
        mpfr_mul(r48264, r48256, r48263, MPFR_RNDN);
        mpfr_set_d(r48265, b, MPFR_RNDN);
        mpfr_set_d(r48266, c, MPFR_RNDN);
        mpfr_mul(r48267, r48266, r48258, MPFR_RNDN);
        mpfr_set_d(r48268, i, MPFR_RNDN);
        mpfr_mul(r48269, r48268, r48261, MPFR_RNDN);
        mpfr_sub(r48270, r48267, r48269, MPFR_RNDN);
        mpfr_mul(r48271, r48265, r48270, MPFR_RNDN);
        mpfr_sub(r48272, r48264, r48271, MPFR_RNDN);
        mpfr_set_d(r48273, j, MPFR_RNDN);
        mpfr_mul(r48274, r48266, r48260, MPFR_RNDN);
        mpfr_mul(r48275, r48268, r48257, MPFR_RNDN);
        mpfr_sub(r48276, r48274, r48275, MPFR_RNDN);
        mpfr_mul(r48277, r48273, r48276, MPFR_RNDN);
        mpfr_add(r48278, r48272, r48277, MPFR_RNDN);
        return mpfr_get_d(r48278, MPFR_RNDN);
}

static mpfr_t r48279, r48280, r48281, r48282, r48283, r48284, r48285, r48286, r48287, r48288, r48289, r48290, r48291, r48292, r48293, r48294, r48295, r48296, r48297, r48298, r48299, r48300, r48301, r48302, r48303, r48304, r48305, r48306, r48307, r48308, r48309, r48310, r48311, r48312, r48313, r48314, r48315, r48316, r48317, r48318, r48319, r48320, r48321, r48322;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r48279);
        mpfr_init_set_str(r48280, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        mpfr_init(r48281);
        mpfr_init(r48282);
        mpfr_init(r48283);
        mpfr_init(r48284);
        mpfr_init(r48285);
        mpfr_init(r48286);
        mpfr_init(r48287);
        mpfr_init(r48288);
        mpfr_init(r48289);
        mpfr_init(r48290);
        mpfr_init(r48291);
        mpfr_init(r48292);
        mpfr_init(r48293);
        mpfr_init(r48294);
        mpfr_init(r48295);
        mpfr_init(r48296);
        mpfr_init(r48297);
        mpfr_init(r48298);
        mpfr_init(r48299);
        mpfr_init(r48300);
        mpfr_init(r48301);
        mpfr_init(r48302);
        mpfr_init(r48303);
        mpfr_init(r48304);
        mpfr_init(r48305);
        mpfr_init(r48306);
        mpfr_init_set_str(r48307, "4.863955640625947e+121", 10, MPFR_RNDN);
        mpfr_init(r48308);
        mpfr_init(r48309);
        mpfr_init(r48310);
        mpfr_init(r48311);
        mpfr_init(r48312);
        mpfr_init(r48313);
        mpfr_init(r48314);
        mpfr_init(r48315);
        mpfr_init(r48316);
        mpfr_init(r48317);
        mpfr_init(r48318);
        mpfr_init(r48319);
        mpfr_init(r48320);
        mpfr_init(r48321);
        mpfr_init(r48322);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r48279, x, MPFR_RNDN);
        ;
        mpfr_set_si(r48281, mpfr_cmp(r48279, r48280) <= 0, MPFR_RNDN);
        mpfr_set_d(r48282, y, MPFR_RNDN);
        mpfr_set_d(r48283, z, MPFR_RNDN);
        mpfr_mul(r48284, r48282, r48283, MPFR_RNDN);
        mpfr_set_d(r48285, t, MPFR_RNDN);
        mpfr_set_d(r48286, a, MPFR_RNDN);
        mpfr_mul(r48287, r48285, r48286, MPFR_RNDN);
        mpfr_sub(r48288, r48284, r48287, MPFR_RNDN);
        mpfr_mul(r48289, r48279, r48288, MPFR_RNDN);
        mpfr_set_d(r48290, b, MPFR_RNDN);
        mpfr_set_d(r48291, c, MPFR_RNDN);
        mpfr_mul(r48292, r48291, r48283, MPFR_RNDN);
        mpfr_set_d(r48293, i, MPFR_RNDN);
        mpfr_mul(r48294, r48293, r48286, MPFR_RNDN);
        mpfr_sub(r48295, r48292, r48294, MPFR_RNDN);
        mpfr_cbrt(r48296, r48295, MPFR_RNDN);
        mpfr_mul(r48297, r48296, r48296, MPFR_RNDN);
        mpfr_mul(r48298, r48290, r48297, MPFR_RNDN);
        mpfr_mul(r48299, r48298, r48296, MPFR_RNDN);
        mpfr_sub(r48300, r48289, r48299, MPFR_RNDN);
        mpfr_set_d(r48301, j, MPFR_RNDN);
        mpfr_mul(r48302, r48291, r48285, MPFR_RNDN);
        mpfr_mul(r48303, r48293, r48282, MPFR_RNDN);
        mpfr_sub(r48304, r48302, r48303, MPFR_RNDN);
        mpfr_mul(r48305, r48301, r48304, MPFR_RNDN);
        mpfr_add(r48306, r48300, r48305, MPFR_RNDN);
        ;
        mpfr_set_si(r48308, mpfr_cmp(r48279, r48307) <= 0, MPFR_RNDN);
        mpfr_mul(r48309, r48279, r48283, MPFR_RNDN);
        mpfr_mul(r48310, r48309, r48282, MPFR_RNDN);
        mpfr_mul(r48311, r48285, r48279, MPFR_RNDN);
        mpfr_neg(r48312, r48286, MPFR_RNDN);
        mpfr_mul(r48313, r48311, r48312, MPFR_RNDN);
        mpfr_add(r48314, r48310, r48313, MPFR_RNDN);
        mpfr_mul(r48315, r48295, r48290, MPFR_RNDN);
        mpfr_mul(r48316, r48282, r48293, MPFR_RNDN);
        mpfr_sub(r48317, r48302, r48316, MPFR_RNDN);
        mpfr_mul(r48318, r48301, r48317, MPFR_RNDN);
        mpfr_sub(r48319, r48315, r48318, MPFR_RNDN);
        mpfr_sub(r48320, r48314, r48319, MPFR_RNDN);
        if (mpfr_get_si(r48308, MPFR_RNDN)) { mpfr_set(r48321, r48320, MPFR_RNDN); } else { mpfr_set(r48321, r48306, MPFR_RNDN); };
        if (mpfr_get_si(r48281, MPFR_RNDN)) { mpfr_set(r48322, r48306, MPFR_RNDN); } else { mpfr_set(r48322, r48321, MPFR_RNDN); };
        return mpfr_get_d(r48322, MPFR_RNDN);
}

static mpfr_t r48323, r48324, r48325, r48326, r48327, r48328, r48329, r48330, r48331, r48332, r48333, r48334, r48335, r48336, r48337, r48338, r48339, r48340, r48341, r48342, r48343, r48344, r48345, r48346, r48347, r48348, r48349, r48350, r48351, r48352, r48353, r48354, r48355, r48356, r48357, r48358, r48359, r48360, r48361, r48362, r48363, r48364, r48365, r48366;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r48323);
        mpfr_init_set_str(r48324, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        mpfr_init(r48325);
        mpfr_init(r48326);
        mpfr_init(r48327);
        mpfr_init(r48328);
        mpfr_init(r48329);
        mpfr_init(r48330);
        mpfr_init(r48331);
        mpfr_init(r48332);
        mpfr_init(r48333);
        mpfr_init(r48334);
        mpfr_init(r48335);
        mpfr_init(r48336);
        mpfr_init(r48337);
        mpfr_init(r48338);
        mpfr_init(r48339);
        mpfr_init(r48340);
        mpfr_init(r48341);
        mpfr_init(r48342);
        mpfr_init(r48343);
        mpfr_init(r48344);
        mpfr_init(r48345);
        mpfr_init(r48346);
        mpfr_init(r48347);
        mpfr_init(r48348);
        mpfr_init(r48349);
        mpfr_init(r48350);
        mpfr_init_set_str(r48351, "4.863955640625947e+121", 10, MPFR_RNDN);
        mpfr_init(r48352);
        mpfr_init(r48353);
        mpfr_init(r48354);
        mpfr_init(r48355);
        mpfr_init(r48356);
        mpfr_init(r48357);
        mpfr_init(r48358);
        mpfr_init(r48359);
        mpfr_init(r48360);
        mpfr_init(r48361);
        mpfr_init(r48362);
        mpfr_init(r48363);
        mpfr_init(r48364);
        mpfr_init(r48365);
        mpfr_init(r48366);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r48323, x, MPFR_RNDN);
        ;
        mpfr_set_si(r48325, mpfr_cmp(r48323, r48324) <= 0, MPFR_RNDN);
        mpfr_set_d(r48326, y, MPFR_RNDN);
        mpfr_set_d(r48327, z, MPFR_RNDN);
        mpfr_mul(r48328, r48326, r48327, MPFR_RNDN);
        mpfr_set_d(r48329, t, MPFR_RNDN);
        mpfr_set_d(r48330, a, MPFR_RNDN);
        mpfr_mul(r48331, r48329, r48330, MPFR_RNDN);
        mpfr_sub(r48332, r48328, r48331, MPFR_RNDN);
        mpfr_mul(r48333, r48323, r48332, MPFR_RNDN);
        mpfr_set_d(r48334, b, MPFR_RNDN);
        mpfr_set_d(r48335, c, MPFR_RNDN);
        mpfr_mul(r48336, r48335, r48327, MPFR_RNDN);
        mpfr_set_d(r48337, i, MPFR_RNDN);
        mpfr_mul(r48338, r48337, r48330, MPFR_RNDN);
        mpfr_sub(r48339, r48336, r48338, MPFR_RNDN);
        mpfr_cbrt(r48340, r48339, MPFR_RNDN);
        mpfr_mul(r48341, r48340, r48340, MPFR_RNDN);
        mpfr_mul(r48342, r48334, r48341, MPFR_RNDN);
        mpfr_mul(r48343, r48342, r48340, MPFR_RNDN);
        mpfr_sub(r48344, r48333, r48343, MPFR_RNDN);
        mpfr_set_d(r48345, j, MPFR_RNDN);
        mpfr_mul(r48346, r48335, r48329, MPFR_RNDN);
        mpfr_mul(r48347, r48337, r48326, MPFR_RNDN);
        mpfr_sub(r48348, r48346, r48347, MPFR_RNDN);
        mpfr_mul(r48349, r48345, r48348, MPFR_RNDN);
        mpfr_add(r48350, r48344, r48349, MPFR_RNDN);
        ;
        mpfr_set_si(r48352, mpfr_cmp(r48323, r48351) <= 0, MPFR_RNDN);
        mpfr_mul(r48353, r48323, r48327, MPFR_RNDN);
        mpfr_mul(r48354, r48353, r48326, MPFR_RNDN);
        mpfr_mul(r48355, r48329, r48323, MPFR_RNDN);
        mpfr_neg(r48356, r48330, MPFR_RNDN);
        mpfr_mul(r48357, r48355, r48356, MPFR_RNDN);
        mpfr_add(r48358, r48354, r48357, MPFR_RNDN);
        mpfr_mul(r48359, r48339, r48334, MPFR_RNDN);
        mpfr_mul(r48360, r48326, r48337, MPFR_RNDN);
        mpfr_sub(r48361, r48346, r48360, MPFR_RNDN);
        mpfr_mul(r48362, r48345, r48361, MPFR_RNDN);
        mpfr_sub(r48363, r48359, r48362, MPFR_RNDN);
        mpfr_sub(r48364, r48358, r48363, MPFR_RNDN);
        if (mpfr_get_si(r48352, MPFR_RNDN)) { mpfr_set(r48365, r48364, MPFR_RNDN); } else { mpfr_set(r48365, r48350, MPFR_RNDN); };
        if (mpfr_get_si(r48325, MPFR_RNDN)) { mpfr_set(r48366, r48350, MPFR_RNDN); } else { mpfr_set(r48366, r48365, MPFR_RNDN); };
        return mpfr_get_d(r48366, MPFR_RNDN);
}

