#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 r6099 = x;
        float r6100 = y;
        float r6101 = z;
        float r6102 = r6100 * r6101;
        float r6103 = t;
        float r6104 = a;
        float r6105 = r6103 * r6104;
        float r6106 = r6102 - r6105;
        float r6107 = r6099 * r6106;
        float r6108 = b;
        float r6109 = c;
        float r6110 = r6109 * r6101;
        float r6111 = i;
        float r6112 = r6111 * r6104;
        float r6113 = r6110 - r6112;
        float r6114 = r6108 * r6113;
        float r6115 = r6107 - r6114;
        float r6116 = j;
        float r6117 = r6109 * r6103;
        float r6118 = r6111 * r6100;
        float r6119 = r6117 - r6118;
        float r6120 = r6116 * r6119;
        float r6121 = r6115 + r6120;
        return r6121;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r6122 = x;
        double r6123 = y;
        double r6124 = z;
        double r6125 = r6123 * r6124;
        double r6126 = t;
        double r6127 = a;
        double r6128 = r6126 * r6127;
        double r6129 = r6125 - r6128;
        double r6130 = r6122 * r6129;
        double r6131 = b;
        double r6132 = c;
        double r6133 = r6132 * r6124;
        double r6134 = i;
        double r6135 = r6134 * r6127;
        double r6136 = r6133 - r6135;
        double r6137 = r6131 * r6136;
        double r6138 = r6130 - r6137;
        double r6139 = j;
        double r6140 = r6132 * r6126;
        double r6141 = r6134 * r6123;
        double r6142 = r6140 - r6141;
        double r6143 = r6139 * r6142;
        double r6144 = r6138 + r6143;
        return r6144;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r6145 = x;
        float r6146 = y;
        float r6147 = z;
        float r6148 = r6146 * r6147;
        float r6149 = t;
        float r6150 = a;
        float r6151 = r6149 * r6150;
        float r6152 = r6148 - r6151;
        float r6153 = r6145 * r6152;
        float r6154 = i;
        float r6155 = b;
        float r6156 = r6150 * r6155;
        float r6157 = j;
        float r6158 = r6146 * r6157;
        float r6159 = r6156 - r6158;
        float r6160 = r6154 * r6159;
        float r6161 = c;
        float r6162 = r6155 * r6147;
        float r6163 = r6149 * r6157;
        float r6164 = r6162 - r6163;
        float r6165 = r6161 * r6164;
        float r6166 = r6160 - r6165;
        float r6167 = r6153 + r6166;
        float r6168 = -inf.0;
        bool r6169 = r6167 <= r6168;
        float r6170 = r6145 * r6148;
        float r6171 = r6161 * r6149;
        float r6172 = r6146 * r6154;
        float r6173 = r6171 - r6172;
        float r6174 = r6157 * r6173;
        float r6175 = r6161 * r6147;
        float r6176 = r6150 * r6154;
        float r6177 = r6175 - r6176;
        float r6178 = r6155 * r6177;
        float r6179 = r6174 - r6178;
        float r6180 = r6145 * r6150;
        float r6181 = r6149 * r6180;
        float r6182 = r6179 - r6181;
        float r6183 = r6170 + r6182;
        float r6184 = 3.283892496082979e+297;
        bool r6185 = r6167 <= r6184;
        float r6186 = r6185 ? r6167 : r6183;
        float r6187 = r6169 ? r6183 : r6186;
        return r6187;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r6188 = x;
        double r6189 = y;
        double r6190 = z;
        double r6191 = r6189 * r6190;
        double r6192 = t;
        double r6193 = a;
        double r6194 = r6192 * r6193;
        double r6195 = r6191 - r6194;
        double r6196 = r6188 * r6195;
        double r6197 = i;
        double r6198 = b;
        double r6199 = r6193 * r6198;
        double r6200 = j;
        double r6201 = r6189 * r6200;
        double r6202 = r6199 - r6201;
        double r6203 = r6197 * r6202;
        double r6204 = c;
        double r6205 = r6198 * r6190;
        double r6206 = r6192 * r6200;
        double r6207 = r6205 - r6206;
        double r6208 = r6204 * r6207;
        double r6209 = r6203 - r6208;
        double r6210 = r6196 + r6209;
        double r6211 = -inf.0;
        bool r6212 = r6210 <= r6211;
        double r6213 = r6188 * r6191;
        double r6214 = r6204 * r6192;
        double r6215 = r6189 * r6197;
        double r6216 = r6214 - r6215;
        double r6217 = r6200 * r6216;
        double r6218 = r6204 * r6190;
        double r6219 = r6193 * r6197;
        double r6220 = r6218 - r6219;
        double r6221 = r6198 * r6220;
        double r6222 = r6217 - r6221;
        double r6223 = r6188 * r6193;
        double r6224 = r6192 * r6223;
        double r6225 = r6222 - r6224;
        double r6226 = r6213 + r6225;
        double r6227 = 3.283892496082979e+297;
        bool r6228 = r6210 <= r6227;
        double r6229 = r6228 ? r6210 : r6226;
        double r6230 = r6212 ? r6226 : r6229;
        return r6230;
}

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 r6231, r6232, r6233, r6234, r6235, r6236, r6237, r6238, r6239, r6240, r6241, r6242, r6243, r6244, r6245, r6246, r6247, r6248, r6249, r6250, r6251, r6252, r6253;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r6231);
        mpfr_init(r6232);
        mpfr_init(r6233);
        mpfr_init(r6234);
        mpfr_init(r6235);
        mpfr_init(r6236);
        mpfr_init(r6237);
        mpfr_init(r6238);
        mpfr_init(r6239);
        mpfr_init(r6240);
        mpfr_init(r6241);
        mpfr_init(r6242);
        mpfr_init(r6243);
        mpfr_init(r6244);
        mpfr_init(r6245);
        mpfr_init(r6246);
        mpfr_init(r6247);
        mpfr_init(r6248);
        mpfr_init(r6249);
        mpfr_init(r6250);
        mpfr_init(r6251);
        mpfr_init(r6252);
        mpfr_init(r6253);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r6231, x, MPFR_RNDN);
        mpfr_set_d(r6232, y, MPFR_RNDN);
        mpfr_set_d(r6233, z, MPFR_RNDN);
        mpfr_mul(r6234, r6232, r6233, MPFR_RNDN);
        mpfr_set_d(r6235, t, MPFR_RNDN);
        mpfr_set_d(r6236, a, MPFR_RNDN);
        mpfr_mul(r6237, r6235, r6236, MPFR_RNDN);
        mpfr_sub(r6238, r6234, r6237, MPFR_RNDN);
        mpfr_mul(r6239, r6231, r6238, MPFR_RNDN);
        mpfr_set_d(r6240, b, MPFR_RNDN);
        mpfr_set_d(r6241, c, MPFR_RNDN);
        mpfr_mul(r6242, r6241, r6233, MPFR_RNDN);
        mpfr_set_d(r6243, i, MPFR_RNDN);
        mpfr_mul(r6244, r6243, r6236, MPFR_RNDN);
        mpfr_sub(r6245, r6242, r6244, MPFR_RNDN);
        mpfr_mul(r6246, r6240, r6245, MPFR_RNDN);
        mpfr_sub(r6247, r6239, r6246, MPFR_RNDN);
        mpfr_set_d(r6248, j, MPFR_RNDN);
        mpfr_mul(r6249, r6241, r6235, MPFR_RNDN);
        mpfr_mul(r6250, r6243, r6232, MPFR_RNDN);
        mpfr_sub(r6251, r6249, r6250, MPFR_RNDN);
        mpfr_mul(r6252, r6248, r6251, MPFR_RNDN);
        mpfr_add(r6253, r6247, r6252, MPFR_RNDN);
        return mpfr_get_d(r6253, MPFR_RNDN);
}

static mpfr_t r6254, r6255, r6256, r6257, r6258, r6259, r6260, r6261, r6262, r6263, r6264, r6265, r6266, r6267, r6268, r6269, r6270, r6271, r6272, r6273, r6274, r6275, r6276, r6277, r6278, r6279, r6280, r6281, r6282, r6283, r6284, r6285, r6286, r6287, r6288, r6289, r6290, r6291, r6292, r6293, r6294, r6295, r6296;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r6254);
        mpfr_init(r6255);
        mpfr_init(r6256);
        mpfr_init(r6257);
        mpfr_init(r6258);
        mpfr_init(r6259);
        mpfr_init(r6260);
        mpfr_init(r6261);
        mpfr_init(r6262);
        mpfr_init(r6263);
        mpfr_init(r6264);
        mpfr_init(r6265);
        mpfr_init(r6266);
        mpfr_init(r6267);
        mpfr_init(r6268);
        mpfr_init(r6269);
        mpfr_init(r6270);
        mpfr_init(r6271);
        mpfr_init(r6272);
        mpfr_init(r6273);
        mpfr_init(r6274);
        mpfr_init(r6275);
        mpfr_init(r6276);
        mpfr_init_set_str(r6277, "-inf.0", 10, MPFR_RNDN);
        mpfr_init(r6278);
        mpfr_init(r6279);
        mpfr_init(r6280);
        mpfr_init(r6281);
        mpfr_init(r6282);
        mpfr_init(r6283);
        mpfr_init(r6284);
        mpfr_init(r6285);
        mpfr_init(r6286);
        mpfr_init(r6287);
        mpfr_init(r6288);
        mpfr_init(r6289);
        mpfr_init(r6290);
        mpfr_init(r6291);
        mpfr_init(r6292);
        mpfr_init_set_str(r6293, "3.283892496082979e+297", 10, MPFR_RNDN);
        mpfr_init(r6294);
        mpfr_init(r6295);
        mpfr_init(r6296);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r6254, x, MPFR_RNDN);
        mpfr_set_d(r6255, y, MPFR_RNDN);
        mpfr_set_d(r6256, z, MPFR_RNDN);
        mpfr_mul(r6257, r6255, r6256, MPFR_RNDN);
        mpfr_set_d(r6258, t, MPFR_RNDN);
        mpfr_set_d(r6259, a, MPFR_RNDN);
        mpfr_mul(r6260, r6258, r6259, MPFR_RNDN);
        mpfr_sub(r6261, r6257, r6260, MPFR_RNDN);
        mpfr_mul(r6262, r6254, r6261, MPFR_RNDN);
        mpfr_set_d(r6263, i, MPFR_RNDN);
        mpfr_set_d(r6264, b, MPFR_RNDN);
        mpfr_mul(r6265, r6259, r6264, MPFR_RNDN);
        mpfr_set_d(r6266, j, MPFR_RNDN);
        mpfr_mul(r6267, r6255, r6266, MPFR_RNDN);
        mpfr_sub(r6268, r6265, r6267, MPFR_RNDN);
        mpfr_mul(r6269, r6263, r6268, MPFR_RNDN);
        mpfr_set_d(r6270, c, MPFR_RNDN);
        mpfr_mul(r6271, r6264, r6256, MPFR_RNDN);
        mpfr_mul(r6272, r6258, r6266, MPFR_RNDN);
        mpfr_sub(r6273, r6271, r6272, MPFR_RNDN);
        mpfr_mul(r6274, r6270, r6273, MPFR_RNDN);
        mpfr_sub(r6275, r6269, r6274, MPFR_RNDN);
        mpfr_add(r6276, r6262, r6275, MPFR_RNDN);
        ;
        mpfr_set_si(r6278, mpfr_cmp(r6276, r6277) <= 0, MPFR_RNDN);
        mpfr_mul(r6279, r6254, r6257, MPFR_RNDN);
        mpfr_mul(r6280, r6270, r6258, MPFR_RNDN);
        mpfr_mul(r6281, r6255, r6263, MPFR_RNDN);
        mpfr_sub(r6282, r6280, r6281, MPFR_RNDN);
        mpfr_mul(r6283, r6266, r6282, MPFR_RNDN);
        mpfr_mul(r6284, r6270, r6256, MPFR_RNDN);
        mpfr_mul(r6285, r6259, r6263, MPFR_RNDN);
        mpfr_sub(r6286, r6284, r6285, MPFR_RNDN);
        mpfr_mul(r6287, r6264, r6286, MPFR_RNDN);
        mpfr_sub(r6288, r6283, r6287, MPFR_RNDN);
        mpfr_mul(r6289, r6254, r6259, MPFR_RNDN);
        mpfr_mul(r6290, r6258, r6289, MPFR_RNDN);
        mpfr_sub(r6291, r6288, r6290, MPFR_RNDN);
        mpfr_add(r6292, r6279, r6291, MPFR_RNDN);
        ;
        mpfr_set_si(r6294, mpfr_cmp(r6276, r6293) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r6294, MPFR_RNDN)) { mpfr_set(r6295, r6276, MPFR_RNDN); } else { mpfr_set(r6295, r6292, MPFR_RNDN); };
        if (mpfr_get_si(r6278, MPFR_RNDN)) { mpfr_set(r6296, r6292, MPFR_RNDN); } else { mpfr_set(r6296, r6295, MPFR_RNDN); };
        return mpfr_get_d(r6296, MPFR_RNDN);
}

static mpfr_t r6297, r6298, r6299, r6300, r6301, r6302, r6303, r6304, r6305, r6306, r6307, r6308, r6309, r6310, r6311, r6312, r6313, r6314, r6315, r6316, r6317, r6318, r6319, r6320, r6321, r6322, r6323, r6324, r6325, r6326, r6327, r6328, r6329, r6330, r6331, r6332, r6333, r6334, r6335, r6336, r6337, r6338, r6339;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r6297);
        mpfr_init(r6298);
        mpfr_init(r6299);
        mpfr_init(r6300);
        mpfr_init(r6301);
        mpfr_init(r6302);
        mpfr_init(r6303);
        mpfr_init(r6304);
        mpfr_init(r6305);
        mpfr_init(r6306);
        mpfr_init(r6307);
        mpfr_init(r6308);
        mpfr_init(r6309);
        mpfr_init(r6310);
        mpfr_init(r6311);
        mpfr_init(r6312);
        mpfr_init(r6313);
        mpfr_init(r6314);
        mpfr_init(r6315);
        mpfr_init(r6316);
        mpfr_init(r6317);
        mpfr_init(r6318);
        mpfr_init(r6319);
        mpfr_init_set_str(r6320, "-inf.0", 10, MPFR_RNDN);
        mpfr_init(r6321);
        mpfr_init(r6322);
        mpfr_init(r6323);
        mpfr_init(r6324);
        mpfr_init(r6325);
        mpfr_init(r6326);
        mpfr_init(r6327);
        mpfr_init(r6328);
        mpfr_init(r6329);
        mpfr_init(r6330);
        mpfr_init(r6331);
        mpfr_init(r6332);
        mpfr_init(r6333);
        mpfr_init(r6334);
        mpfr_init(r6335);
        mpfr_init_set_str(r6336, "3.283892496082979e+297", 10, MPFR_RNDN);
        mpfr_init(r6337);
        mpfr_init(r6338);
        mpfr_init(r6339);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r6297, x, MPFR_RNDN);
        mpfr_set_d(r6298, y, MPFR_RNDN);
        mpfr_set_d(r6299, z, MPFR_RNDN);
        mpfr_mul(r6300, r6298, r6299, MPFR_RNDN);
        mpfr_set_d(r6301, t, MPFR_RNDN);
        mpfr_set_d(r6302, a, MPFR_RNDN);
        mpfr_mul(r6303, r6301, r6302, MPFR_RNDN);
        mpfr_sub(r6304, r6300, r6303, MPFR_RNDN);
        mpfr_mul(r6305, r6297, r6304, MPFR_RNDN);
        mpfr_set_d(r6306, i, MPFR_RNDN);
        mpfr_set_d(r6307, b, MPFR_RNDN);
        mpfr_mul(r6308, r6302, r6307, MPFR_RNDN);
        mpfr_set_d(r6309, j, MPFR_RNDN);
        mpfr_mul(r6310, r6298, r6309, MPFR_RNDN);
        mpfr_sub(r6311, r6308, r6310, MPFR_RNDN);
        mpfr_mul(r6312, r6306, r6311, MPFR_RNDN);
        mpfr_set_d(r6313, c, MPFR_RNDN);
        mpfr_mul(r6314, r6307, r6299, MPFR_RNDN);
        mpfr_mul(r6315, r6301, r6309, MPFR_RNDN);
        mpfr_sub(r6316, r6314, r6315, MPFR_RNDN);
        mpfr_mul(r6317, r6313, r6316, MPFR_RNDN);
        mpfr_sub(r6318, r6312, r6317, MPFR_RNDN);
        mpfr_add(r6319, r6305, r6318, MPFR_RNDN);
        ;
        mpfr_set_si(r6321, mpfr_cmp(r6319, r6320) <= 0, MPFR_RNDN);
        mpfr_mul(r6322, r6297, r6300, MPFR_RNDN);
        mpfr_mul(r6323, r6313, r6301, MPFR_RNDN);
        mpfr_mul(r6324, r6298, r6306, MPFR_RNDN);
        mpfr_sub(r6325, r6323, r6324, MPFR_RNDN);
        mpfr_mul(r6326, r6309, r6325, MPFR_RNDN);
        mpfr_mul(r6327, r6313, r6299, MPFR_RNDN);
        mpfr_mul(r6328, r6302, r6306, MPFR_RNDN);
        mpfr_sub(r6329, r6327, r6328, MPFR_RNDN);
        mpfr_mul(r6330, r6307, r6329, MPFR_RNDN);
        mpfr_sub(r6331, r6326, r6330, MPFR_RNDN);
        mpfr_mul(r6332, r6297, r6302, MPFR_RNDN);
        mpfr_mul(r6333, r6301, r6332, MPFR_RNDN);
        mpfr_sub(r6334, r6331, r6333, MPFR_RNDN);
        mpfr_add(r6335, r6322, r6334, MPFR_RNDN);
        ;
        mpfr_set_si(r6337, mpfr_cmp(r6319, r6336) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r6337, MPFR_RNDN)) { mpfr_set(r6338, r6319, MPFR_RNDN); } else { mpfr_set(r6338, r6335, MPFR_RNDN); };
        if (mpfr_get_si(r6321, MPFR_RNDN)) { mpfr_set(r6339, r6335, MPFR_RNDN); } else { mpfr_set(r6339, r6338, MPFR_RNDN); };
        return mpfr_get_d(r6339, MPFR_RNDN);
}

