#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 r29506 = x;
        float r29507 = y;
        float r29508 = z;
        float r29509 = r29507 * r29508;
        float r29510 = t;
        float r29511 = a;
        float r29512 = r29510 * r29511;
        float r29513 = r29509 - r29512;
        float r29514 = r29506 * r29513;
        float r29515 = b;
        float r29516 = c;
        float r29517 = r29516 * r29508;
        float r29518 = i;
        float r29519 = r29518 * r29511;
        float r29520 = r29517 - r29519;
        float r29521 = r29515 * r29520;
        float r29522 = r29514 - r29521;
        float r29523 = j;
        float r29524 = r29516 * r29510;
        float r29525 = r29518 * r29507;
        float r29526 = r29524 - r29525;
        float r29527 = r29523 * r29526;
        float r29528 = r29522 + r29527;
        return r29528;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r29529 = x;
        double r29530 = y;
        double r29531 = z;
        double r29532 = r29530 * r29531;
        double r29533 = t;
        double r29534 = a;
        double r29535 = r29533 * r29534;
        double r29536 = r29532 - r29535;
        double r29537 = r29529 * r29536;
        double r29538 = b;
        double r29539 = c;
        double r29540 = r29539 * r29531;
        double r29541 = i;
        double r29542 = r29541 * r29534;
        double r29543 = r29540 - r29542;
        double r29544 = r29538 * r29543;
        double r29545 = r29537 - r29544;
        double r29546 = j;
        double r29547 = r29539 * r29533;
        double r29548 = r29541 * r29530;
        double r29549 = r29547 - r29548;
        double r29550 = r29546 * r29549;
        double r29551 = r29545 + r29550;
        return r29551;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r29552 = x;
        float r29553 = -3.1186130314637846e+124;
        bool r29554 = r29552 <= r29553;
        float r29555 = y;
        float r29556 = z;
        float r29557 = r29555 * r29556;
        float r29558 = t;
        float r29559 = a;
        float r29560 = r29558 * r29559;
        float r29561 = r29557 - r29560;
        float r29562 = r29552 * r29561;
        float r29563 = b;
        float r29564 = c;
        float r29565 = r29564 * r29556;
        float r29566 = i;
        float r29567 = r29566 * r29559;
        float r29568 = r29565 - r29567;
        float r29569 = cbrt(r29568);
        float r29570 = r29569 * r29569;
        float r29571 = r29563 * r29570;
        float r29572 = r29571 * r29569;
        float r29573 = r29562 - r29572;
        float r29574 = j;
        float r29575 = r29564 * r29558;
        float r29576 = r29566 * r29555;
        float r29577 = r29575 - r29576;
        float r29578 = r29574 * r29577;
        float r29579 = r29573 + r29578;
        float r29580 = 4.863955640625947e+121;
        bool r29581 = r29552 <= r29580;
        float r29582 = r29552 * r29556;
        float r29583 = r29582 * r29555;
        float r29584 = r29558 * r29552;
        float r29585 = -r29559;
        float r29586 = r29584 * r29585;
        float r29587 = r29583 + r29586;
        float r29588 = r29568 * r29563;
        float r29589 = r29555 * r29566;
        float r29590 = r29575 - r29589;
        float r29591 = r29574 * r29590;
        float r29592 = r29588 - r29591;
        float r29593 = r29587 - r29592;
        float r29594 = r29581 ? r29593 : r29579;
        float r29595 = r29554 ? r29579 : r29594;
        return r29595;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r29596 = x;
        double r29597 = -3.1186130314637846e+124;
        bool r29598 = r29596 <= r29597;
        double r29599 = y;
        double r29600 = z;
        double r29601 = r29599 * r29600;
        double r29602 = t;
        double r29603 = a;
        double r29604 = r29602 * r29603;
        double r29605 = r29601 - r29604;
        double r29606 = r29596 * r29605;
        double r29607 = b;
        double r29608 = c;
        double r29609 = r29608 * r29600;
        double r29610 = i;
        double r29611 = r29610 * r29603;
        double r29612 = r29609 - r29611;
        double r29613 = cbrt(r29612);
        double r29614 = r29613 * r29613;
        double r29615 = r29607 * r29614;
        double r29616 = r29615 * r29613;
        double r29617 = r29606 - r29616;
        double r29618 = j;
        double r29619 = r29608 * r29602;
        double r29620 = r29610 * r29599;
        double r29621 = r29619 - r29620;
        double r29622 = r29618 * r29621;
        double r29623 = r29617 + r29622;
        double r29624 = 4.863955640625947e+121;
        bool r29625 = r29596 <= r29624;
        double r29626 = r29596 * r29600;
        double r29627 = r29626 * r29599;
        double r29628 = r29602 * r29596;
        double r29629 = -r29603;
        double r29630 = r29628 * r29629;
        double r29631 = r29627 + r29630;
        double r29632 = r29612 * r29607;
        double r29633 = r29599 * r29610;
        double r29634 = r29619 - r29633;
        double r29635 = r29618 * r29634;
        double r29636 = r29632 - r29635;
        double r29637 = r29631 - r29636;
        double r29638 = r29625 ? r29637 : r29623;
        double r29639 = r29598 ? r29623 : r29638;
        return r29639;
}

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 r29640, r29641, r29642, r29643, r29644, r29645, r29646, r29647, r29648, r29649, r29650, r29651, r29652, r29653, r29654, r29655, r29656, r29657, r29658, r29659, r29660, r29661, r29662;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29640);
        mpfr_init(r29641);
        mpfr_init(r29642);
        mpfr_init(r29643);
        mpfr_init(r29644);
        mpfr_init(r29645);
        mpfr_init(r29646);
        mpfr_init(r29647);
        mpfr_init(r29648);
        mpfr_init(r29649);
        mpfr_init(r29650);
        mpfr_init(r29651);
        mpfr_init(r29652);
        mpfr_init(r29653);
        mpfr_init(r29654);
        mpfr_init(r29655);
        mpfr_init(r29656);
        mpfr_init(r29657);
        mpfr_init(r29658);
        mpfr_init(r29659);
        mpfr_init(r29660);
        mpfr_init(r29661);
        mpfr_init(r29662);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29640, x, MPFR_RNDN);
        mpfr_set_d(r29641, y, MPFR_RNDN);
        mpfr_set_d(r29642, z, MPFR_RNDN);
        mpfr_mul(r29643, r29641, r29642, MPFR_RNDN);
        mpfr_set_d(r29644, t, MPFR_RNDN);
        mpfr_set_d(r29645, a, MPFR_RNDN);
        mpfr_mul(r29646, r29644, r29645, MPFR_RNDN);
        mpfr_sub(r29647, r29643, r29646, MPFR_RNDN);
        mpfr_mul(r29648, r29640, r29647, MPFR_RNDN);
        mpfr_set_d(r29649, b, MPFR_RNDN);
        mpfr_set_d(r29650, c, MPFR_RNDN);
        mpfr_mul(r29651, r29650, r29642, MPFR_RNDN);
        mpfr_set_d(r29652, i, MPFR_RNDN);
        mpfr_mul(r29653, r29652, r29645, MPFR_RNDN);
        mpfr_sub(r29654, r29651, r29653, MPFR_RNDN);
        mpfr_mul(r29655, r29649, r29654, MPFR_RNDN);
        mpfr_sub(r29656, r29648, r29655, MPFR_RNDN);
        mpfr_set_d(r29657, j, MPFR_RNDN);
        mpfr_mul(r29658, r29650, r29644, MPFR_RNDN);
        mpfr_mul(r29659, r29652, r29641, MPFR_RNDN);
        mpfr_sub(r29660, r29658, r29659, MPFR_RNDN);
        mpfr_mul(r29661, r29657, r29660, MPFR_RNDN);
        mpfr_add(r29662, r29656, r29661, MPFR_RNDN);
        return mpfr_get_d(r29662, MPFR_RNDN);
}

static mpfr_t r29663, r29664, r29665, r29666, r29667, r29668, r29669, r29670, r29671, r29672, r29673, r29674, r29675, r29676, r29677, r29678, r29679, r29680, r29681, r29682, r29683, r29684, r29685, r29686, r29687, r29688, r29689, r29690, r29691, r29692, r29693, r29694, r29695, r29696, r29697, r29698, r29699, r29700, r29701, r29702, r29703, r29704, r29705, r29706;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29663);
        mpfr_init_set_str(r29664, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        mpfr_init(r29665);
        mpfr_init(r29666);
        mpfr_init(r29667);
        mpfr_init(r29668);
        mpfr_init(r29669);
        mpfr_init(r29670);
        mpfr_init(r29671);
        mpfr_init(r29672);
        mpfr_init(r29673);
        mpfr_init(r29674);
        mpfr_init(r29675);
        mpfr_init(r29676);
        mpfr_init(r29677);
        mpfr_init(r29678);
        mpfr_init(r29679);
        mpfr_init(r29680);
        mpfr_init(r29681);
        mpfr_init(r29682);
        mpfr_init(r29683);
        mpfr_init(r29684);
        mpfr_init(r29685);
        mpfr_init(r29686);
        mpfr_init(r29687);
        mpfr_init(r29688);
        mpfr_init(r29689);
        mpfr_init(r29690);
        mpfr_init_set_str(r29691, "4.863955640625947e+121", 10, MPFR_RNDN);
        mpfr_init(r29692);
        mpfr_init(r29693);
        mpfr_init(r29694);
        mpfr_init(r29695);
        mpfr_init(r29696);
        mpfr_init(r29697);
        mpfr_init(r29698);
        mpfr_init(r29699);
        mpfr_init(r29700);
        mpfr_init(r29701);
        mpfr_init(r29702);
        mpfr_init(r29703);
        mpfr_init(r29704);
        mpfr_init(r29705);
        mpfr_init(r29706);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29663, x, MPFR_RNDN);
        ;
        mpfr_set_si(r29665, mpfr_cmp(r29663, r29664) <= 0, MPFR_RNDN);
        mpfr_set_d(r29666, y, MPFR_RNDN);
        mpfr_set_d(r29667, z, MPFR_RNDN);
        mpfr_mul(r29668, r29666, r29667, MPFR_RNDN);
        mpfr_set_d(r29669, t, MPFR_RNDN);
        mpfr_set_d(r29670, a, MPFR_RNDN);
        mpfr_mul(r29671, r29669, r29670, MPFR_RNDN);
        mpfr_sub(r29672, r29668, r29671, MPFR_RNDN);
        mpfr_mul(r29673, r29663, r29672, MPFR_RNDN);
        mpfr_set_d(r29674, b, MPFR_RNDN);
        mpfr_set_d(r29675, c, MPFR_RNDN);
        mpfr_mul(r29676, r29675, r29667, MPFR_RNDN);
        mpfr_set_d(r29677, i, MPFR_RNDN);
        mpfr_mul(r29678, r29677, r29670, MPFR_RNDN);
        mpfr_sub(r29679, r29676, r29678, MPFR_RNDN);
        mpfr_cbrt(r29680, r29679, MPFR_RNDN);
        mpfr_mul(r29681, r29680, r29680, MPFR_RNDN);
        mpfr_mul(r29682, r29674, r29681, MPFR_RNDN);
        mpfr_mul(r29683, r29682, r29680, MPFR_RNDN);
        mpfr_sub(r29684, r29673, r29683, MPFR_RNDN);
        mpfr_set_d(r29685, j, MPFR_RNDN);
        mpfr_mul(r29686, r29675, r29669, MPFR_RNDN);
        mpfr_mul(r29687, r29677, r29666, MPFR_RNDN);
        mpfr_sub(r29688, r29686, r29687, MPFR_RNDN);
        mpfr_mul(r29689, r29685, r29688, MPFR_RNDN);
        mpfr_add(r29690, r29684, r29689, MPFR_RNDN);
        ;
        mpfr_set_si(r29692, mpfr_cmp(r29663, r29691) <= 0, MPFR_RNDN);
        mpfr_mul(r29693, r29663, r29667, MPFR_RNDN);
        mpfr_mul(r29694, r29693, r29666, MPFR_RNDN);
        mpfr_mul(r29695, r29669, r29663, MPFR_RNDN);
        mpfr_neg(r29696, r29670, MPFR_RNDN);
        mpfr_mul(r29697, r29695, r29696, MPFR_RNDN);
        mpfr_add(r29698, r29694, r29697, MPFR_RNDN);
        mpfr_mul(r29699, r29679, r29674, MPFR_RNDN);
        mpfr_mul(r29700, r29666, r29677, MPFR_RNDN);
        mpfr_sub(r29701, r29686, r29700, MPFR_RNDN);
        mpfr_mul(r29702, r29685, r29701, MPFR_RNDN);
        mpfr_sub(r29703, r29699, r29702, MPFR_RNDN);
        mpfr_sub(r29704, r29698, r29703, MPFR_RNDN);
        if (mpfr_get_si(r29692, MPFR_RNDN)) { mpfr_set(r29705, r29704, MPFR_RNDN); } else { mpfr_set(r29705, r29690, MPFR_RNDN); };
        if (mpfr_get_si(r29665, MPFR_RNDN)) { mpfr_set(r29706, r29690, MPFR_RNDN); } else { mpfr_set(r29706, r29705, MPFR_RNDN); };
        return mpfr_get_d(r29706, MPFR_RNDN);
}

static mpfr_t r29707, r29708, r29709, r29710, r29711, r29712, r29713, r29714, r29715, r29716, r29717, r29718, r29719, r29720, r29721, r29722, r29723, r29724, r29725, r29726, r29727, r29728, r29729, r29730, r29731, r29732, r29733, r29734, r29735, r29736, r29737, r29738, r29739, r29740, r29741, r29742, r29743, r29744, r29745, r29746, r29747, r29748, r29749, r29750;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29707);
        mpfr_init_set_str(r29708, "-3.1186130314637846e+124", 10, MPFR_RNDN);
        mpfr_init(r29709);
        mpfr_init(r29710);
        mpfr_init(r29711);
        mpfr_init(r29712);
        mpfr_init(r29713);
        mpfr_init(r29714);
        mpfr_init(r29715);
        mpfr_init(r29716);
        mpfr_init(r29717);
        mpfr_init(r29718);
        mpfr_init(r29719);
        mpfr_init(r29720);
        mpfr_init(r29721);
        mpfr_init(r29722);
        mpfr_init(r29723);
        mpfr_init(r29724);
        mpfr_init(r29725);
        mpfr_init(r29726);
        mpfr_init(r29727);
        mpfr_init(r29728);
        mpfr_init(r29729);
        mpfr_init(r29730);
        mpfr_init(r29731);
        mpfr_init(r29732);
        mpfr_init(r29733);
        mpfr_init(r29734);
        mpfr_init_set_str(r29735, "4.863955640625947e+121", 10, MPFR_RNDN);
        mpfr_init(r29736);
        mpfr_init(r29737);
        mpfr_init(r29738);
        mpfr_init(r29739);
        mpfr_init(r29740);
        mpfr_init(r29741);
        mpfr_init(r29742);
        mpfr_init(r29743);
        mpfr_init(r29744);
        mpfr_init(r29745);
        mpfr_init(r29746);
        mpfr_init(r29747);
        mpfr_init(r29748);
        mpfr_init(r29749);
        mpfr_init(r29750);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r29707, x, MPFR_RNDN);
        ;
        mpfr_set_si(r29709, mpfr_cmp(r29707, r29708) <= 0, MPFR_RNDN);
        mpfr_set_d(r29710, y, MPFR_RNDN);
        mpfr_set_d(r29711, z, MPFR_RNDN);
        mpfr_mul(r29712, r29710, r29711, MPFR_RNDN);
        mpfr_set_d(r29713, t, MPFR_RNDN);
        mpfr_set_d(r29714, a, MPFR_RNDN);
        mpfr_mul(r29715, r29713, r29714, MPFR_RNDN);
        mpfr_sub(r29716, r29712, r29715, MPFR_RNDN);
        mpfr_mul(r29717, r29707, r29716, MPFR_RNDN);
        mpfr_set_d(r29718, b, MPFR_RNDN);
        mpfr_set_d(r29719, c, MPFR_RNDN);
        mpfr_mul(r29720, r29719, r29711, MPFR_RNDN);
        mpfr_set_d(r29721, i, MPFR_RNDN);
        mpfr_mul(r29722, r29721, r29714, MPFR_RNDN);
        mpfr_sub(r29723, r29720, r29722, MPFR_RNDN);
        mpfr_cbrt(r29724, r29723, MPFR_RNDN);
        mpfr_mul(r29725, r29724, r29724, MPFR_RNDN);
        mpfr_mul(r29726, r29718, r29725, MPFR_RNDN);
        mpfr_mul(r29727, r29726, r29724, MPFR_RNDN);
        mpfr_sub(r29728, r29717, r29727, MPFR_RNDN);
        mpfr_set_d(r29729, j, MPFR_RNDN);
        mpfr_mul(r29730, r29719, r29713, MPFR_RNDN);
        mpfr_mul(r29731, r29721, r29710, MPFR_RNDN);
        mpfr_sub(r29732, r29730, r29731, MPFR_RNDN);
        mpfr_mul(r29733, r29729, r29732, MPFR_RNDN);
        mpfr_add(r29734, r29728, r29733, MPFR_RNDN);
        ;
        mpfr_set_si(r29736, mpfr_cmp(r29707, r29735) <= 0, MPFR_RNDN);
        mpfr_mul(r29737, r29707, r29711, MPFR_RNDN);
        mpfr_mul(r29738, r29737, r29710, MPFR_RNDN);
        mpfr_mul(r29739, r29713, r29707, MPFR_RNDN);
        mpfr_neg(r29740, r29714, MPFR_RNDN);
        mpfr_mul(r29741, r29739, r29740, MPFR_RNDN);
        mpfr_add(r29742, r29738, r29741, MPFR_RNDN);
        mpfr_mul(r29743, r29723, r29718, MPFR_RNDN);
        mpfr_mul(r29744, r29710, r29721, MPFR_RNDN);
        mpfr_sub(r29745, r29730, r29744, MPFR_RNDN);
        mpfr_mul(r29746, r29729, r29745, MPFR_RNDN);
        mpfr_sub(r29747, r29743, r29746, MPFR_RNDN);
        mpfr_sub(r29748, r29742, r29747, MPFR_RNDN);
        if (mpfr_get_si(r29736, MPFR_RNDN)) { mpfr_set(r29749, r29748, MPFR_RNDN); } else { mpfr_set(r29749, r29734, MPFR_RNDN); };
        if (mpfr_get_si(r29709, MPFR_RNDN)) { mpfr_set(r29750, r29734, MPFR_RNDN); } else { mpfr_set(r29750, r29749, MPFR_RNDN); };
        return mpfr_get_d(r29750, MPFR_RNDN);
}

