#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 r27342 = x;
        float r27343 = y;
        float r27344 = z;
        float r27345 = r27343 * r27344;
        float r27346 = t;
        float r27347 = a;
        float r27348 = r27346 * r27347;
        float r27349 = r27345 - r27348;
        float r27350 = r27342 * r27349;
        float r27351 = b;
        float r27352 = c;
        float r27353 = r27352 * r27344;
        float r27354 = i;
        float r27355 = r27354 * r27347;
        float r27356 = r27353 - r27355;
        float r27357 = r27351 * r27356;
        float r27358 = r27350 - r27357;
        float r27359 = j;
        float r27360 = r27352 * r27346;
        float r27361 = r27354 * r27343;
        float r27362 = r27360 - r27361;
        float r27363 = r27359 * r27362;
        float r27364 = r27358 + r27363;
        return r27364;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r27365 = x;
        double r27366 = y;
        double r27367 = z;
        double r27368 = r27366 * r27367;
        double r27369 = t;
        double r27370 = a;
        double r27371 = r27369 * r27370;
        double r27372 = r27368 - r27371;
        double r27373 = r27365 * r27372;
        double r27374 = b;
        double r27375 = c;
        double r27376 = r27375 * r27367;
        double r27377 = i;
        double r27378 = r27377 * r27370;
        double r27379 = r27376 - r27378;
        double r27380 = r27374 * r27379;
        double r27381 = r27373 - r27380;
        double r27382 = j;
        double r27383 = r27375 * r27369;
        double r27384 = r27377 * r27366;
        double r27385 = r27383 - r27384;
        double r27386 = r27382 * r27385;
        double r27387 = r27381 + r27386;
        return r27387;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r27388 = a;
        float r27389 = 2.3403364003398004e+122f;
        bool r27390 = r27388 <= r27389;
        float r27391 = x;
        float r27392 = y;
        float r27393 = z;
        float r27394 = r27392 * r27393;
        float r27395 = t;
        float r27396 = r27395 * r27388;
        float r27397 = r27394 - r27396;
        float r27398 = r27391 * r27397;
        float r27399 = b;
        float r27400 = c;
        float r27401 = r27400 * r27393;
        float r27402 = i;
        float r27403 = r27402 * r27388;
        float r27404 = r27401 - r27403;
        float r27405 = r27399 * r27404;
        float r27406 = r27398 - r27405;
        float r27407 = j;
        float r27408 = r27400 * r27395;
        float r27409 = r27402 * r27392;
        float r27410 = r27408 - r27409;
        float r27411 = r27407 * r27410;
        float r27412 = cbrt(r27411);
        float r27413 = r27412 * (r27412 * r27412);
        float r27414 = r27406 + r27413;
        float r27415 = r27395 * r27400;
        float r27416 = r27392 * r27402;
        float r27417 = r27415 - r27416;
        float r27418 = r27407 * r27417;
        float r27419 = r27399 * r27393;
        float r27420 = r27419 * r27400;
        float r27421 = r27418 - r27420;
        float r27422 = r27399 * r27402;
        float r27423 = r27391 * r27395;
        float r27424 = r27422 - r27423;
        float r27425 = r27424 * r27388;
        float r27426 = r27421 + r27425;
        float r27427 = r27390 ? r27414 : r27426;
        return r27427;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r27428 = a;
        double r27429 = 2.3403364003398004e+122;
        bool r27430 = r27428 <= r27429;
        double r27431 = x;
        double r27432 = y;
        double r27433 = z;
        double r27434 = r27432 * r27433;
        double r27435 = t;
        double r27436 = r27435 * r27428;
        double r27437 = r27434 - r27436;
        double r27438 = r27431 * r27437;
        double r27439 = b;
        double r27440 = c;
        double r27441 = r27440 * r27433;
        double r27442 = i;
        double r27443 = r27442 * r27428;
        double r27444 = r27441 - r27443;
        double r27445 = r27439 * r27444;
        double r27446 = r27438 - r27445;
        double r27447 = j;
        double r27448 = r27440 * r27435;
        double r27449 = r27442 * r27432;
        double r27450 = r27448 - r27449;
        double r27451 = r27447 * r27450;
        double r27452 = cbrt(r27451);
        double r27453 = r27452 * (r27452 * r27452);
        double r27454 = r27446 + r27453;
        double r27455 = r27435 * r27440;
        double r27456 = r27432 * r27442;
        double r27457 = r27455 - r27456;
        double r27458 = r27447 * r27457;
        double r27459 = r27439 * r27433;
        double r27460 = r27459 * r27440;
        double r27461 = r27458 - r27460;
        double r27462 = r27439 * r27442;
        double r27463 = r27431 * r27435;
        double r27464 = r27462 - r27463;
        double r27465 = r27464 * r27428;
        double r27466 = r27461 + r27465;
        double r27467 = r27430 ? r27454 : r27466;
        return r27467;
}

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 r27468, r27469, r27470, r27471, r27472, r27473, r27474, r27475, r27476, r27477, r27478, r27479, r27480, r27481, r27482, r27483, r27484, r27485, r27486, r27487, r27488, r27489, r27490;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r27468);
        mpfr_init(r27469);
        mpfr_init(r27470);
        mpfr_init(r27471);
        mpfr_init(r27472);
        mpfr_init(r27473);
        mpfr_init(r27474);
        mpfr_init(r27475);
        mpfr_init(r27476);
        mpfr_init(r27477);
        mpfr_init(r27478);
        mpfr_init(r27479);
        mpfr_init(r27480);
        mpfr_init(r27481);
        mpfr_init(r27482);
        mpfr_init(r27483);
        mpfr_init(r27484);
        mpfr_init(r27485);
        mpfr_init(r27486);
        mpfr_init(r27487);
        mpfr_init(r27488);
        mpfr_init(r27489);
        mpfr_init(r27490);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r27468, x, MPFR_RNDN);
        mpfr_set_d(r27469, y, MPFR_RNDN);
        mpfr_set_d(r27470, z, MPFR_RNDN);
        mpfr_mul(r27471, r27469, r27470, MPFR_RNDN);
        mpfr_set_d(r27472, t, MPFR_RNDN);
        mpfr_set_d(r27473, a, MPFR_RNDN);
        mpfr_mul(r27474, r27472, r27473, MPFR_RNDN);
        mpfr_sub(r27475, r27471, r27474, MPFR_RNDN);
        mpfr_mul(r27476, r27468, r27475, MPFR_RNDN);
        mpfr_set_d(r27477, b, MPFR_RNDN);
        mpfr_set_d(r27478, c, MPFR_RNDN);
        mpfr_mul(r27479, r27478, r27470, MPFR_RNDN);
        mpfr_set_d(r27480, i, MPFR_RNDN);
        mpfr_mul(r27481, r27480, r27473, MPFR_RNDN);
        mpfr_sub(r27482, r27479, r27481, MPFR_RNDN);
        mpfr_mul(r27483, r27477, r27482, MPFR_RNDN);
        mpfr_sub(r27484, r27476, r27483, MPFR_RNDN);
        mpfr_set_d(r27485, j, MPFR_RNDN);
        mpfr_mul(r27486, r27478, r27472, MPFR_RNDN);
        mpfr_mul(r27487, r27480, r27469, MPFR_RNDN);
        mpfr_sub(r27488, r27486, r27487, MPFR_RNDN);
        mpfr_mul(r27489, r27485, r27488, MPFR_RNDN);
        mpfr_add(r27490, r27484, r27489, MPFR_RNDN);
        return mpfr_get_d(r27490, MPFR_RNDN);
}

static mpfr_t r27491, r27492, r27493, r27494, r27495, r27496, r27497, r27498, r27499, r27500, r27501, r27502, r27503, r27504, r27505, r27506, r27507, r27508, r27509, r27510, r27511, r27512, r27513, r27514, r27515, r27516, r27517, r27518, r27519, r27520, r27521, r27522, r27523, r27524, r27525, r27526, r27527, r27528, r27529, r27530;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r27491);
        mpfr_init_set_str(r27492, "2.3403364003398004e+122", 10, MPFR_RNDN);
        mpfr_init(r27493);
        mpfr_init(r27494);
        mpfr_init(r27495);
        mpfr_init(r27496);
        mpfr_init(r27497);
        mpfr_init(r27498);
        mpfr_init(r27499);
        mpfr_init(r27500);
        mpfr_init(r27501);
        mpfr_init(r27502);
        mpfr_init(r27503);
        mpfr_init(r27504);
        mpfr_init(r27505);
        mpfr_init(r27506);
        mpfr_init(r27507);
        mpfr_init(r27508);
        mpfr_init(r27509);
        mpfr_init(r27510);
        mpfr_init(r27511);
        mpfr_init(r27512);
        mpfr_init(r27513);
        mpfr_init(r27514);
        mpfr_init(r27515);
        mpfr_init(r27516);
        mpfr_init(r27517);
        mpfr_init(r27518);
        mpfr_init(r27519);
        mpfr_init(r27520);
        mpfr_init(r27521);
        mpfr_init(r27522);
        mpfr_init(r27523);
        mpfr_init(r27524);
        mpfr_init(r27525);
        mpfr_init(r27526);
        mpfr_init(r27527);
        mpfr_init(r27528);
        mpfr_init(r27529);
        mpfr_init(r27530);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r27491, a, MPFR_RNDN);
        ;
        mpfr_set_si(r27493, mpfr_cmp(r27491, r27492) <= 0, MPFR_RNDN);
        mpfr_set_d(r27494, x, MPFR_RNDN);
        mpfr_set_d(r27495, y, MPFR_RNDN);
        mpfr_set_d(r27496, z, MPFR_RNDN);
        mpfr_mul(r27497, r27495, r27496, MPFR_RNDN);
        mpfr_set_d(r27498, t, MPFR_RNDN);
        mpfr_mul(r27499, r27498, r27491, MPFR_RNDN);
        mpfr_sub(r27500, r27497, r27499, MPFR_RNDN);
        mpfr_mul(r27501, r27494, r27500, MPFR_RNDN);
        mpfr_set_d(r27502, b, MPFR_RNDN);
        mpfr_set_d(r27503, c, MPFR_RNDN);
        mpfr_mul(r27504, r27503, r27496, MPFR_RNDN);
        mpfr_set_d(r27505, i, MPFR_RNDN);
        mpfr_mul(r27506, r27505, r27491, MPFR_RNDN);
        mpfr_sub(r27507, r27504, r27506, MPFR_RNDN);
        mpfr_mul(r27508, r27502, r27507, MPFR_RNDN);
        mpfr_sub(r27509, r27501, r27508, MPFR_RNDN);
        mpfr_set_d(r27510, j, MPFR_RNDN);
        mpfr_mul(r27511, r27503, r27498, MPFR_RNDN);
        mpfr_mul(r27512, r27505, r27495, MPFR_RNDN);
        mpfr_sub(r27513, r27511, r27512, MPFR_RNDN);
        mpfr_mul(r27514, r27510, r27513, MPFR_RNDN);
        mpfr_cbrt(r27515, r27514, MPFR_RNDN);
        mpfr_mul(r27516, r27515, r27515, MPFR_RNDN); mpfr_mul(r27516, r27516, r27515, MPFR_RNDN);
        mpfr_add(r27517, r27509, r27516, MPFR_RNDN);
        mpfr_mul(r27518, r27498, r27503, MPFR_RNDN);
        mpfr_mul(r27519, r27495, r27505, MPFR_RNDN);
        mpfr_sub(r27520, r27518, r27519, MPFR_RNDN);
        mpfr_mul(r27521, r27510, r27520, MPFR_RNDN);
        mpfr_mul(r27522, r27502, r27496, MPFR_RNDN);
        mpfr_mul(r27523, r27522, r27503, MPFR_RNDN);
        mpfr_sub(r27524, r27521, r27523, MPFR_RNDN);
        mpfr_mul(r27525, r27502, r27505, MPFR_RNDN);
        mpfr_mul(r27526, r27494, r27498, MPFR_RNDN);
        mpfr_sub(r27527, r27525, r27526, MPFR_RNDN);
        mpfr_mul(r27528, r27527, r27491, MPFR_RNDN);
        mpfr_add(r27529, r27524, r27528, MPFR_RNDN);
        if (mpfr_get_si(r27493, MPFR_RNDN)) { mpfr_set(r27530, r27517, MPFR_RNDN); } else { mpfr_set(r27530, r27529, MPFR_RNDN); };
        return mpfr_get_d(r27530, MPFR_RNDN);
}

static mpfr_t r27531, r27532, r27533, r27534, r27535, r27536, r27537, r27538, r27539, r27540, r27541, r27542, r27543, r27544, r27545, r27546, r27547, r27548, r27549, r27550, r27551, r27552, r27553, r27554, r27555, r27556, r27557, r27558, r27559, r27560, r27561, r27562, r27563, r27564, r27565, r27566, r27567, r27568, r27569, r27570;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r27531);
        mpfr_init_set_str(r27532, "2.3403364003398004e+122", 10, MPFR_RNDN);
        mpfr_init(r27533);
        mpfr_init(r27534);
        mpfr_init(r27535);
        mpfr_init(r27536);
        mpfr_init(r27537);
        mpfr_init(r27538);
        mpfr_init(r27539);
        mpfr_init(r27540);
        mpfr_init(r27541);
        mpfr_init(r27542);
        mpfr_init(r27543);
        mpfr_init(r27544);
        mpfr_init(r27545);
        mpfr_init(r27546);
        mpfr_init(r27547);
        mpfr_init(r27548);
        mpfr_init(r27549);
        mpfr_init(r27550);
        mpfr_init(r27551);
        mpfr_init(r27552);
        mpfr_init(r27553);
        mpfr_init(r27554);
        mpfr_init(r27555);
        mpfr_init(r27556);
        mpfr_init(r27557);
        mpfr_init(r27558);
        mpfr_init(r27559);
        mpfr_init(r27560);
        mpfr_init(r27561);
        mpfr_init(r27562);
        mpfr_init(r27563);
        mpfr_init(r27564);
        mpfr_init(r27565);
        mpfr_init(r27566);
        mpfr_init(r27567);
        mpfr_init(r27568);
        mpfr_init(r27569);
        mpfr_init(r27570);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r27531, a, MPFR_RNDN);
        ;
        mpfr_set_si(r27533, mpfr_cmp(r27531, r27532) <= 0, MPFR_RNDN);
        mpfr_set_d(r27534, x, MPFR_RNDN);
        mpfr_set_d(r27535, y, MPFR_RNDN);
        mpfr_set_d(r27536, z, MPFR_RNDN);
        mpfr_mul(r27537, r27535, r27536, MPFR_RNDN);
        mpfr_set_d(r27538, t, MPFR_RNDN);
        mpfr_mul(r27539, r27538, r27531, MPFR_RNDN);
        mpfr_sub(r27540, r27537, r27539, MPFR_RNDN);
        mpfr_mul(r27541, r27534, r27540, MPFR_RNDN);
        mpfr_set_d(r27542, b, MPFR_RNDN);
        mpfr_set_d(r27543, c, MPFR_RNDN);
        mpfr_mul(r27544, r27543, r27536, MPFR_RNDN);
        mpfr_set_d(r27545, i, MPFR_RNDN);
        mpfr_mul(r27546, r27545, r27531, MPFR_RNDN);
        mpfr_sub(r27547, r27544, r27546, MPFR_RNDN);
        mpfr_mul(r27548, r27542, r27547, MPFR_RNDN);
        mpfr_sub(r27549, r27541, r27548, MPFR_RNDN);
        mpfr_set_d(r27550, j, MPFR_RNDN);
        mpfr_mul(r27551, r27543, r27538, MPFR_RNDN);
        mpfr_mul(r27552, r27545, r27535, MPFR_RNDN);
        mpfr_sub(r27553, r27551, r27552, MPFR_RNDN);
        mpfr_mul(r27554, r27550, r27553, MPFR_RNDN);
        mpfr_cbrt(r27555, r27554, MPFR_RNDN);
        mpfr_mul(r27556, r27555, r27555, MPFR_RNDN); mpfr_mul(r27556, r27556, r27555, MPFR_RNDN);
        mpfr_add(r27557, r27549, r27556, MPFR_RNDN);
        mpfr_mul(r27558, r27538, r27543, MPFR_RNDN);
        mpfr_mul(r27559, r27535, r27545, MPFR_RNDN);
        mpfr_sub(r27560, r27558, r27559, MPFR_RNDN);
        mpfr_mul(r27561, r27550, r27560, MPFR_RNDN);
        mpfr_mul(r27562, r27542, r27536, MPFR_RNDN);
        mpfr_mul(r27563, r27562, r27543, MPFR_RNDN);
        mpfr_sub(r27564, r27561, r27563, MPFR_RNDN);
        mpfr_mul(r27565, r27542, r27545, MPFR_RNDN);
        mpfr_mul(r27566, r27534, r27538, MPFR_RNDN);
        mpfr_sub(r27567, r27565, r27566, MPFR_RNDN);
        mpfr_mul(r27568, r27567, r27531, MPFR_RNDN);
        mpfr_add(r27569, r27564, r27568, MPFR_RNDN);
        if (mpfr_get_si(r27533, MPFR_RNDN)) { mpfr_set(r27570, r27557, MPFR_RNDN); } else { mpfr_set(r27570, r27569, MPFR_RNDN); };
        return mpfr_get_d(r27570, MPFR_RNDN);
}

