#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 r9938 = x;
        float r9939 = y;
        float r9940 = z;
        float r9941 = r9939 * r9940;
        float r9942 = t;
        float r9943 = a;
        float r9944 = r9942 * r9943;
        float r9945 = r9941 - r9944;
        float r9946 = r9938 * r9945;
        float r9947 = b;
        float r9948 = c;
        float r9949 = r9948 * r9940;
        float r9950 = i;
        float r9951 = r9950 * r9943;
        float r9952 = r9949 - r9951;
        float r9953 = r9947 * r9952;
        float r9954 = r9946 - r9953;
        float r9955 = j;
        float r9956 = r9948 * r9942;
        float r9957 = r9950 * r9939;
        float r9958 = r9956 - r9957;
        float r9959 = r9955 * r9958;
        float r9960 = r9954 + r9959;
        return r9960;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r9961 = x;
        double r9962 = y;
        double r9963 = z;
        double r9964 = r9962 * r9963;
        double r9965 = t;
        double r9966 = a;
        double r9967 = r9965 * r9966;
        double r9968 = r9964 - r9967;
        double r9969 = r9961 * r9968;
        double r9970 = b;
        double r9971 = c;
        double r9972 = r9971 * r9963;
        double r9973 = i;
        double r9974 = r9973 * r9966;
        double r9975 = r9972 - r9974;
        double r9976 = r9970 * r9975;
        double r9977 = r9969 - r9976;
        double r9978 = j;
        double r9979 = r9971 * r9965;
        double r9980 = r9973 * r9962;
        double r9981 = r9979 - r9980;
        double r9982 = r9978 * r9981;
        double r9983 = r9977 + r9982;
        return r9983;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r9984 = z;
        float r9985 = y;
        float r9986 = r9984 * r9985;
        float r9987 = t;
        float r9988 = a;
        float r9989 = r9987 * r9988;
        float r9990 = r9986 - r9989;
        float r9991 = x;
        float r9992 = j;
        float r9993 = c;
        float r9994 = r9993 * r9987;
        float r9995 = i;
        float r9996 = r9995 * r9985;
        float r9997 = r9994 - r9996;
        float r9998 = r9992 * r9997;
        float r9999 = fma(r9990, r9991, r9998);
        float r10000 = -1.7815539211073733e+308f;
        bool r10001 = r9999 <= r10000;
        float r10002 = b;
        float r10003 = r9988 * r9995;
        float r10004 = r9984 * r9993;
        float r10005 = r10003 - r10004;
        float r10006 = -r9985;
        float r10007 = r9995 * r9992;
        float r10008 = r10006 * r10007;
        float r10009 = fma(r10002, r10005, r10008);
        float r10010 = cbrt(r9997);
        float r10011 = r10010 * r9992;
        float r10012 = r10010 * r10010;
        float r10013 = r10011 * r10012;
        float r10014 = r10004 - r10003;
        float r10015 = r10002 * r10014;
        float r10016 = r10013 - r10015;
        float r10017 = fma(r9990, r9991, r10016);
        float r10018 = r10001 ? r10009 : r10017;
        return r10018;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r10019 = z;
        double r10020 = y;
        double r10021 = r10019 * r10020;
        double r10022 = t;
        double r10023 = a;
        double r10024 = r10022 * r10023;
        double r10025 = r10021 - r10024;
        double r10026 = x;
        double r10027 = j;
        double r10028 = c;
        double r10029 = r10028 * r10022;
        double r10030 = i;
        double r10031 = r10030 * r10020;
        double r10032 = r10029 - r10031;
        double r10033 = r10027 * r10032;
        double r10034 = fma(r10025, r10026, r10033);
        double r10035 = -1.7815539211073733e+308;
        bool r10036 = r10034 <= r10035;
        double r10037 = b;
        double r10038 = r10023 * r10030;
        double r10039 = r10019 * r10028;
        double r10040 = r10038 - r10039;
        double r10041 = -r10020;
        double r10042 = r10030 * r10027;
        double r10043 = r10041 * r10042;
        double r10044 = fma(r10037, r10040, r10043);
        double r10045 = cbrt(r10032);
        double r10046 = r10045 * r10027;
        double r10047 = r10045 * r10045;
        double r10048 = r10046 * r10047;
        double r10049 = r10039 - r10038;
        double r10050 = r10037 * r10049;
        double r10051 = r10048 - r10050;
        double r10052 = fma(r10025, r10026, r10051);
        double r10053 = r10036 ? r10044 : r10052;
        return r10053;
}

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 r10054, r10055, r10056, r10057, r10058, r10059, r10060, r10061, r10062, r10063, r10064, r10065, r10066, r10067, r10068, r10069, r10070, r10071, r10072, r10073, r10074, r10075, r10076;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r10054);
        mpfr_init(r10055);
        mpfr_init(r10056);
        mpfr_init(r10057);
        mpfr_init(r10058);
        mpfr_init(r10059);
        mpfr_init(r10060);
        mpfr_init(r10061);
        mpfr_init(r10062);
        mpfr_init(r10063);
        mpfr_init(r10064);
        mpfr_init(r10065);
        mpfr_init(r10066);
        mpfr_init(r10067);
        mpfr_init(r10068);
        mpfr_init(r10069);
        mpfr_init(r10070);
        mpfr_init(r10071);
        mpfr_init(r10072);
        mpfr_init(r10073);
        mpfr_init(r10074);
        mpfr_init(r10075);
        mpfr_init(r10076);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10054, x, MPFR_RNDN);
        mpfr_set_d(r10055, y, MPFR_RNDN);
        mpfr_set_d(r10056, z, MPFR_RNDN);
        mpfr_mul(r10057, r10055, r10056, MPFR_RNDN);
        mpfr_set_d(r10058, t, MPFR_RNDN);
        mpfr_set_d(r10059, a, MPFR_RNDN);
        mpfr_mul(r10060, r10058, r10059, MPFR_RNDN);
        mpfr_sub(r10061, r10057, r10060, MPFR_RNDN);
        mpfr_mul(r10062, r10054, r10061, MPFR_RNDN);
        mpfr_set_d(r10063, b, MPFR_RNDN);
        mpfr_set_d(r10064, c, MPFR_RNDN);
        mpfr_mul(r10065, r10064, r10056, MPFR_RNDN);
        mpfr_set_d(r10066, i, MPFR_RNDN);
        mpfr_mul(r10067, r10066, r10059, MPFR_RNDN);
        mpfr_sub(r10068, r10065, r10067, MPFR_RNDN);
        mpfr_mul(r10069, r10063, r10068, MPFR_RNDN);
        mpfr_sub(r10070, r10062, r10069, MPFR_RNDN);
        mpfr_set_d(r10071, j, MPFR_RNDN);
        mpfr_mul(r10072, r10064, r10058, MPFR_RNDN);
        mpfr_mul(r10073, r10066, r10055, MPFR_RNDN);
        mpfr_sub(r10074, r10072, r10073, MPFR_RNDN);
        mpfr_mul(r10075, r10071, r10074, MPFR_RNDN);
        mpfr_add(r10076, r10070, r10075, MPFR_RNDN);
        return mpfr_get_d(r10076, MPFR_RNDN);
}

static mpfr_t r10077, r10078, r10079, r10080, r10081, r10082, r10083, r10084, r10085, r10086, r10087, r10088, r10089, r10090, r10091, r10092, r10093, r10094, r10095, r10096, r10097, r10098, r10099, r10100, r10101, r10102, r10103, r10104, r10105, r10106, r10107, r10108, r10109, r10110, r10111;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10077);
        mpfr_init(r10078);
        mpfr_init(r10079);
        mpfr_init(r10080);
        mpfr_init(r10081);
        mpfr_init(r10082);
        mpfr_init(r10083);
        mpfr_init(r10084);
        mpfr_init(r10085);
        mpfr_init(r10086);
        mpfr_init(r10087);
        mpfr_init(r10088);
        mpfr_init(r10089);
        mpfr_init(r10090);
        mpfr_init(r10091);
        mpfr_init(r10092);
        mpfr_init_set_str(r10093, "-1.7815539211073733e+308", 10, MPFR_RNDN);
        mpfr_init(r10094);
        mpfr_init(r10095);
        mpfr_init(r10096);
        mpfr_init(r10097);
        mpfr_init(r10098);
        mpfr_init(r10099);
        mpfr_init(r10100);
        mpfr_init(r10101);
        mpfr_init(r10102);
        mpfr_init(r10103);
        mpfr_init(r10104);
        mpfr_init(r10105);
        mpfr_init(r10106);
        mpfr_init(r10107);
        mpfr_init(r10108);
        mpfr_init(r10109);
        mpfr_init(r10110);
        mpfr_init(r10111);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10077, z, MPFR_RNDN);
        mpfr_set_d(r10078, y, MPFR_RNDN);
        mpfr_mul(r10079, r10077, r10078, MPFR_RNDN);
        mpfr_set_d(r10080, t, MPFR_RNDN);
        mpfr_set_d(r10081, a, MPFR_RNDN);
        mpfr_mul(r10082, r10080, r10081, MPFR_RNDN);
        mpfr_sub(r10083, r10079, r10082, MPFR_RNDN);
        mpfr_set_d(r10084, x, MPFR_RNDN);
        mpfr_set_d(r10085, j, MPFR_RNDN);
        mpfr_set_d(r10086, c, MPFR_RNDN);
        mpfr_mul(r10087, r10086, r10080, MPFR_RNDN);
        mpfr_set_d(r10088, i, MPFR_RNDN);
        mpfr_mul(r10089, r10088, r10078, MPFR_RNDN);
        mpfr_sub(r10090, r10087, r10089, MPFR_RNDN);
        mpfr_mul(r10091, r10085, r10090, MPFR_RNDN);
        mpfr_fma(r10092, r10083, r10084, r10091, MPFR_RNDN);
        ;
        mpfr_set_si(r10094, mpfr_cmp(r10092, r10093) <= 0, MPFR_RNDN);
        mpfr_set_d(r10095, b, MPFR_RNDN);
        mpfr_mul(r10096, r10081, r10088, MPFR_RNDN);
        mpfr_mul(r10097, r10077, r10086, MPFR_RNDN);
        mpfr_sub(r10098, r10096, r10097, MPFR_RNDN);
        mpfr_neg(r10099, r10078, MPFR_RNDN);
        mpfr_mul(r10100, r10088, r10085, MPFR_RNDN);
        mpfr_mul(r10101, r10099, r10100, MPFR_RNDN);
        mpfr_fma(r10102, r10095, r10098, r10101, MPFR_RNDN);
        mpfr_cbrt(r10103, r10090, MPFR_RNDN);
        mpfr_mul(r10104, r10103, r10085, MPFR_RNDN);
        mpfr_mul(r10105, r10103, r10103, MPFR_RNDN);
        mpfr_mul(r10106, r10104, r10105, MPFR_RNDN);
        mpfr_sub(r10107, r10097, r10096, MPFR_RNDN);
        mpfr_mul(r10108, r10095, r10107, MPFR_RNDN);
        mpfr_sub(r10109, r10106, r10108, MPFR_RNDN);
        mpfr_fma(r10110, r10083, r10084, r10109, MPFR_RNDN);
        if (mpfr_get_si(r10094, MPFR_RNDN)) { mpfr_set(r10111, r10102, MPFR_RNDN); } else { mpfr_set(r10111, r10110, MPFR_RNDN); };
        return mpfr_get_d(r10111, MPFR_RNDN);
}

static mpfr_t r10112, r10113, r10114, r10115, r10116, r10117, r10118, r10119, r10120, r10121, r10122, r10123, r10124, r10125, r10126, r10127, r10128, r10129, r10130, r10131, r10132, r10133, r10134, r10135, r10136, r10137, r10138, r10139, r10140, r10141, r10142, r10143, r10144, r10145, r10146;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10112);
        mpfr_init(r10113);
        mpfr_init(r10114);
        mpfr_init(r10115);
        mpfr_init(r10116);
        mpfr_init(r10117);
        mpfr_init(r10118);
        mpfr_init(r10119);
        mpfr_init(r10120);
        mpfr_init(r10121);
        mpfr_init(r10122);
        mpfr_init(r10123);
        mpfr_init(r10124);
        mpfr_init(r10125);
        mpfr_init(r10126);
        mpfr_init(r10127);
        mpfr_init_set_str(r10128, "-1.7815539211073733e+308", 10, MPFR_RNDN);
        mpfr_init(r10129);
        mpfr_init(r10130);
        mpfr_init(r10131);
        mpfr_init(r10132);
        mpfr_init(r10133);
        mpfr_init(r10134);
        mpfr_init(r10135);
        mpfr_init(r10136);
        mpfr_init(r10137);
        mpfr_init(r10138);
        mpfr_init(r10139);
        mpfr_init(r10140);
        mpfr_init(r10141);
        mpfr_init(r10142);
        mpfr_init(r10143);
        mpfr_init(r10144);
        mpfr_init(r10145);
        mpfr_init(r10146);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r10112, z, MPFR_RNDN);
        mpfr_set_d(r10113, y, MPFR_RNDN);
        mpfr_mul(r10114, r10112, r10113, MPFR_RNDN);
        mpfr_set_d(r10115, t, MPFR_RNDN);
        mpfr_set_d(r10116, a, MPFR_RNDN);
        mpfr_mul(r10117, r10115, r10116, MPFR_RNDN);
        mpfr_sub(r10118, r10114, r10117, MPFR_RNDN);
        mpfr_set_d(r10119, x, MPFR_RNDN);
        mpfr_set_d(r10120, j, MPFR_RNDN);
        mpfr_set_d(r10121, c, MPFR_RNDN);
        mpfr_mul(r10122, r10121, r10115, MPFR_RNDN);
        mpfr_set_d(r10123, i, MPFR_RNDN);
        mpfr_mul(r10124, r10123, r10113, MPFR_RNDN);
        mpfr_sub(r10125, r10122, r10124, MPFR_RNDN);
        mpfr_mul(r10126, r10120, r10125, MPFR_RNDN);
        mpfr_fma(r10127, r10118, r10119, r10126, MPFR_RNDN);
        ;
        mpfr_set_si(r10129, mpfr_cmp(r10127, r10128) <= 0, MPFR_RNDN);
        mpfr_set_d(r10130, b, MPFR_RNDN);
        mpfr_mul(r10131, r10116, r10123, MPFR_RNDN);
        mpfr_mul(r10132, r10112, r10121, MPFR_RNDN);
        mpfr_sub(r10133, r10131, r10132, MPFR_RNDN);
        mpfr_neg(r10134, r10113, MPFR_RNDN);
        mpfr_mul(r10135, r10123, r10120, MPFR_RNDN);
        mpfr_mul(r10136, r10134, r10135, MPFR_RNDN);
        mpfr_fma(r10137, r10130, r10133, r10136, MPFR_RNDN);
        mpfr_cbrt(r10138, r10125, MPFR_RNDN);
        mpfr_mul(r10139, r10138, r10120, MPFR_RNDN);
        mpfr_mul(r10140, r10138, r10138, MPFR_RNDN);
        mpfr_mul(r10141, r10139, r10140, MPFR_RNDN);
        mpfr_sub(r10142, r10132, r10131, MPFR_RNDN);
        mpfr_mul(r10143, r10130, r10142, MPFR_RNDN);
        mpfr_sub(r10144, r10141, r10143, MPFR_RNDN);
        mpfr_fma(r10145, r10118, r10119, r10144, MPFR_RNDN);
        if (mpfr_get_si(r10129, MPFR_RNDN)) { mpfr_set(r10146, r10137, MPFR_RNDN); } else { mpfr_set(r10146, r10145, MPFR_RNDN); };
        return mpfr_get_d(r10146, MPFR_RNDN);
}

