#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 r26109 = x;
        float r26110 = y;
        float r26111 = z;
        float r26112 = r26110 * r26111;
        float r26113 = t;
        float r26114 = a;
        float r26115 = r26113 * r26114;
        float r26116 = r26112 - r26115;
        float r26117 = r26109 * r26116;
        float r26118 = b;
        float r26119 = c;
        float r26120 = r26119 * r26111;
        float r26121 = i;
        float r26122 = r26121 * r26114;
        float r26123 = r26120 - r26122;
        float r26124 = r26118 * r26123;
        float r26125 = r26117 - r26124;
        float r26126 = j;
        float r26127 = r26119 * r26113;
        float r26128 = r26121 * r26110;
        float r26129 = r26127 - r26128;
        float r26130 = r26126 * r26129;
        float r26131 = r26125 + r26130;
        return r26131;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26132 = x;
        double r26133 = y;
        double r26134 = z;
        double r26135 = r26133 * r26134;
        double r26136 = t;
        double r26137 = a;
        double r26138 = r26136 * r26137;
        double r26139 = r26135 - r26138;
        double r26140 = r26132 * r26139;
        double r26141 = b;
        double r26142 = c;
        double r26143 = r26142 * r26134;
        double r26144 = i;
        double r26145 = r26144 * r26137;
        double r26146 = r26143 - r26145;
        double r26147 = r26141 * r26146;
        double r26148 = r26140 - r26147;
        double r26149 = j;
        double r26150 = r26142 * r26136;
        double r26151 = r26144 * r26133;
        double r26152 = r26150 - r26151;
        double r26153 = r26149 * r26152;
        double r26154 = r26148 + r26153;
        return r26154;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r26155 = j;
        float r26156 = t;
        float r26157 = c;
        float r26158 = r26156 * r26157;
        float r26159 = i;
        float r26160 = y;
        float r26161 = r26159 * r26160;
        float r26162 = r26158 - r26161;
        float r26163 = r26155 * r26162;
        float r26164 = b;
        float r26165 = z;
        float r26166 = r26157 * r26165;
        float r26167 = a;
        float r26168 = r26159 * r26167;
        float r26169 = r26166 - r26168;
        float r26170 = x;
        float r26171 = r26170 * r26167;
        float r26172 = r26171 * r26156;
        float r26173 = fma(r26164, r26169, r26172);
        float r26174 = r26163 - r26173;
        float r26175 = -inf.0;
        bool r26176 = r26174 <= r26175;
        float r26177 = -r26157;
        float r26178 = fma(r26165, r26177, r26168);
        float r26179 = r26160 * r26165;
        float r26180 = r26167 * r26156;
        float r26181 = r26179 - r26180;
        float r26182 = r26170 * r26181;
        float r26183 = fma(r26164, r26178, r26182);
        float r26184 = -9.23308682424514e+199;
        bool r26185 = r26174 <= r26184;
        float r26186 = 4.9912892421763316e+165;
        bool r26187 = r26174 <= r26186;
        float r26188 = r26165 * r26160;
        float r26189 = r26188 - r26180;
        float r26190 = r26157 * r26156;
        float r26191 = r26190 - r26161;
        float r26192 = r26155 * r26191;
        float r26193 = fma(r26189, r26170, r26192);
        float r26194 = r26165 * r26157;
        float r26195 = r26194 - r26168;
        float r26196 = r26195 * r26164;
        float r26197 = cbrt(r26196);
        float r26198 = r26197 * r26197;
        float r26199 = r26198 * r26197;
        float r26200 = r26193 - r26199;
        float r26201 = r26162 * r26155;
        float r26202 = r26156 * r26170;
        float r26203 = r26202 * r26167;
        float r26204 = fma(r26164, r26169, r26203);
        float r26205 = r26201 - r26204;
        float r26206 = r26187 ? r26200 : r26205;
        float r26207 = r26185 ? r26174 : r26206;
        float r26208 = r26176 ? r26183 : r26207;
        return r26208;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26209 = j;
        double r26210 = t;
        double r26211 = c;
        double r26212 = r26210 * r26211;
        double r26213 = i;
        double r26214 = y;
        double r26215 = r26213 * r26214;
        double r26216 = r26212 - r26215;
        double r26217 = r26209 * r26216;
        double r26218 = b;
        double r26219 = z;
        double r26220 = r26211 * r26219;
        double r26221 = a;
        double r26222 = r26213 * r26221;
        double r26223 = r26220 - r26222;
        double r26224 = x;
        double r26225 = r26224 * r26221;
        double r26226 = r26225 * r26210;
        double r26227 = fma(r26218, r26223, r26226);
        double r26228 = r26217 - r26227;
        double r26229 = -inf.0;
        bool r26230 = r26228 <= r26229;
        double r26231 = -r26211;
        double r26232 = fma(r26219, r26231, r26222);
        double r26233 = r26214 * r26219;
        double r26234 = r26221 * r26210;
        double r26235 = r26233 - r26234;
        double r26236 = r26224 * r26235;
        double r26237 = fma(r26218, r26232, r26236);
        double r26238 = -9.23308682424514e+199;
        bool r26239 = r26228 <= r26238;
        double r26240 = 4.9912892421763316e+165;
        bool r26241 = r26228 <= r26240;
        double r26242 = r26219 * r26214;
        double r26243 = r26242 - r26234;
        double r26244 = r26211 * r26210;
        double r26245 = r26244 - r26215;
        double r26246 = r26209 * r26245;
        double r26247 = fma(r26243, r26224, r26246);
        double r26248 = r26219 * r26211;
        double r26249 = r26248 - r26222;
        double r26250 = r26249 * r26218;
        double r26251 = cbrt(r26250);
        double r26252 = r26251 * r26251;
        double r26253 = r26252 * r26251;
        double r26254 = r26247 - r26253;
        double r26255 = r26216 * r26209;
        double r26256 = r26210 * r26224;
        double r26257 = r26256 * r26221;
        double r26258 = fma(r26218, r26223, r26257);
        double r26259 = r26255 - r26258;
        double r26260 = r26241 ? r26254 : r26259;
        double r26261 = r26239 ? r26228 : r26260;
        double r26262 = r26230 ? r26237 : r26261;
        return r26262;
}

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 r26263, r26264, r26265, r26266, r26267, r26268, r26269, r26270, r26271, r26272, r26273, r26274, r26275, r26276, r26277, r26278, r26279, r26280, r26281, r26282, r26283, r26284, r26285;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26263);
        mpfr_init(r26264);
        mpfr_init(r26265);
        mpfr_init(r26266);
        mpfr_init(r26267);
        mpfr_init(r26268);
        mpfr_init(r26269);
        mpfr_init(r26270);
        mpfr_init(r26271);
        mpfr_init(r26272);
        mpfr_init(r26273);
        mpfr_init(r26274);
        mpfr_init(r26275);
        mpfr_init(r26276);
        mpfr_init(r26277);
        mpfr_init(r26278);
        mpfr_init(r26279);
        mpfr_init(r26280);
        mpfr_init(r26281);
        mpfr_init(r26282);
        mpfr_init(r26283);
        mpfr_init(r26284);
        mpfr_init(r26285);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26263, x, MPFR_RNDN);
        mpfr_set_d(r26264, y, MPFR_RNDN);
        mpfr_set_d(r26265, z, MPFR_RNDN);
        mpfr_mul(r26266, r26264, r26265, MPFR_RNDN);
        mpfr_set_d(r26267, t, MPFR_RNDN);
        mpfr_set_d(r26268, a, MPFR_RNDN);
        mpfr_mul(r26269, r26267, r26268, MPFR_RNDN);
        mpfr_sub(r26270, r26266, r26269, MPFR_RNDN);
        mpfr_mul(r26271, r26263, r26270, MPFR_RNDN);
        mpfr_set_d(r26272, b, MPFR_RNDN);
        mpfr_set_d(r26273, c, MPFR_RNDN);
        mpfr_mul(r26274, r26273, r26265, MPFR_RNDN);
        mpfr_set_d(r26275, i, MPFR_RNDN);
        mpfr_mul(r26276, r26275, r26268, MPFR_RNDN);
        mpfr_sub(r26277, r26274, r26276, MPFR_RNDN);
        mpfr_mul(r26278, r26272, r26277, MPFR_RNDN);
        mpfr_sub(r26279, r26271, r26278, MPFR_RNDN);
        mpfr_set_d(r26280, j, MPFR_RNDN);
        mpfr_mul(r26281, r26273, r26267, MPFR_RNDN);
        mpfr_mul(r26282, r26275, r26264, MPFR_RNDN);
        mpfr_sub(r26283, r26281, r26282, MPFR_RNDN);
        mpfr_mul(r26284, r26280, r26283, MPFR_RNDN);
        mpfr_add(r26285, r26279, r26284, MPFR_RNDN);
        return mpfr_get_d(r26285, MPFR_RNDN);
}

static mpfr_t r26286, r26287, r26288, r26289, r26290, r26291, r26292, r26293, r26294, r26295, r26296, r26297, r26298, r26299, r26300, r26301, r26302, r26303, r26304, r26305, r26306, r26307, r26308, r26309, r26310, r26311, r26312, r26313, r26314, r26315, r26316, r26317, r26318, r26319, r26320, r26321, r26322, r26323, r26324, r26325, r26326, r26327, r26328, r26329, r26330, r26331, r26332, r26333, r26334, r26335, r26336, r26337, r26338, r26339;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26286);
        mpfr_init(r26287);
        mpfr_init(r26288);
        mpfr_init(r26289);
        mpfr_init(r26290);
        mpfr_init(r26291);
        mpfr_init(r26292);
        mpfr_init(r26293);
        mpfr_init(r26294);
        mpfr_init(r26295);
        mpfr_init(r26296);
        mpfr_init(r26297);
        mpfr_init(r26298);
        mpfr_init(r26299);
        mpfr_init(r26300);
        mpfr_init(r26301);
        mpfr_init(r26302);
        mpfr_init(r26303);
        mpfr_init(r26304);
        mpfr_init(r26305);
        mpfr_init_set_str(r26306, "-inf.0", 10, MPFR_RNDN);
        mpfr_init(r26307);
        mpfr_init(r26308);
        mpfr_init(r26309);
        mpfr_init(r26310);
        mpfr_init(r26311);
        mpfr_init(r26312);
        mpfr_init(r26313);
        mpfr_init(r26314);
        mpfr_init_set_str(r26315, "-9.23308682424514e+199", 10, MPFR_RNDN);
        mpfr_init(r26316);
        mpfr_init_set_str(r26317, "4.9912892421763316e+165", 10, MPFR_RNDN);
        mpfr_init(r26318);
        mpfr_init(r26319);
        mpfr_init(r26320);
        mpfr_init(r26321);
        mpfr_init(r26322);
        mpfr_init(r26323);
        mpfr_init(r26324);
        mpfr_init(r26325);
        mpfr_init(r26326);
        mpfr_init(r26327);
        mpfr_init(r26328);
        mpfr_init(r26329);
        mpfr_init(r26330);
        mpfr_init(r26331);
        mpfr_init(r26332);
        mpfr_init(r26333);
        mpfr_init(r26334);
        mpfr_init(r26335);
        mpfr_init(r26336);
        mpfr_init(r26337);
        mpfr_init(r26338);
        mpfr_init(r26339);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26286, j, MPFR_RNDN);
        mpfr_set_d(r26287, t, MPFR_RNDN);
        mpfr_set_d(r26288, c, MPFR_RNDN);
        mpfr_mul(r26289, r26287, r26288, MPFR_RNDN);
        mpfr_set_d(r26290, i, MPFR_RNDN);
        mpfr_set_d(r26291, y, MPFR_RNDN);
        mpfr_mul(r26292, r26290, r26291, MPFR_RNDN);
        mpfr_sub(r26293, r26289, r26292, MPFR_RNDN);
        mpfr_mul(r26294, r26286, r26293, MPFR_RNDN);
        mpfr_set_d(r26295, b, MPFR_RNDN);
        mpfr_set_d(r26296, z, MPFR_RNDN);
        mpfr_mul(r26297, r26288, r26296, MPFR_RNDN);
        mpfr_set_d(r26298, a, MPFR_RNDN);
        mpfr_mul(r26299, r26290, r26298, MPFR_RNDN);
        mpfr_sub(r26300, r26297, r26299, MPFR_RNDN);
        mpfr_set_d(r26301, x, MPFR_RNDN);
        mpfr_mul(r26302, r26301, r26298, MPFR_RNDN);
        mpfr_mul(r26303, r26302, r26287, MPFR_RNDN);
        mpfr_fma(r26304, r26295, r26300, r26303, MPFR_RNDN);
        mpfr_sub(r26305, r26294, r26304, MPFR_RNDN);
        ;
        mpfr_set_si(r26307, mpfr_cmp(r26305, r26306) <= 0, MPFR_RNDN);
        mpfr_neg(r26308, r26288, MPFR_RNDN);
        mpfr_fma(r26309, r26296, r26308, r26299, MPFR_RNDN);
        mpfr_mul(r26310, r26291, r26296, MPFR_RNDN);
        mpfr_mul(r26311, r26298, r26287, MPFR_RNDN);
        mpfr_sub(r26312, r26310, r26311, MPFR_RNDN);
        mpfr_mul(r26313, r26301, r26312, MPFR_RNDN);
        mpfr_fma(r26314, r26295, r26309, r26313, MPFR_RNDN);
        ;
        mpfr_set_si(r26316, mpfr_cmp(r26305, r26315) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26318, mpfr_cmp(r26305, r26317) <= 0, MPFR_RNDN);
        mpfr_mul(r26319, r26296, r26291, MPFR_RNDN);
        mpfr_sub(r26320, r26319, r26311, MPFR_RNDN);
        mpfr_mul(r26321, r26288, r26287, MPFR_RNDN);
        mpfr_sub(r26322, r26321, r26292, MPFR_RNDN);
        mpfr_mul(r26323, r26286, r26322, MPFR_RNDN);
        mpfr_fma(r26324, r26320, r26301, r26323, MPFR_RNDN);
        mpfr_mul(r26325, r26296, r26288, MPFR_RNDN);
        mpfr_sub(r26326, r26325, r26299, MPFR_RNDN);
        mpfr_mul(r26327, r26326, r26295, MPFR_RNDN);
        mpfr_cbrt(r26328, r26327, MPFR_RNDN);
        mpfr_mul(r26329, r26328, r26328, MPFR_RNDN);
        mpfr_mul(r26330, r26329, r26328, MPFR_RNDN);
        mpfr_sub(r26331, r26324, r26330, MPFR_RNDN);
        mpfr_mul(r26332, r26293, r26286, MPFR_RNDN);
        mpfr_mul(r26333, r26287, r26301, MPFR_RNDN);
        mpfr_mul(r26334, r26333, r26298, MPFR_RNDN);
        mpfr_fma(r26335, r26295, r26300, r26334, MPFR_RNDN);
        mpfr_sub(r26336, r26332, r26335, MPFR_RNDN);
        if (mpfr_get_si(r26318, MPFR_RNDN)) { mpfr_set(r26337, r26331, MPFR_RNDN); } else { mpfr_set(r26337, r26336, MPFR_RNDN); };
        if (mpfr_get_si(r26316, MPFR_RNDN)) { mpfr_set(r26338, r26305, MPFR_RNDN); } else { mpfr_set(r26338, r26337, MPFR_RNDN); };
        if (mpfr_get_si(r26307, MPFR_RNDN)) { mpfr_set(r26339, r26314, MPFR_RNDN); } else { mpfr_set(r26339, r26338, MPFR_RNDN); };
        return mpfr_get_d(r26339, MPFR_RNDN);
}

static mpfr_t r26340, r26341, r26342, r26343, r26344, r26345, r26346, r26347, r26348, r26349, r26350, r26351, r26352, r26353, r26354, r26355, r26356, r26357, r26358, r26359, r26360, r26361, r26362, r26363, r26364, r26365, r26366, r26367, r26368, r26369, r26370, r26371, r26372, r26373, r26374, r26375, r26376, r26377, r26378, r26379, r26380, r26381, r26382, r26383, r26384, r26385, r26386, r26387, r26388, r26389, r26390, r26391, r26392, r26393;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26340);
        mpfr_init(r26341);
        mpfr_init(r26342);
        mpfr_init(r26343);
        mpfr_init(r26344);
        mpfr_init(r26345);
        mpfr_init(r26346);
        mpfr_init(r26347);
        mpfr_init(r26348);
        mpfr_init(r26349);
        mpfr_init(r26350);
        mpfr_init(r26351);
        mpfr_init(r26352);
        mpfr_init(r26353);
        mpfr_init(r26354);
        mpfr_init(r26355);
        mpfr_init(r26356);
        mpfr_init(r26357);
        mpfr_init(r26358);
        mpfr_init(r26359);
        mpfr_init_set_str(r26360, "-inf.0", 10, MPFR_RNDN);
        mpfr_init(r26361);
        mpfr_init(r26362);
        mpfr_init(r26363);
        mpfr_init(r26364);
        mpfr_init(r26365);
        mpfr_init(r26366);
        mpfr_init(r26367);
        mpfr_init(r26368);
        mpfr_init_set_str(r26369, "-9.23308682424514e+199", 10, MPFR_RNDN);
        mpfr_init(r26370);
        mpfr_init_set_str(r26371, "4.9912892421763316e+165", 10, MPFR_RNDN);
        mpfr_init(r26372);
        mpfr_init(r26373);
        mpfr_init(r26374);
        mpfr_init(r26375);
        mpfr_init(r26376);
        mpfr_init(r26377);
        mpfr_init(r26378);
        mpfr_init(r26379);
        mpfr_init(r26380);
        mpfr_init(r26381);
        mpfr_init(r26382);
        mpfr_init(r26383);
        mpfr_init(r26384);
        mpfr_init(r26385);
        mpfr_init(r26386);
        mpfr_init(r26387);
        mpfr_init(r26388);
        mpfr_init(r26389);
        mpfr_init(r26390);
        mpfr_init(r26391);
        mpfr_init(r26392);
        mpfr_init(r26393);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26340, j, MPFR_RNDN);
        mpfr_set_d(r26341, t, MPFR_RNDN);
        mpfr_set_d(r26342, c, MPFR_RNDN);
        mpfr_mul(r26343, r26341, r26342, MPFR_RNDN);
        mpfr_set_d(r26344, i, MPFR_RNDN);
        mpfr_set_d(r26345, y, MPFR_RNDN);
        mpfr_mul(r26346, r26344, r26345, MPFR_RNDN);
        mpfr_sub(r26347, r26343, r26346, MPFR_RNDN);
        mpfr_mul(r26348, r26340, r26347, MPFR_RNDN);
        mpfr_set_d(r26349, b, MPFR_RNDN);
        mpfr_set_d(r26350, z, MPFR_RNDN);
        mpfr_mul(r26351, r26342, r26350, MPFR_RNDN);
        mpfr_set_d(r26352, a, MPFR_RNDN);
        mpfr_mul(r26353, r26344, r26352, MPFR_RNDN);
        mpfr_sub(r26354, r26351, r26353, MPFR_RNDN);
        mpfr_set_d(r26355, x, MPFR_RNDN);
        mpfr_mul(r26356, r26355, r26352, MPFR_RNDN);
        mpfr_mul(r26357, r26356, r26341, MPFR_RNDN);
        mpfr_fma(r26358, r26349, r26354, r26357, MPFR_RNDN);
        mpfr_sub(r26359, r26348, r26358, MPFR_RNDN);
        ;
        mpfr_set_si(r26361, mpfr_cmp(r26359, r26360) <= 0, MPFR_RNDN);
        mpfr_neg(r26362, r26342, MPFR_RNDN);
        mpfr_fma(r26363, r26350, r26362, r26353, MPFR_RNDN);
        mpfr_mul(r26364, r26345, r26350, MPFR_RNDN);
        mpfr_mul(r26365, r26352, r26341, MPFR_RNDN);
        mpfr_sub(r26366, r26364, r26365, MPFR_RNDN);
        mpfr_mul(r26367, r26355, r26366, MPFR_RNDN);
        mpfr_fma(r26368, r26349, r26363, r26367, MPFR_RNDN);
        ;
        mpfr_set_si(r26370, mpfr_cmp(r26359, r26369) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26372, mpfr_cmp(r26359, r26371) <= 0, MPFR_RNDN);
        mpfr_mul(r26373, r26350, r26345, MPFR_RNDN);
        mpfr_sub(r26374, r26373, r26365, MPFR_RNDN);
        mpfr_mul(r26375, r26342, r26341, MPFR_RNDN);
        mpfr_sub(r26376, r26375, r26346, MPFR_RNDN);
        mpfr_mul(r26377, r26340, r26376, MPFR_RNDN);
        mpfr_fma(r26378, r26374, r26355, r26377, MPFR_RNDN);
        mpfr_mul(r26379, r26350, r26342, MPFR_RNDN);
        mpfr_sub(r26380, r26379, r26353, MPFR_RNDN);
        mpfr_mul(r26381, r26380, r26349, MPFR_RNDN);
        mpfr_cbrt(r26382, r26381, MPFR_RNDN);
        mpfr_mul(r26383, r26382, r26382, MPFR_RNDN);
        mpfr_mul(r26384, r26383, r26382, MPFR_RNDN);
        mpfr_sub(r26385, r26378, r26384, MPFR_RNDN);
        mpfr_mul(r26386, r26347, r26340, MPFR_RNDN);
        mpfr_mul(r26387, r26341, r26355, MPFR_RNDN);
        mpfr_mul(r26388, r26387, r26352, MPFR_RNDN);
        mpfr_fma(r26389, r26349, r26354, r26388, MPFR_RNDN);
        mpfr_sub(r26390, r26386, r26389, MPFR_RNDN);
        if (mpfr_get_si(r26372, MPFR_RNDN)) { mpfr_set(r26391, r26385, MPFR_RNDN); } else { mpfr_set(r26391, r26390, MPFR_RNDN); };
        if (mpfr_get_si(r26370, MPFR_RNDN)) { mpfr_set(r26392, r26359, MPFR_RNDN); } else { mpfr_set(r26392, r26391, MPFR_RNDN); };
        if (mpfr_get_si(r26361, MPFR_RNDN)) { mpfr_set(r26393, r26368, MPFR_RNDN); } else { mpfr_set(r26393, r26392, MPFR_RNDN); };
        return mpfr_get_d(r26393, MPFR_RNDN);
}

