#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 r48141 = x;
        float r48142 = y;
        float r48143 = z;
        float r48144 = r48142 * r48143;
        float r48145 = t;
        float r48146 = a;
        float r48147 = r48145 * r48146;
        float r48148 = r48144 - r48147;
        float r48149 = r48141 * r48148;
        float r48150 = b;
        float r48151 = c;
        float r48152 = r48151 * r48143;
        float r48153 = i;
        float r48154 = r48153 * r48146;
        float r48155 = r48152 - r48154;
        float r48156 = r48150 * r48155;
        float r48157 = r48149 - r48156;
        float r48158 = j;
        float r48159 = r48151 * r48145;
        float r48160 = r48153 * r48142;
        float r48161 = r48159 - r48160;
        float r48162 = r48158 * r48161;
        float r48163 = r48157 + r48162;
        return r48163;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r48164 = x;
        double r48165 = y;
        double r48166 = z;
        double r48167 = r48165 * r48166;
        double r48168 = t;
        double r48169 = a;
        double r48170 = r48168 * r48169;
        double r48171 = r48167 - r48170;
        double r48172 = r48164 * r48171;
        double r48173 = b;
        double r48174 = c;
        double r48175 = r48174 * r48166;
        double r48176 = i;
        double r48177 = r48176 * r48169;
        double r48178 = r48175 - r48177;
        double r48179 = r48173 * r48178;
        double r48180 = r48172 - r48179;
        double r48181 = j;
        double r48182 = r48174 * r48168;
        double r48183 = r48176 * r48165;
        double r48184 = r48182 - r48183;
        double r48185 = r48181 * r48184;
        double r48186 = r48180 + r48185;
        return r48186;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r48187 = x;
        float r48188 = -3.1186130314637846e+124;
        bool r48189 = r48187 <= r48188;
        float r48190 = y;
        float r48191 = z;
        float r48192 = r48190 * r48191;
        float r48193 = t;
        float r48194 = a;
        float r48195 = r48193 * r48194;
        float r48196 = r48192 - r48195;
        float r48197 = r48187 * r48196;
        float r48198 = b;
        float r48199 = c;
        float r48200 = r48199 * r48191;
        float r48201 = i;
        float r48202 = r48201 * r48194;
        float r48203 = r48200 - r48202;
        float r48204 = cbrt(r48203);
        float r48205 = r48204 * r48204;
        float r48206 = r48198 * r48205;
        float r48207 = r48206 * r48204;
        float r48208 = r48197 - r48207;
        float r48209 = j;
        float r48210 = r48199 * r48193;
        float r48211 = r48201 * r48190;
        float r48212 = r48210 - r48211;
        float r48213 = r48209 * r48212;
        float r48214 = r48208 + r48213;
        float r48215 = 4.863955640625947e+121;
        bool r48216 = r48187 <= r48215;
        float r48217 = r48187 * r48191;
        float r48218 = r48217 * r48190;
        float r48219 = r48193 * r48187;
        float r48220 = -r48194;
        float r48221 = r48219 * r48220;
        float r48222 = r48218 + r48221;
        float r48223 = r48203 * r48198;
        float r48224 = r48190 * r48201;
        float r48225 = r48210 - r48224;
        float r48226 = r48209 * r48225;
        float r48227 = r48223 - r48226;
        float r48228 = r48222 - r48227;
        float r48229 = r48216 ? r48228 : r48214;
        float r48230 = r48189 ? r48214 : r48229;
        return r48230;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r48231 = x;
        double r48232 = -3.1186130314637846e+124;
        bool r48233 = r48231 <= r48232;
        double r48234 = y;
        double r48235 = z;
        double r48236 = r48234 * r48235;
        double r48237 = t;
        double r48238 = a;
        double r48239 = r48237 * r48238;
        double r48240 = r48236 - r48239;
        double r48241 = r48231 * r48240;
        double r48242 = b;
        double r48243 = c;
        double r48244 = r48243 * r48235;
        double r48245 = i;
        double r48246 = r48245 * r48238;
        double r48247 = r48244 - r48246;
        double r48248 = cbrt(r48247);
        double r48249 = r48248 * r48248;
        double r48250 = r48242 * r48249;
        double r48251 = r48250 * r48248;
        double r48252 = r48241 - r48251;
        double r48253 = j;
        double r48254 = r48243 * r48237;
        double r48255 = r48245 * r48234;
        double r48256 = r48254 - r48255;
        double r48257 = r48253 * r48256;
        double r48258 = r48252 + r48257;
        double r48259 = 4.863955640625947e+121;
        bool r48260 = r48231 <= r48259;
        double r48261 = r48231 * r48235;
        double r48262 = r48261 * r48234;
        double r48263 = r48237 * r48231;
        double r48264 = -r48238;
        double r48265 = r48263 * r48264;
        double r48266 = r48262 + r48265;
        double r48267 = r48247 * r48242;
        double r48268 = r48234 * r48245;
        double r48269 = r48254 - r48268;
        double r48270 = r48253 * r48269;
        double r48271 = r48267 - r48270;
        double r48272 = r48266 - r48271;
        double r48273 = r48260 ? r48272 : r48258;
        double r48274 = r48233 ? r48258 : r48273;
        return r48274;
}

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 r48275, r48276, r48277, r48278, r48279, r48280, r48281, r48282, r48283, r48284, r48285, r48286, r48287, r48288, r48289, r48290, r48291, r48292, r48293, r48294, r48295, r48296, r48297;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r48275);
        mpfr_init(r48276);
        mpfr_init(r48277);
        mpfr_init(r48278);
        mpfr_init(r48279);
        mpfr_init(r48280);
        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);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r48275, x, MPFR_RNDN);
        mpfr_set_d(r48276, y, MPFR_RNDN);
        mpfr_set_d(r48277, z, MPFR_RNDN);
        mpfr_mul(r48278, r48276, r48277, MPFR_RNDN);
        mpfr_set_d(r48279, t, MPFR_RNDN);
        mpfr_set_d(r48280, a, MPFR_RNDN);
        mpfr_mul(r48281, r48279, r48280, MPFR_RNDN);
        mpfr_sub(r48282, r48278, r48281, MPFR_RNDN);
        mpfr_mul(r48283, r48275, r48282, MPFR_RNDN);
        mpfr_set_d(r48284, b, MPFR_RNDN);
        mpfr_set_d(r48285, c, MPFR_RNDN);
        mpfr_mul(r48286, r48285, r48277, MPFR_RNDN);
        mpfr_set_d(r48287, i, MPFR_RNDN);
        mpfr_mul(r48288, r48287, r48280, MPFR_RNDN);
        mpfr_sub(r48289, r48286, r48288, MPFR_RNDN);
        mpfr_mul(r48290, r48284, r48289, MPFR_RNDN);
        mpfr_sub(r48291, r48283, r48290, MPFR_RNDN);
        mpfr_set_d(r48292, j, MPFR_RNDN);
        mpfr_mul(r48293, r48285, r48279, MPFR_RNDN);
        mpfr_mul(r48294, r48287, r48276, MPFR_RNDN);
        mpfr_sub(r48295, r48293, r48294, MPFR_RNDN);
        mpfr_mul(r48296, r48292, r48295, MPFR_RNDN);
        mpfr_add(r48297, r48291, r48296, MPFR_RNDN);
        return mpfr_get_d(r48297, MPFR_RNDN);
}

static mpfr_t 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, r48323, r48324, r48325, r48326, r48327, r48328, r48329, r48330, r48331, r48332, r48333, r48334, r48335, r48336, r48337, r48338, r48339, r48340, r48341;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r48298);
        mpfr_init_set_str(r48299, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        mpfr_init(r48300);
        mpfr_init(r48301);
        mpfr_init(r48302);
        mpfr_init(r48303);
        mpfr_init(r48304);
        mpfr_init(r48305);
        mpfr_init(r48306);
        mpfr_init(r48307);
        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);
        mpfr_init(r48323);
        mpfr_init(r48324);
        mpfr_init(r48325);
        mpfr_init_set_str(r48326, "4.863955640625947e+121", 10, MPFR_RNDN);
        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);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r48298, x, MPFR_RNDN);
        ;
        mpfr_set_si(r48300, mpfr_cmp(r48298, r48299) <= 0, MPFR_RNDN);
        mpfr_set_d(r48301, y, MPFR_RNDN);
        mpfr_set_d(r48302, z, MPFR_RNDN);
        mpfr_mul(r48303, r48301, r48302, MPFR_RNDN);
        mpfr_set_d(r48304, t, MPFR_RNDN);
        mpfr_set_d(r48305, a, MPFR_RNDN);
        mpfr_mul(r48306, r48304, r48305, MPFR_RNDN);
        mpfr_sub(r48307, r48303, r48306, MPFR_RNDN);
        mpfr_mul(r48308, r48298, r48307, MPFR_RNDN);
        mpfr_set_d(r48309, b, MPFR_RNDN);
        mpfr_set_d(r48310, c, MPFR_RNDN);
        mpfr_mul(r48311, r48310, r48302, MPFR_RNDN);
        mpfr_set_d(r48312, i, MPFR_RNDN);
        mpfr_mul(r48313, r48312, r48305, MPFR_RNDN);
        mpfr_sub(r48314, r48311, r48313, MPFR_RNDN);
        mpfr_cbrt(r48315, r48314, MPFR_RNDN);
        mpfr_mul(r48316, r48315, r48315, MPFR_RNDN);
        mpfr_mul(r48317, r48309, r48316, MPFR_RNDN);
        mpfr_mul(r48318, r48317, r48315, MPFR_RNDN);
        mpfr_sub(r48319, r48308, r48318, MPFR_RNDN);
        mpfr_set_d(r48320, j, MPFR_RNDN);
        mpfr_mul(r48321, r48310, r48304, MPFR_RNDN);
        mpfr_mul(r48322, r48312, r48301, MPFR_RNDN);
        mpfr_sub(r48323, r48321, r48322, MPFR_RNDN);
        mpfr_mul(r48324, r48320, r48323, MPFR_RNDN);
        mpfr_add(r48325, r48319, r48324, MPFR_RNDN);
        ;
        mpfr_set_si(r48327, mpfr_cmp(r48298, r48326) <= 0, MPFR_RNDN);
        mpfr_mul(r48328, r48298, r48302, MPFR_RNDN);
        mpfr_mul(r48329, r48328, r48301, MPFR_RNDN);
        mpfr_mul(r48330, r48304, r48298, MPFR_RNDN);
        mpfr_neg(r48331, r48305, MPFR_RNDN);
        mpfr_mul(r48332, r48330, r48331, MPFR_RNDN);
        mpfr_add(r48333, r48329, r48332, MPFR_RNDN);
        mpfr_mul(r48334, r48314, r48309, MPFR_RNDN);
        mpfr_mul(r48335, r48301, r48312, MPFR_RNDN);
        mpfr_sub(r48336, r48321, r48335, MPFR_RNDN);
        mpfr_mul(r48337, r48320, r48336, MPFR_RNDN);
        mpfr_sub(r48338, r48334, r48337, MPFR_RNDN);
        mpfr_sub(r48339, r48333, r48338, MPFR_RNDN);
        if (mpfr_get_si(r48327, MPFR_RNDN)) { mpfr_set(r48340, r48339, MPFR_RNDN); } else { mpfr_set(r48340, r48325, MPFR_RNDN); };
        if (mpfr_get_si(r48300, MPFR_RNDN)) { mpfr_set(r48341, r48325, MPFR_RNDN); } else { mpfr_set(r48341, r48340, MPFR_RNDN); };
        return mpfr_get_d(r48341, MPFR_RNDN);
}

static mpfr_t 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, r48367, r48368, r48369, r48370, r48371, r48372, r48373, r48374, r48375, r48376, r48377, r48378, r48379, r48380, r48381, r48382, r48383, r48384, r48385;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r48342);
        mpfr_init_set_str(r48343, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        mpfr_init(r48344);
        mpfr_init(r48345);
        mpfr_init(r48346);
        mpfr_init(r48347);
        mpfr_init(r48348);
        mpfr_init(r48349);
        mpfr_init(r48350);
        mpfr_init(r48351);
        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);
        mpfr_init(r48367);
        mpfr_init(r48368);
        mpfr_init(r48369);
        mpfr_init_set_str(r48370, "4.863955640625947e+121", 10, MPFR_RNDN);
        mpfr_init(r48371);
        mpfr_init(r48372);
        mpfr_init(r48373);
        mpfr_init(r48374);
        mpfr_init(r48375);
        mpfr_init(r48376);
        mpfr_init(r48377);
        mpfr_init(r48378);
        mpfr_init(r48379);
        mpfr_init(r48380);
        mpfr_init(r48381);
        mpfr_init(r48382);
        mpfr_init(r48383);
        mpfr_init(r48384);
        mpfr_init(r48385);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r48342, x, MPFR_RNDN);
        ;
        mpfr_set_si(r48344, mpfr_cmp(r48342, r48343) <= 0, MPFR_RNDN);
        mpfr_set_d(r48345, y, MPFR_RNDN);
        mpfr_set_d(r48346, z, MPFR_RNDN);
        mpfr_mul(r48347, r48345, r48346, MPFR_RNDN);
        mpfr_set_d(r48348, t, MPFR_RNDN);
        mpfr_set_d(r48349, a, MPFR_RNDN);
        mpfr_mul(r48350, r48348, r48349, MPFR_RNDN);
        mpfr_sub(r48351, r48347, r48350, MPFR_RNDN);
        mpfr_mul(r48352, r48342, r48351, MPFR_RNDN);
        mpfr_set_d(r48353, b, MPFR_RNDN);
        mpfr_set_d(r48354, c, MPFR_RNDN);
        mpfr_mul(r48355, r48354, r48346, MPFR_RNDN);
        mpfr_set_d(r48356, i, MPFR_RNDN);
        mpfr_mul(r48357, r48356, r48349, MPFR_RNDN);
        mpfr_sub(r48358, r48355, r48357, MPFR_RNDN);
        mpfr_cbrt(r48359, r48358, MPFR_RNDN);
        mpfr_mul(r48360, r48359, r48359, MPFR_RNDN);
        mpfr_mul(r48361, r48353, r48360, MPFR_RNDN);
        mpfr_mul(r48362, r48361, r48359, MPFR_RNDN);
        mpfr_sub(r48363, r48352, r48362, MPFR_RNDN);
        mpfr_set_d(r48364, j, MPFR_RNDN);
        mpfr_mul(r48365, r48354, r48348, MPFR_RNDN);
        mpfr_mul(r48366, r48356, r48345, MPFR_RNDN);
        mpfr_sub(r48367, r48365, r48366, MPFR_RNDN);
        mpfr_mul(r48368, r48364, r48367, MPFR_RNDN);
        mpfr_add(r48369, r48363, r48368, MPFR_RNDN);
        ;
        mpfr_set_si(r48371, mpfr_cmp(r48342, r48370) <= 0, MPFR_RNDN);
        mpfr_mul(r48372, r48342, r48346, MPFR_RNDN);
        mpfr_mul(r48373, r48372, r48345, MPFR_RNDN);
        mpfr_mul(r48374, r48348, r48342, MPFR_RNDN);
        mpfr_neg(r48375, r48349, MPFR_RNDN);
        mpfr_mul(r48376, r48374, r48375, MPFR_RNDN);
        mpfr_add(r48377, r48373, r48376, MPFR_RNDN);
        mpfr_mul(r48378, r48358, r48353, MPFR_RNDN);
        mpfr_mul(r48379, r48345, r48356, MPFR_RNDN);
        mpfr_sub(r48380, r48365, r48379, MPFR_RNDN);
        mpfr_mul(r48381, r48364, r48380, MPFR_RNDN);
        mpfr_sub(r48382, r48378, r48381, MPFR_RNDN);
        mpfr_sub(r48383, r48377, r48382, MPFR_RNDN);
        if (mpfr_get_si(r48371, MPFR_RNDN)) { mpfr_set(r48384, r48383, MPFR_RNDN); } else { mpfr_set(r48384, r48369, MPFR_RNDN); };
        if (mpfr_get_si(r48344, MPFR_RNDN)) { mpfr_set(r48385, r48369, MPFR_RNDN); } else { mpfr_set(r48385, r48384, MPFR_RNDN); };
        return mpfr_get_d(r48385, MPFR_RNDN);
}

