#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 r48274 = x;
        float r48275 = y;
        float r48276 = z;
        float r48277 = r48275 * r48276;
        float r48278 = t;
        float r48279 = a;
        float r48280 = r48278 * r48279;
        float r48281 = r48277 - r48280;
        float r48282 = r48274 * r48281;
        float r48283 = b;
        float r48284 = c;
        float r48285 = r48284 * r48276;
        float r48286 = i;
        float r48287 = r48286 * r48279;
        float r48288 = r48285 - r48287;
        float r48289 = r48283 * r48288;
        float r48290 = r48282 - r48289;
        float r48291 = j;
        float r48292 = r48284 * r48278;
        float r48293 = r48286 * r48275;
        float r48294 = r48292 - r48293;
        float r48295 = r48291 * r48294;
        float r48296 = r48290 + r48295;
        return r48296;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r48297 = x;
        double r48298 = y;
        double r48299 = z;
        double r48300 = r48298 * r48299;
        double r48301 = t;
        double r48302 = a;
        double r48303 = r48301 * r48302;
        double r48304 = r48300 - r48303;
        double r48305 = r48297 * r48304;
        double r48306 = b;
        double r48307 = c;
        double r48308 = r48307 * r48299;
        double r48309 = i;
        double r48310 = r48309 * r48302;
        double r48311 = r48308 - r48310;
        double r48312 = r48306 * r48311;
        double r48313 = r48305 - r48312;
        double r48314 = j;
        double r48315 = r48307 * r48301;
        double r48316 = r48309 * r48298;
        double r48317 = r48315 - r48316;
        double r48318 = r48314 * r48317;
        double r48319 = r48313 + r48318;
        return r48319;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r48320 = x;
        float r48321 = -2.8672604767171556e+124;
        bool r48322 = r48320 <= r48321;
        float r48323 = y;
        float r48324 = z;
        float r48325 = r48323 * r48324;
        float r48326 = t;
        float r48327 = a;
        float r48328 = r48326 * r48327;
        float r48329 = r48325 - r48328;
        float r48330 = r48320 * r48329;
        float r48331 = b;
        float r48332 = c;
        float r48333 = r48332 * r48324;
        float r48334 = i;
        float r48335 = r48334 * r48327;
        float r48336 = r48333 - r48335;
        float r48337 = cbrt(r48336);
        float r48338 = r48337 * r48337;
        float r48339 = r48331 * r48338;
        float r48340 = r48339 * r48337;
        float r48341 = r48330 - r48340;
        float r48342 = j;
        float r48343 = r48332 * r48326;
        float r48344 = r48334 * r48323;
        float r48345 = r48343 - r48344;
        float r48346 = r48342 * r48345;
        float r48347 = r48341 + r48346;
        float r48348 = 4.918058634484688e+125;
        bool r48349 = r48320 <= r48348;
        float r48350 = r48320 * r48324;
        float r48351 = r48350 * r48323;
        float r48352 = r48326 * r48320;
        float r48353 = -r48327;
        float r48354 = r48352 * r48353;
        float r48355 = r48351 + r48354;
        float r48356 = r48336 * r48331;
        float r48357 = r48323 * r48334;
        float r48358 = r48343 - r48357;
        float r48359 = r48342 * r48358;
        float r48360 = r48356 - r48359;
        float r48361 = r48355 - r48360;
        float r48362 = r48349 ? r48361 : r48347;
        float r48363 = r48322 ? r48347 : r48362;
        return r48363;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r48364 = x;
        double r48365 = -2.8672604767171556e+124;
        bool r48366 = r48364 <= r48365;
        double r48367 = y;
        double r48368 = z;
        double r48369 = r48367 * r48368;
        double r48370 = t;
        double r48371 = a;
        double r48372 = r48370 * r48371;
        double r48373 = r48369 - r48372;
        double r48374 = r48364 * r48373;
        double r48375 = b;
        double r48376 = c;
        double r48377 = r48376 * r48368;
        double r48378 = i;
        double r48379 = r48378 * r48371;
        double r48380 = r48377 - r48379;
        double r48381 = cbrt(r48380);
        double r48382 = r48381 * r48381;
        double r48383 = r48375 * r48382;
        double r48384 = r48383 * r48381;
        double r48385 = r48374 - r48384;
        double r48386 = j;
        double r48387 = r48376 * r48370;
        double r48388 = r48378 * r48367;
        double r48389 = r48387 - r48388;
        double r48390 = r48386 * r48389;
        double r48391 = r48385 + r48390;
        double r48392 = 4.918058634484688e+125;
        bool r48393 = r48364 <= r48392;
        double r48394 = r48364 * r48368;
        double r48395 = r48394 * r48367;
        double r48396 = r48370 * r48364;
        double r48397 = -r48371;
        double r48398 = r48396 * r48397;
        double r48399 = r48395 + r48398;
        double r48400 = r48380 * r48375;
        double r48401 = r48367 * r48378;
        double r48402 = r48387 - r48401;
        double r48403 = r48386 * r48402;
        double r48404 = r48400 - r48403;
        double r48405 = r48399 - r48404;
        double r48406 = r48393 ? r48405 : r48391;
        double r48407 = r48366 ? r48391 : r48406;
        return r48407;
}

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 r48408, r48409, r48410, r48411, r48412, r48413, r48414, r48415, r48416, r48417, r48418, r48419, r48420, r48421, r48422, r48423, r48424, r48425, r48426, r48427, r48428, r48429, r48430;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r48408);
        mpfr_init(r48409);
        mpfr_init(r48410);
        mpfr_init(r48411);
        mpfr_init(r48412);
        mpfr_init(r48413);
        mpfr_init(r48414);
        mpfr_init(r48415);
        mpfr_init(r48416);
        mpfr_init(r48417);
        mpfr_init(r48418);
        mpfr_init(r48419);
        mpfr_init(r48420);
        mpfr_init(r48421);
        mpfr_init(r48422);
        mpfr_init(r48423);
        mpfr_init(r48424);
        mpfr_init(r48425);
        mpfr_init(r48426);
        mpfr_init(r48427);
        mpfr_init(r48428);
        mpfr_init(r48429);
        mpfr_init(r48430);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r48408, x, MPFR_RNDN);
        mpfr_set_d(r48409, y, MPFR_RNDN);
        mpfr_set_d(r48410, z, MPFR_RNDN);
        mpfr_mul(r48411, r48409, r48410, MPFR_RNDN);
        mpfr_set_d(r48412, t, MPFR_RNDN);
        mpfr_set_d(r48413, a, MPFR_RNDN);
        mpfr_mul(r48414, r48412, r48413, MPFR_RNDN);
        mpfr_sub(r48415, r48411, r48414, MPFR_RNDN);
        mpfr_mul(r48416, r48408, r48415, MPFR_RNDN);
        mpfr_set_d(r48417, b, MPFR_RNDN);
        mpfr_set_d(r48418, c, MPFR_RNDN);
        mpfr_mul(r48419, r48418, r48410, MPFR_RNDN);
        mpfr_set_d(r48420, i, MPFR_RNDN);
        mpfr_mul(r48421, r48420, r48413, MPFR_RNDN);
        mpfr_sub(r48422, r48419, r48421, MPFR_RNDN);
        mpfr_mul(r48423, r48417, r48422, MPFR_RNDN);
        mpfr_sub(r48424, r48416, r48423, MPFR_RNDN);
        mpfr_set_d(r48425, j, MPFR_RNDN);
        mpfr_mul(r48426, r48418, r48412, MPFR_RNDN);
        mpfr_mul(r48427, r48420, r48409, MPFR_RNDN);
        mpfr_sub(r48428, r48426, r48427, MPFR_RNDN);
        mpfr_mul(r48429, r48425, r48428, MPFR_RNDN);
        mpfr_add(r48430, r48424, r48429, MPFR_RNDN);
        return mpfr_get_d(r48430, MPFR_RNDN);
}

static mpfr_t r48431, r48432, r48433, r48434, r48435, r48436, r48437, r48438, r48439, r48440, r48441, r48442, r48443, r48444, r48445, r48446, r48447, r48448, r48449, r48450, r48451, r48452, r48453, r48454, r48455, r48456, r48457, r48458, r48459, r48460, r48461, r48462, r48463, r48464, r48465, r48466, r48467, r48468, r48469, r48470, r48471, r48472, r48473, r48474;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r48431);
        mpfr_init_set_str(r48432, "-2.8672604767171556e+124", 10, MPFR_RNDN);
        mpfr_init(r48433);
        mpfr_init(r48434);
        mpfr_init(r48435);
        mpfr_init(r48436);
        mpfr_init(r48437);
        mpfr_init(r48438);
        mpfr_init(r48439);
        mpfr_init(r48440);
        mpfr_init(r48441);
        mpfr_init(r48442);
        mpfr_init(r48443);
        mpfr_init(r48444);
        mpfr_init(r48445);
        mpfr_init(r48446);
        mpfr_init(r48447);
        mpfr_init(r48448);
        mpfr_init(r48449);
        mpfr_init(r48450);
        mpfr_init(r48451);
        mpfr_init(r48452);
        mpfr_init(r48453);
        mpfr_init(r48454);
        mpfr_init(r48455);
        mpfr_init(r48456);
        mpfr_init(r48457);
        mpfr_init(r48458);
        mpfr_init_set_str(r48459, "4.918058634484688e+125", 10, MPFR_RNDN);
        mpfr_init(r48460);
        mpfr_init(r48461);
        mpfr_init(r48462);
        mpfr_init(r48463);
        mpfr_init(r48464);
        mpfr_init(r48465);
        mpfr_init(r48466);
        mpfr_init(r48467);
        mpfr_init(r48468);
        mpfr_init(r48469);
        mpfr_init(r48470);
        mpfr_init(r48471);
        mpfr_init(r48472);
        mpfr_init(r48473);
        mpfr_init(r48474);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r48431, x, MPFR_RNDN);
        ;
        mpfr_set_si(r48433, mpfr_cmp(r48431, r48432) <= 0, MPFR_RNDN);
        mpfr_set_d(r48434, y, MPFR_RNDN);
        mpfr_set_d(r48435, z, MPFR_RNDN);
        mpfr_mul(r48436, r48434, r48435, MPFR_RNDN);
        mpfr_set_d(r48437, t, MPFR_RNDN);
        mpfr_set_d(r48438, a, MPFR_RNDN);
        mpfr_mul(r48439, r48437, r48438, MPFR_RNDN);
        mpfr_sub(r48440, r48436, r48439, MPFR_RNDN);
        mpfr_mul(r48441, r48431, r48440, MPFR_RNDN);
        mpfr_set_d(r48442, b, MPFR_RNDN);
        mpfr_set_d(r48443, c, MPFR_RNDN);
        mpfr_mul(r48444, r48443, r48435, MPFR_RNDN);
        mpfr_set_d(r48445, i, MPFR_RNDN);
        mpfr_mul(r48446, r48445, r48438, MPFR_RNDN);
        mpfr_sub(r48447, r48444, r48446, MPFR_RNDN);
        mpfr_cbrt(r48448, r48447, MPFR_RNDN);
        mpfr_mul(r48449, r48448, r48448, MPFR_RNDN);
        mpfr_mul(r48450, r48442, r48449, MPFR_RNDN);
        mpfr_mul(r48451, r48450, r48448, MPFR_RNDN);
        mpfr_sub(r48452, r48441, r48451, MPFR_RNDN);
        mpfr_set_d(r48453, j, MPFR_RNDN);
        mpfr_mul(r48454, r48443, r48437, MPFR_RNDN);
        mpfr_mul(r48455, r48445, r48434, MPFR_RNDN);
        mpfr_sub(r48456, r48454, r48455, MPFR_RNDN);
        mpfr_mul(r48457, r48453, r48456, MPFR_RNDN);
        mpfr_add(r48458, r48452, r48457, MPFR_RNDN);
        ;
        mpfr_set_si(r48460, mpfr_cmp(r48431, r48459) <= 0, MPFR_RNDN);
        mpfr_mul(r48461, r48431, r48435, MPFR_RNDN);
        mpfr_mul(r48462, r48461, r48434, MPFR_RNDN);
        mpfr_mul(r48463, r48437, r48431, MPFR_RNDN);
        mpfr_neg(r48464, r48438, MPFR_RNDN);
        mpfr_mul(r48465, r48463, r48464, MPFR_RNDN);
        mpfr_add(r48466, r48462, r48465, MPFR_RNDN);
        mpfr_mul(r48467, r48447, r48442, MPFR_RNDN);
        mpfr_mul(r48468, r48434, r48445, MPFR_RNDN);
        mpfr_sub(r48469, r48454, r48468, MPFR_RNDN);
        mpfr_mul(r48470, r48453, r48469, MPFR_RNDN);
        mpfr_sub(r48471, r48467, r48470, MPFR_RNDN);
        mpfr_sub(r48472, r48466, r48471, MPFR_RNDN);
        if (mpfr_get_si(r48460, MPFR_RNDN)) { mpfr_set(r48473, r48472, MPFR_RNDN); } else { mpfr_set(r48473, r48458, MPFR_RNDN); };
        if (mpfr_get_si(r48433, MPFR_RNDN)) { mpfr_set(r48474, r48458, MPFR_RNDN); } else { mpfr_set(r48474, r48473, MPFR_RNDN); };
        return mpfr_get_d(r48474, MPFR_RNDN);
}

static mpfr_t r48475, r48476, r48477, r48478, r48479, r48480, r48481, r48482, r48483, r48484, r48485, r48486, r48487, r48488, r48489, r48490, r48491, r48492, r48493, r48494, r48495, r48496, r48497, r48498, r48499, r48500, r48501, r48502, r48503, r48504, r48505, r48506, r48507, r48508, r48509, r48510, r48511, r48512, r48513, r48514, r48515, r48516, r48517, r48518;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r48475);
        mpfr_init_set_str(r48476, "-2.8672604767171556e+124", 10, MPFR_RNDN);
        mpfr_init(r48477);
        mpfr_init(r48478);
        mpfr_init(r48479);
        mpfr_init(r48480);
        mpfr_init(r48481);
        mpfr_init(r48482);
        mpfr_init(r48483);
        mpfr_init(r48484);
        mpfr_init(r48485);
        mpfr_init(r48486);
        mpfr_init(r48487);
        mpfr_init(r48488);
        mpfr_init(r48489);
        mpfr_init(r48490);
        mpfr_init(r48491);
        mpfr_init(r48492);
        mpfr_init(r48493);
        mpfr_init(r48494);
        mpfr_init(r48495);
        mpfr_init(r48496);
        mpfr_init(r48497);
        mpfr_init(r48498);
        mpfr_init(r48499);
        mpfr_init(r48500);
        mpfr_init(r48501);
        mpfr_init(r48502);
        mpfr_init_set_str(r48503, "4.918058634484688e+125", 10, MPFR_RNDN);
        mpfr_init(r48504);
        mpfr_init(r48505);
        mpfr_init(r48506);
        mpfr_init(r48507);
        mpfr_init(r48508);
        mpfr_init(r48509);
        mpfr_init(r48510);
        mpfr_init(r48511);
        mpfr_init(r48512);
        mpfr_init(r48513);
        mpfr_init(r48514);
        mpfr_init(r48515);
        mpfr_init(r48516);
        mpfr_init(r48517);
        mpfr_init(r48518);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r48475, x, MPFR_RNDN);
        ;
        mpfr_set_si(r48477, mpfr_cmp(r48475, r48476) <= 0, MPFR_RNDN);
        mpfr_set_d(r48478, y, MPFR_RNDN);
        mpfr_set_d(r48479, z, MPFR_RNDN);
        mpfr_mul(r48480, r48478, r48479, MPFR_RNDN);
        mpfr_set_d(r48481, t, MPFR_RNDN);
        mpfr_set_d(r48482, a, MPFR_RNDN);
        mpfr_mul(r48483, r48481, r48482, MPFR_RNDN);
        mpfr_sub(r48484, r48480, r48483, MPFR_RNDN);
        mpfr_mul(r48485, r48475, r48484, MPFR_RNDN);
        mpfr_set_d(r48486, b, MPFR_RNDN);
        mpfr_set_d(r48487, c, MPFR_RNDN);
        mpfr_mul(r48488, r48487, r48479, MPFR_RNDN);
        mpfr_set_d(r48489, i, MPFR_RNDN);
        mpfr_mul(r48490, r48489, r48482, MPFR_RNDN);
        mpfr_sub(r48491, r48488, r48490, MPFR_RNDN);
        mpfr_cbrt(r48492, r48491, MPFR_RNDN);
        mpfr_mul(r48493, r48492, r48492, MPFR_RNDN);
        mpfr_mul(r48494, r48486, r48493, MPFR_RNDN);
        mpfr_mul(r48495, r48494, r48492, MPFR_RNDN);
        mpfr_sub(r48496, r48485, r48495, MPFR_RNDN);
        mpfr_set_d(r48497, j, MPFR_RNDN);
        mpfr_mul(r48498, r48487, r48481, MPFR_RNDN);
        mpfr_mul(r48499, r48489, r48478, MPFR_RNDN);
        mpfr_sub(r48500, r48498, r48499, MPFR_RNDN);
        mpfr_mul(r48501, r48497, r48500, MPFR_RNDN);
        mpfr_add(r48502, r48496, r48501, MPFR_RNDN);
        ;
        mpfr_set_si(r48504, mpfr_cmp(r48475, r48503) <= 0, MPFR_RNDN);
        mpfr_mul(r48505, r48475, r48479, MPFR_RNDN);
        mpfr_mul(r48506, r48505, r48478, MPFR_RNDN);
        mpfr_mul(r48507, r48481, r48475, MPFR_RNDN);
        mpfr_neg(r48508, r48482, MPFR_RNDN);
        mpfr_mul(r48509, r48507, r48508, MPFR_RNDN);
        mpfr_add(r48510, r48506, r48509, MPFR_RNDN);
        mpfr_mul(r48511, r48491, r48486, MPFR_RNDN);
        mpfr_mul(r48512, r48478, r48489, MPFR_RNDN);
        mpfr_sub(r48513, r48498, r48512, MPFR_RNDN);
        mpfr_mul(r48514, r48497, r48513, MPFR_RNDN);
        mpfr_sub(r48515, r48511, r48514, MPFR_RNDN);
        mpfr_sub(r48516, r48510, r48515, MPFR_RNDN);
        if (mpfr_get_si(r48504, MPFR_RNDN)) { mpfr_set(r48517, r48516, MPFR_RNDN); } else { mpfr_set(r48517, r48502, MPFR_RNDN); };
        if (mpfr_get_si(r48477, MPFR_RNDN)) { mpfr_set(r48518, r48502, MPFR_RNDN); } else { mpfr_set(r48518, r48517, MPFR_RNDN); };
        return mpfr_get_d(r48518, MPFR_RNDN);
}

