#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 r10202 = x;
        float r10203 = y;
        float r10204 = z;
        float r10205 = r10203 * r10204;
        float r10206 = t;
        float r10207 = a;
        float r10208 = r10206 * r10207;
        float r10209 = r10205 - r10208;
        float r10210 = r10202 * r10209;
        float r10211 = b;
        float r10212 = c;
        float r10213 = r10212 * r10204;
        float r10214 = i;
        float r10215 = r10214 * r10207;
        float r10216 = r10213 - r10215;
        float r10217 = r10211 * r10216;
        float r10218 = r10210 - r10217;
        float r10219 = j;
        float r10220 = r10212 * r10206;
        float r10221 = r10214 * r10203;
        float r10222 = r10220 - r10221;
        float r10223 = r10219 * r10222;
        float r10224 = r10218 + r10223;
        return r10224;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r10225 = x;
        double r10226 = y;
        double r10227 = z;
        double r10228 = r10226 * r10227;
        double r10229 = t;
        double r10230 = a;
        double r10231 = r10229 * r10230;
        double r10232 = r10228 - r10231;
        double r10233 = r10225 * r10232;
        double r10234 = b;
        double r10235 = c;
        double r10236 = r10235 * r10227;
        double r10237 = i;
        double r10238 = r10237 * r10230;
        double r10239 = r10236 - r10238;
        double r10240 = r10234 * r10239;
        double r10241 = r10233 - r10240;
        double r10242 = j;
        double r10243 = r10235 * r10229;
        double r10244 = r10237 * r10226;
        double r10245 = r10243 - r10244;
        double r10246 = r10242 * r10245;
        double r10247 = r10241 + r10246;
        return r10247;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r10248 = x;
        float r10249 = y;
        float r10250 = z;
        float r10251 = r10249 * r10250;
        float r10252 = r10248 * r10251;
        float r10253 = c;
        float r10254 = t;
        float r10255 = r10253 * r10254;
        float r10256 = i;
        float r10257 = r10249 * r10256;
        float r10258 = r10255 - r10257;
        float r10259 = j;
        float r10260 = r10258 * r10259;
        float r10261 = b;
        float r10262 = r10250 * r10253;
        float r10263 = a;
        float r10264 = r10263 * r10256;
        float r10265 = r10262 - r10264;
        float r10266 = r10248 * r10263;
        float r10267 = r10254 * r10266;
        float r10268 = fma(r10261, r10265, r10267);
        float r10269 = r10260 - r10268;
        float r10270 = r10252 + r10269;
        float r10271 = -1.2938856282681744e+307;
        bool r10272 = r10270 <= r10271;
        float r10273 = r10254 * r10263;
        float r10274 = r10251 - r10273;
        float r10275 = r10255 * r10259;
        float r10276 = fma(r10248, r10274, r10275);
        float r10277 = r10249 * r10259;
        float r10278 = fma(r10261, r10263, r10277);
        float r10279 = r10253 * r10261;
        float r10280 = r10279 * r10250;
        float r10281 = fma(r10256, r10278, r10280);
        float r10282 = r10276 - r10281;
        float r10283 = 3.261760181174107e+304;
        bool r10284 = r10270 <= r10283;
        float r10285 = r10284 ? r10270 : r10282;
        float r10286 = r10272 ? r10282 : r10285;
        return r10286;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r10287 = x;
        double r10288 = y;
        double r10289 = z;
        double r10290 = r10288 * r10289;
        double r10291 = r10287 * r10290;
        double r10292 = c;
        double r10293 = t;
        double r10294 = r10292 * r10293;
        double r10295 = i;
        double r10296 = r10288 * r10295;
        double r10297 = r10294 - r10296;
        double r10298 = j;
        double r10299 = r10297 * r10298;
        double r10300 = b;
        double r10301 = r10289 * r10292;
        double r10302 = a;
        double r10303 = r10302 * r10295;
        double r10304 = r10301 - r10303;
        double r10305 = r10287 * r10302;
        double r10306 = r10293 * r10305;
        double r10307 = fma(r10300, r10304, r10306);
        double r10308 = r10299 - r10307;
        double r10309 = r10291 + r10308;
        double r10310 = -1.2938856282681744e+307;
        bool r10311 = r10309 <= r10310;
        double r10312 = r10293 * r10302;
        double r10313 = r10290 - r10312;
        double r10314 = r10294 * r10298;
        double r10315 = fma(r10287, r10313, r10314);
        double r10316 = r10288 * r10298;
        double r10317 = fma(r10300, r10302, r10316);
        double r10318 = r10292 * r10300;
        double r10319 = r10318 * r10289;
        double r10320 = fma(r10295, r10317, r10319);
        double r10321 = r10315 - r10320;
        double r10322 = 3.261760181174107e+304;
        bool r10323 = r10309 <= r10322;
        double r10324 = r10323 ? r10309 : r10321;
        double r10325 = r10311 ? r10321 : r10324;
        return r10325;
}

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 r10326, r10327, r10328, r10329, r10330, r10331, r10332, r10333, r10334, r10335, r10336, r10337, r10338, r10339, r10340, r10341, r10342, r10343, r10344, r10345, r10346, r10347, r10348;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r10326);
        mpfr_init(r10327);
        mpfr_init(r10328);
        mpfr_init(r10329);
        mpfr_init(r10330);
        mpfr_init(r10331);
        mpfr_init(r10332);
        mpfr_init(r10333);
        mpfr_init(r10334);
        mpfr_init(r10335);
        mpfr_init(r10336);
        mpfr_init(r10337);
        mpfr_init(r10338);
        mpfr_init(r10339);
        mpfr_init(r10340);
        mpfr_init(r10341);
        mpfr_init(r10342);
        mpfr_init(r10343);
        mpfr_init(r10344);
        mpfr_init(r10345);
        mpfr_init(r10346);
        mpfr_init(r10347);
        mpfr_init(r10348);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10326, x, MPFR_RNDN);
        mpfr_set_d(r10327, y, MPFR_RNDN);
        mpfr_set_d(r10328, z, MPFR_RNDN);
        mpfr_mul(r10329, r10327, r10328, MPFR_RNDN);
        mpfr_set_d(r10330, t, MPFR_RNDN);
        mpfr_set_d(r10331, a, MPFR_RNDN);
        mpfr_mul(r10332, r10330, r10331, MPFR_RNDN);
        mpfr_sub(r10333, r10329, r10332, MPFR_RNDN);
        mpfr_mul(r10334, r10326, r10333, MPFR_RNDN);
        mpfr_set_d(r10335, b, MPFR_RNDN);
        mpfr_set_d(r10336, c, MPFR_RNDN);
        mpfr_mul(r10337, r10336, r10328, MPFR_RNDN);
        mpfr_set_d(r10338, i, MPFR_RNDN);
        mpfr_mul(r10339, r10338, r10331, MPFR_RNDN);
        mpfr_sub(r10340, r10337, r10339, MPFR_RNDN);
        mpfr_mul(r10341, r10335, r10340, MPFR_RNDN);
        mpfr_sub(r10342, r10334, r10341, MPFR_RNDN);
        mpfr_set_d(r10343, j, MPFR_RNDN);
        mpfr_mul(r10344, r10336, r10330, MPFR_RNDN);
        mpfr_mul(r10345, r10338, r10327, MPFR_RNDN);
        mpfr_sub(r10346, r10344, r10345, MPFR_RNDN);
        mpfr_mul(r10347, r10343, r10346, MPFR_RNDN);
        mpfr_add(r10348, r10342, r10347, MPFR_RNDN);
        return mpfr_get_d(r10348, MPFR_RNDN);
}

static mpfr_t r10349, r10350, r10351, r10352, r10353, r10354, r10355, r10356, r10357, r10358, r10359, r10360, r10361, r10362, r10363, r10364, r10365, r10366, r10367, r10368, r10369, r10370, r10371, r10372, r10373, r10374, r10375, r10376, r10377, r10378, r10379, r10380, r10381, r10382, r10383, r10384, r10385, r10386, r10387;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r10349);
        mpfr_init(r10350);
        mpfr_init(r10351);
        mpfr_init(r10352);
        mpfr_init(r10353);
        mpfr_init(r10354);
        mpfr_init(r10355);
        mpfr_init(r10356);
        mpfr_init(r10357);
        mpfr_init(r10358);
        mpfr_init(r10359);
        mpfr_init(r10360);
        mpfr_init(r10361);
        mpfr_init(r10362);
        mpfr_init(r10363);
        mpfr_init(r10364);
        mpfr_init(r10365);
        mpfr_init(r10366);
        mpfr_init(r10367);
        mpfr_init(r10368);
        mpfr_init(r10369);
        mpfr_init(r10370);
        mpfr_init(r10371);
        mpfr_init_set_str(r10372, "-1.2938856282681744e+307", 10, MPFR_RNDN);
        mpfr_init(r10373);
        mpfr_init(r10374);
        mpfr_init(r10375);
        mpfr_init(r10376);
        mpfr_init(r10377);
        mpfr_init(r10378);
        mpfr_init(r10379);
        mpfr_init(r10380);
        mpfr_init(r10381);
        mpfr_init(r10382);
        mpfr_init(r10383);
        mpfr_init_set_str(r10384, "3.261760181174107e+304", 10, MPFR_RNDN);
        mpfr_init(r10385);
        mpfr_init(r10386);
        mpfr_init(r10387);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10349, x, MPFR_RNDN);
        mpfr_set_d(r10350, y, MPFR_RNDN);
        mpfr_set_d(r10351, z, MPFR_RNDN);
        mpfr_mul(r10352, r10350, r10351, MPFR_RNDN);
        mpfr_mul(r10353, r10349, r10352, MPFR_RNDN);
        mpfr_set_d(r10354, c, MPFR_RNDN);
        mpfr_set_d(r10355, t, MPFR_RNDN);
        mpfr_mul(r10356, r10354, r10355, MPFR_RNDN);
        mpfr_set_d(r10357, i, MPFR_RNDN);
        mpfr_mul(r10358, r10350, r10357, MPFR_RNDN);
        mpfr_sub(r10359, r10356, r10358, MPFR_RNDN);
        mpfr_set_d(r10360, j, MPFR_RNDN);
        mpfr_mul(r10361, r10359, r10360, MPFR_RNDN);
        mpfr_set_d(r10362, b, MPFR_RNDN);
        mpfr_mul(r10363, r10351, r10354, MPFR_RNDN);
        mpfr_set_d(r10364, a, MPFR_RNDN);
        mpfr_mul(r10365, r10364, r10357, MPFR_RNDN);
        mpfr_sub(r10366, r10363, r10365, MPFR_RNDN);
        mpfr_mul(r10367, r10349, r10364, MPFR_RNDN);
        mpfr_mul(r10368, r10355, r10367, MPFR_RNDN);
        mpfr_fma(r10369, r10362, r10366, r10368, MPFR_RNDN);
        mpfr_sub(r10370, r10361, r10369, MPFR_RNDN);
        mpfr_add(r10371, r10353, r10370, MPFR_RNDN);
        ;
        mpfr_set_si(r10373, mpfr_cmp(r10371, r10372) <= 0, MPFR_RNDN);
        mpfr_mul(r10374, r10355, r10364, MPFR_RNDN);
        mpfr_sub(r10375, r10352, r10374, MPFR_RNDN);
        mpfr_mul(r10376, r10356, r10360, MPFR_RNDN);
        mpfr_fma(r10377, r10349, r10375, r10376, MPFR_RNDN);
        mpfr_mul(r10378, r10350, r10360, MPFR_RNDN);
        mpfr_fma(r10379, r10362, r10364, r10378, MPFR_RNDN);
        mpfr_mul(r10380, r10354, r10362, MPFR_RNDN);
        mpfr_mul(r10381, r10380, r10351, MPFR_RNDN);
        mpfr_fma(r10382, r10357, r10379, r10381, MPFR_RNDN);
        mpfr_sub(r10383, r10377, r10382, MPFR_RNDN);
        ;
        mpfr_set_si(r10385, mpfr_cmp(r10371, r10384) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r10385, MPFR_RNDN)) { mpfr_set(r10386, r10371, MPFR_RNDN); } else { mpfr_set(r10386, r10383, MPFR_RNDN); };
        if (mpfr_get_si(r10373, MPFR_RNDN)) { mpfr_set(r10387, r10383, MPFR_RNDN); } else { mpfr_set(r10387, r10386, MPFR_RNDN); };
        return mpfr_get_d(r10387, MPFR_RNDN);
}

static mpfr_t r10388, r10389, r10390, r10391, r10392, r10393, r10394, r10395, r10396, r10397, r10398, r10399, r10400, r10401, r10402, r10403, r10404, r10405, r10406, r10407, r10408, r10409, r10410, r10411, r10412, r10413, r10414, r10415, r10416, r10417, r10418, r10419, r10420, r10421, r10422, r10423, r10424, r10425, r10426;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r10388);
        mpfr_init(r10389);
        mpfr_init(r10390);
        mpfr_init(r10391);
        mpfr_init(r10392);
        mpfr_init(r10393);
        mpfr_init(r10394);
        mpfr_init(r10395);
        mpfr_init(r10396);
        mpfr_init(r10397);
        mpfr_init(r10398);
        mpfr_init(r10399);
        mpfr_init(r10400);
        mpfr_init(r10401);
        mpfr_init(r10402);
        mpfr_init(r10403);
        mpfr_init(r10404);
        mpfr_init(r10405);
        mpfr_init(r10406);
        mpfr_init(r10407);
        mpfr_init(r10408);
        mpfr_init(r10409);
        mpfr_init(r10410);
        mpfr_init_set_str(r10411, "-1.2938856282681744e+307", 10, MPFR_RNDN);
        mpfr_init(r10412);
        mpfr_init(r10413);
        mpfr_init(r10414);
        mpfr_init(r10415);
        mpfr_init(r10416);
        mpfr_init(r10417);
        mpfr_init(r10418);
        mpfr_init(r10419);
        mpfr_init(r10420);
        mpfr_init(r10421);
        mpfr_init(r10422);
        mpfr_init_set_str(r10423, "3.261760181174107e+304", 10, MPFR_RNDN);
        mpfr_init(r10424);
        mpfr_init(r10425);
        mpfr_init(r10426);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10388, x, MPFR_RNDN);
        mpfr_set_d(r10389, y, MPFR_RNDN);
        mpfr_set_d(r10390, z, MPFR_RNDN);
        mpfr_mul(r10391, r10389, r10390, MPFR_RNDN);
        mpfr_mul(r10392, r10388, r10391, MPFR_RNDN);
        mpfr_set_d(r10393, c, MPFR_RNDN);
        mpfr_set_d(r10394, t, MPFR_RNDN);
        mpfr_mul(r10395, r10393, r10394, MPFR_RNDN);
        mpfr_set_d(r10396, i, MPFR_RNDN);
        mpfr_mul(r10397, r10389, r10396, MPFR_RNDN);
        mpfr_sub(r10398, r10395, r10397, MPFR_RNDN);
        mpfr_set_d(r10399, j, MPFR_RNDN);
        mpfr_mul(r10400, r10398, r10399, MPFR_RNDN);
        mpfr_set_d(r10401, b, MPFR_RNDN);
        mpfr_mul(r10402, r10390, r10393, MPFR_RNDN);
        mpfr_set_d(r10403, a, MPFR_RNDN);
        mpfr_mul(r10404, r10403, r10396, MPFR_RNDN);
        mpfr_sub(r10405, r10402, r10404, MPFR_RNDN);
        mpfr_mul(r10406, r10388, r10403, MPFR_RNDN);
        mpfr_mul(r10407, r10394, r10406, MPFR_RNDN);
        mpfr_fma(r10408, r10401, r10405, r10407, MPFR_RNDN);
        mpfr_sub(r10409, r10400, r10408, MPFR_RNDN);
        mpfr_add(r10410, r10392, r10409, MPFR_RNDN);
        ;
        mpfr_set_si(r10412, mpfr_cmp(r10410, r10411) <= 0, MPFR_RNDN);
        mpfr_mul(r10413, r10394, r10403, MPFR_RNDN);
        mpfr_sub(r10414, r10391, r10413, MPFR_RNDN);
        mpfr_mul(r10415, r10395, r10399, MPFR_RNDN);
        mpfr_fma(r10416, r10388, r10414, r10415, MPFR_RNDN);
        mpfr_mul(r10417, r10389, r10399, MPFR_RNDN);
        mpfr_fma(r10418, r10401, r10403, r10417, MPFR_RNDN);
        mpfr_mul(r10419, r10393, r10401, MPFR_RNDN);
        mpfr_mul(r10420, r10419, r10390, MPFR_RNDN);
        mpfr_fma(r10421, r10396, r10418, r10420, MPFR_RNDN);
        mpfr_sub(r10422, r10416, r10421, MPFR_RNDN);
        ;
        mpfr_set_si(r10424, mpfr_cmp(r10410, r10423) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r10424, MPFR_RNDN)) { mpfr_set(r10425, r10410, MPFR_RNDN); } else { mpfr_set(r10425, r10422, MPFR_RNDN); };
        if (mpfr_get_si(r10412, MPFR_RNDN)) { mpfr_set(r10426, r10422, MPFR_RNDN); } else { mpfr_set(r10426, r10425, MPFR_RNDN); };
        return mpfr_get_d(r10426, MPFR_RNDN);
}

