#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 r26232 = x;
        float r26233 = y;
        float r26234 = z;
        float r26235 = r26233 * r26234;
        float r26236 = t;
        float r26237 = a;
        float r26238 = r26236 * r26237;
        float r26239 = r26235 - r26238;
        float r26240 = r26232 * r26239;
        float r26241 = b;
        float r26242 = c;
        float r26243 = r26242 * r26234;
        float r26244 = i;
        float r26245 = r26244 * r26237;
        float r26246 = r26243 - r26245;
        float r26247 = r26241 * r26246;
        float r26248 = r26240 - r26247;
        float r26249 = j;
        float r26250 = r26242 * r26236;
        float r26251 = r26244 * r26233;
        float r26252 = r26250 - r26251;
        float r26253 = r26249 * r26252;
        float r26254 = r26248 + r26253;
        return r26254;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26255 = x;
        double r26256 = y;
        double r26257 = z;
        double r26258 = r26256 * r26257;
        double r26259 = t;
        double r26260 = a;
        double r26261 = r26259 * r26260;
        double r26262 = r26258 - r26261;
        double r26263 = r26255 * r26262;
        double r26264 = b;
        double r26265 = c;
        double r26266 = r26265 * r26257;
        double r26267 = i;
        double r26268 = r26267 * r26260;
        double r26269 = r26266 - r26268;
        double r26270 = r26264 * r26269;
        double r26271 = r26263 - r26270;
        double r26272 = j;
        double r26273 = r26265 * r26259;
        double r26274 = r26267 * r26256;
        double r26275 = r26273 - r26274;
        double r26276 = r26272 * r26275;
        double r26277 = r26271 + r26276;
        return r26277;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r26278 = x;
        float r26279 = y;
        float r26280 = z;
        float r26281 = r26279 * r26280;
        float r26282 = r26278 * r26281;
        float r26283 = i;
        float r26284 = b;
        float r26285 = r26283 * r26284;
        float r26286 = t;
        float r26287 = r26286 * r26278;
        float r26288 = r26285 - r26287;
        float r26289 = a;
        float r26290 = r26288 * r26289;
        float r26291 = c;
        float r26292 = r26291 * r26284;
        float r26293 = r26292 * r26280;
        float r26294 = r26290 - r26293;
        float r26295 = r26282 + r26294;
        float r26296 = j;
        float r26297 = r26291 * r26286;
        float r26298 = r26283 * r26279;
        float r26299 = r26297 - r26298;
        float r26300 = r26296 * r26299;
        float r26301 = r26295 + r26300;
        float r26302 = -1.1020924633125475e+307;
        bool r26303 = r26301 <= r26302;
        float r26304 = r26283 * r26289;
        float r26305 = r26291 * r26280;
        float r26306 = r26304 - r26305;
        float r26307 = r26284 * r26306;
        float r26308 = r26279 * r26283;
        float r26309 = r26297 - r26308;
        float r26310 = r26296 * r26309;
        float r26311 = r26307 + r26310;
        float r26312 = r26286 * r26289;
        float r26313 = r26278 * r26312;
        float r26314 = r26311 - r26313;
        float r26315 = 7.606571261168317e+305;
        bool r26316 = r26301 <= r26315;
        float r26317 = r26316 ? r26301 : r26314;
        float r26318 = r26303 ? r26314 : r26317;
        return r26318;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26319 = x;
        double r26320 = y;
        double r26321 = z;
        double r26322 = r26320 * r26321;
        double r26323 = r26319 * r26322;
        double r26324 = i;
        double r26325 = b;
        double r26326 = r26324 * r26325;
        double r26327 = t;
        double r26328 = r26327 * r26319;
        double r26329 = r26326 - r26328;
        double r26330 = a;
        double r26331 = r26329 * r26330;
        double r26332 = c;
        double r26333 = r26332 * r26325;
        double r26334 = r26333 * r26321;
        double r26335 = r26331 - r26334;
        double r26336 = r26323 + r26335;
        double r26337 = j;
        double r26338 = r26332 * r26327;
        double r26339 = r26324 * r26320;
        double r26340 = r26338 - r26339;
        double r26341 = r26337 * r26340;
        double r26342 = r26336 + r26341;
        double r26343 = -1.1020924633125475e+307;
        bool r26344 = r26342 <= r26343;
        double r26345 = r26324 * r26330;
        double r26346 = r26332 * r26321;
        double r26347 = r26345 - r26346;
        double r26348 = r26325 * r26347;
        double r26349 = r26320 * r26324;
        double r26350 = r26338 - r26349;
        double r26351 = r26337 * r26350;
        double r26352 = r26348 + r26351;
        double r26353 = r26327 * r26330;
        double r26354 = r26319 * r26353;
        double r26355 = r26352 - r26354;
        double r26356 = 7.606571261168317e+305;
        bool r26357 = r26342 <= r26356;
        double r26358 = r26357 ? r26342 : r26355;
        double r26359 = r26344 ? r26355 : r26358;
        return r26359;
}

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 r26360, r26361, r26362, r26363, r26364, r26365, r26366, r26367, r26368, r26369, r26370, r26371, r26372, r26373, r26374, r26375, r26376, r26377, r26378, r26379, r26380, r26381, r26382;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26360);
        mpfr_init(r26361);
        mpfr_init(r26362);
        mpfr_init(r26363);
        mpfr_init(r26364);
        mpfr_init(r26365);
        mpfr_init(r26366);
        mpfr_init(r26367);
        mpfr_init(r26368);
        mpfr_init(r26369);
        mpfr_init(r26370);
        mpfr_init(r26371);
        mpfr_init(r26372);
        mpfr_init(r26373);
        mpfr_init(r26374);
        mpfr_init(r26375);
        mpfr_init(r26376);
        mpfr_init(r26377);
        mpfr_init(r26378);
        mpfr_init(r26379);
        mpfr_init(r26380);
        mpfr_init(r26381);
        mpfr_init(r26382);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26360, x, MPFR_RNDN);
        mpfr_set_d(r26361, y, MPFR_RNDN);
        mpfr_set_d(r26362, z, MPFR_RNDN);
        mpfr_mul(r26363, r26361, r26362, MPFR_RNDN);
        mpfr_set_d(r26364, t, MPFR_RNDN);
        mpfr_set_d(r26365, a, MPFR_RNDN);
        mpfr_mul(r26366, r26364, r26365, MPFR_RNDN);
        mpfr_sub(r26367, r26363, r26366, MPFR_RNDN);
        mpfr_mul(r26368, r26360, r26367, MPFR_RNDN);
        mpfr_set_d(r26369, b, MPFR_RNDN);
        mpfr_set_d(r26370, c, MPFR_RNDN);
        mpfr_mul(r26371, r26370, r26362, MPFR_RNDN);
        mpfr_set_d(r26372, i, MPFR_RNDN);
        mpfr_mul(r26373, r26372, r26365, MPFR_RNDN);
        mpfr_sub(r26374, r26371, r26373, MPFR_RNDN);
        mpfr_mul(r26375, r26369, r26374, MPFR_RNDN);
        mpfr_sub(r26376, r26368, r26375, MPFR_RNDN);
        mpfr_set_d(r26377, j, MPFR_RNDN);
        mpfr_mul(r26378, r26370, r26364, MPFR_RNDN);
        mpfr_mul(r26379, r26372, r26361, MPFR_RNDN);
        mpfr_sub(r26380, r26378, r26379, MPFR_RNDN);
        mpfr_mul(r26381, r26377, r26380, MPFR_RNDN);
        mpfr_add(r26382, r26376, r26381, MPFR_RNDN);
        return mpfr_get_d(r26382, MPFR_RNDN);
}

static mpfr_t r26383, r26384, r26385, r26386, r26387, r26388, r26389, r26390, r26391, r26392, r26393, r26394, r26395, r26396, r26397, r26398, r26399, r26400, r26401, r26402, r26403, r26404, r26405, r26406, r26407, r26408, r26409, r26410, r26411, r26412, r26413, r26414, r26415, r26416, r26417, r26418, r26419, r26420, r26421, r26422, r26423;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26383);
        mpfr_init(r26384);
        mpfr_init(r26385);
        mpfr_init(r26386);
        mpfr_init(r26387);
        mpfr_init(r26388);
        mpfr_init(r26389);
        mpfr_init(r26390);
        mpfr_init(r26391);
        mpfr_init(r26392);
        mpfr_init(r26393);
        mpfr_init(r26394);
        mpfr_init(r26395);
        mpfr_init(r26396);
        mpfr_init(r26397);
        mpfr_init(r26398);
        mpfr_init(r26399);
        mpfr_init(r26400);
        mpfr_init(r26401);
        mpfr_init(r26402);
        mpfr_init(r26403);
        mpfr_init(r26404);
        mpfr_init(r26405);
        mpfr_init(r26406);
        mpfr_init_set_str(r26407, "-1.1020924633125475e+307", 10, MPFR_RNDN);
        mpfr_init(r26408);
        mpfr_init(r26409);
        mpfr_init(r26410);
        mpfr_init(r26411);
        mpfr_init(r26412);
        mpfr_init(r26413);
        mpfr_init(r26414);
        mpfr_init(r26415);
        mpfr_init(r26416);
        mpfr_init(r26417);
        mpfr_init(r26418);
        mpfr_init(r26419);
        mpfr_init_set_str(r26420, "7.606571261168317e+305", 10, MPFR_RNDN);
        mpfr_init(r26421);
        mpfr_init(r26422);
        mpfr_init(r26423);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26383, x, MPFR_RNDN);
        mpfr_set_d(r26384, y, MPFR_RNDN);
        mpfr_set_d(r26385, z, MPFR_RNDN);
        mpfr_mul(r26386, r26384, r26385, MPFR_RNDN);
        mpfr_mul(r26387, r26383, r26386, MPFR_RNDN);
        mpfr_set_d(r26388, i, MPFR_RNDN);
        mpfr_set_d(r26389, b, MPFR_RNDN);
        mpfr_mul(r26390, r26388, r26389, MPFR_RNDN);
        mpfr_set_d(r26391, t, MPFR_RNDN);
        mpfr_mul(r26392, r26391, r26383, MPFR_RNDN);
        mpfr_sub(r26393, r26390, r26392, MPFR_RNDN);
        mpfr_set_d(r26394, a, MPFR_RNDN);
        mpfr_mul(r26395, r26393, r26394, MPFR_RNDN);
        mpfr_set_d(r26396, c, MPFR_RNDN);
        mpfr_mul(r26397, r26396, r26389, MPFR_RNDN);
        mpfr_mul(r26398, r26397, r26385, MPFR_RNDN);
        mpfr_sub(r26399, r26395, r26398, MPFR_RNDN);
        mpfr_add(r26400, r26387, r26399, MPFR_RNDN);
        mpfr_set_d(r26401, j, MPFR_RNDN);
        mpfr_mul(r26402, r26396, r26391, MPFR_RNDN);
        mpfr_mul(r26403, r26388, r26384, MPFR_RNDN);
        mpfr_sub(r26404, r26402, r26403, MPFR_RNDN);
        mpfr_mul(r26405, r26401, r26404, MPFR_RNDN);
        mpfr_add(r26406, r26400, r26405, MPFR_RNDN);
        ;
        mpfr_set_si(r26408, mpfr_cmp(r26406, r26407) <= 0, MPFR_RNDN);
        mpfr_mul(r26409, r26388, r26394, MPFR_RNDN);
        mpfr_mul(r26410, r26396, r26385, MPFR_RNDN);
        mpfr_sub(r26411, r26409, r26410, MPFR_RNDN);
        mpfr_mul(r26412, r26389, r26411, MPFR_RNDN);
        mpfr_mul(r26413, r26384, r26388, MPFR_RNDN);
        mpfr_sub(r26414, r26402, r26413, MPFR_RNDN);
        mpfr_mul(r26415, r26401, r26414, MPFR_RNDN);
        mpfr_add(r26416, r26412, r26415, MPFR_RNDN);
        mpfr_mul(r26417, r26391, r26394, MPFR_RNDN);
        mpfr_mul(r26418, r26383, r26417, MPFR_RNDN);
        mpfr_sub(r26419, r26416, r26418, MPFR_RNDN);
        ;
        mpfr_set_si(r26421, mpfr_cmp(r26406, r26420) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r26421, MPFR_RNDN)) { mpfr_set(r26422, r26406, MPFR_RNDN); } else { mpfr_set(r26422, r26419, MPFR_RNDN); };
        if (mpfr_get_si(r26408, MPFR_RNDN)) { mpfr_set(r26423, r26419, MPFR_RNDN); } else { mpfr_set(r26423, r26422, MPFR_RNDN); };
        return mpfr_get_d(r26423, MPFR_RNDN);
}

static mpfr_t r26424, r26425, r26426, r26427, r26428, r26429, r26430, r26431, r26432, r26433, r26434, r26435, r26436, r26437, r26438, r26439, r26440, r26441, r26442, r26443, r26444, r26445, r26446, r26447, r26448, r26449, r26450, r26451, r26452, r26453, r26454, r26455, r26456, r26457, r26458, r26459, r26460, r26461, r26462, r26463, r26464;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26424);
        mpfr_init(r26425);
        mpfr_init(r26426);
        mpfr_init(r26427);
        mpfr_init(r26428);
        mpfr_init(r26429);
        mpfr_init(r26430);
        mpfr_init(r26431);
        mpfr_init(r26432);
        mpfr_init(r26433);
        mpfr_init(r26434);
        mpfr_init(r26435);
        mpfr_init(r26436);
        mpfr_init(r26437);
        mpfr_init(r26438);
        mpfr_init(r26439);
        mpfr_init(r26440);
        mpfr_init(r26441);
        mpfr_init(r26442);
        mpfr_init(r26443);
        mpfr_init(r26444);
        mpfr_init(r26445);
        mpfr_init(r26446);
        mpfr_init(r26447);
        mpfr_init_set_str(r26448, "-1.1020924633125475e+307", 10, MPFR_RNDN);
        mpfr_init(r26449);
        mpfr_init(r26450);
        mpfr_init(r26451);
        mpfr_init(r26452);
        mpfr_init(r26453);
        mpfr_init(r26454);
        mpfr_init(r26455);
        mpfr_init(r26456);
        mpfr_init(r26457);
        mpfr_init(r26458);
        mpfr_init(r26459);
        mpfr_init(r26460);
        mpfr_init_set_str(r26461, "7.606571261168317e+305", 10, MPFR_RNDN);
        mpfr_init(r26462);
        mpfr_init(r26463);
        mpfr_init(r26464);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26424, x, MPFR_RNDN);
        mpfr_set_d(r26425, y, MPFR_RNDN);
        mpfr_set_d(r26426, z, MPFR_RNDN);
        mpfr_mul(r26427, r26425, r26426, MPFR_RNDN);
        mpfr_mul(r26428, r26424, r26427, MPFR_RNDN);
        mpfr_set_d(r26429, i, MPFR_RNDN);
        mpfr_set_d(r26430, b, MPFR_RNDN);
        mpfr_mul(r26431, r26429, r26430, MPFR_RNDN);
        mpfr_set_d(r26432, t, MPFR_RNDN);
        mpfr_mul(r26433, r26432, r26424, MPFR_RNDN);
        mpfr_sub(r26434, r26431, r26433, MPFR_RNDN);
        mpfr_set_d(r26435, a, MPFR_RNDN);
        mpfr_mul(r26436, r26434, r26435, MPFR_RNDN);
        mpfr_set_d(r26437, c, MPFR_RNDN);
        mpfr_mul(r26438, r26437, r26430, MPFR_RNDN);
        mpfr_mul(r26439, r26438, r26426, MPFR_RNDN);
        mpfr_sub(r26440, r26436, r26439, MPFR_RNDN);
        mpfr_add(r26441, r26428, r26440, MPFR_RNDN);
        mpfr_set_d(r26442, j, MPFR_RNDN);
        mpfr_mul(r26443, r26437, r26432, MPFR_RNDN);
        mpfr_mul(r26444, r26429, r26425, MPFR_RNDN);
        mpfr_sub(r26445, r26443, r26444, MPFR_RNDN);
        mpfr_mul(r26446, r26442, r26445, MPFR_RNDN);
        mpfr_add(r26447, r26441, r26446, MPFR_RNDN);
        ;
        mpfr_set_si(r26449, mpfr_cmp(r26447, r26448) <= 0, MPFR_RNDN);
        mpfr_mul(r26450, r26429, r26435, MPFR_RNDN);
        mpfr_mul(r26451, r26437, r26426, MPFR_RNDN);
        mpfr_sub(r26452, r26450, r26451, MPFR_RNDN);
        mpfr_mul(r26453, r26430, r26452, MPFR_RNDN);
        mpfr_mul(r26454, r26425, r26429, MPFR_RNDN);
        mpfr_sub(r26455, r26443, r26454, MPFR_RNDN);
        mpfr_mul(r26456, r26442, r26455, MPFR_RNDN);
        mpfr_add(r26457, r26453, r26456, MPFR_RNDN);
        mpfr_mul(r26458, r26432, r26435, MPFR_RNDN);
        mpfr_mul(r26459, r26424, r26458, MPFR_RNDN);
        mpfr_sub(r26460, r26457, r26459, MPFR_RNDN);
        ;
        mpfr_set_si(r26462, mpfr_cmp(r26447, r26461) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r26462, MPFR_RNDN)) { mpfr_set(r26463, r26447, MPFR_RNDN); } else { mpfr_set(r26463, r26460, MPFR_RNDN); };
        if (mpfr_get_si(r26449, MPFR_RNDN)) { mpfr_set(r26464, r26460, MPFR_RNDN); } else { mpfr_set(r26464, r26463, MPFR_RNDN); };
        return mpfr_get_d(r26464, MPFR_RNDN);
}

