#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 r17093 = x;
        float r17094 = y;
        float r17095 = z;
        float r17096 = r17094 * r17095;
        float r17097 = t;
        float r17098 = a;
        float r17099 = r17097 * r17098;
        float r17100 = r17096 - r17099;
        float r17101 = r17093 * r17100;
        float r17102 = b;
        float r17103 = c;
        float r17104 = r17103 * r17095;
        float r17105 = i;
        float r17106 = r17105 * r17098;
        float r17107 = r17104 - r17106;
        float r17108 = r17102 * r17107;
        float r17109 = r17101 - r17108;
        float r17110 = j;
        float r17111 = r17103 * r17097;
        float r17112 = r17105 * r17094;
        float r17113 = r17111 - r17112;
        float r17114 = r17110 * r17113;
        float r17115 = r17109 + r17114;
        return r17115;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r17116 = x;
        double r17117 = y;
        double r17118 = z;
        double r17119 = r17117 * r17118;
        double r17120 = t;
        double r17121 = a;
        double r17122 = r17120 * r17121;
        double r17123 = r17119 - r17122;
        double r17124 = r17116 * r17123;
        double r17125 = b;
        double r17126 = c;
        double r17127 = r17126 * r17118;
        double r17128 = i;
        double r17129 = r17128 * r17121;
        double r17130 = r17127 - r17129;
        double r17131 = r17125 * r17130;
        double r17132 = r17124 - r17131;
        double r17133 = j;
        double r17134 = r17126 * r17120;
        double r17135 = r17128 * r17117;
        double r17136 = r17134 - r17135;
        double r17137 = r17133 * r17136;
        double r17138 = r17132 + r17137;
        return r17138;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r17139 = b;
        float r17140 = -1.2951659188643346e-16f;
        bool r17141 = r17139 <= r17140;
        float r17142 = y;
        float r17143 = -r17142;
        float r17144 = i;
        float r17145 = j;
        float r17146 = r17144 * r17145;
        float r17147 = r17143 * r17146;
        float r17148 = c;
        float r17149 = t;
        float r17150 = r17145 * r17149;
        float r17151 = r17148 * r17150;
        float r17152 = r17147 + r17151;
        float r17153 = z;
        float r17154 = r17142 * r17153;
        float r17155 = a;
        float r17156 = r17149 * r17155;
        float r17157 = r17154 - r17156;
        float r17158 = x;
        float r17159 = r17157 * r17158;
        float r17160 = r17148 * r17153;
        float r17161 = r17144 * r17155;
        float r17162 = r17160 - r17161;
        float r17163 = r17139 * r17162;
        float r17164 = r17159 - r17163;
        float r17165 = r17152 + r17164;
        float r17166 = 3.3027934978662144e-22f;
        bool r17167 = r17139 <= r17166;
        float r17168 = r17139 * r17153;
        float r17169 = r17168 - r17150;
        float r17170 = r17169 * r17148;
        float r17171 = r17159 - r17170;
        float r17172 = r17155 * r17139;
        float r17173 = r17144 * r17172;
        float r17174 = -r17145;
        float r17175 = r17142 * r17144;
        float r17176 = r17174 * r17175;
        float r17177 = r17173 + r17176;
        float r17178 = r17171 + r17177;
        float r17179 = r17158 * r17157;
        float r17180 = r17179 - r17163;
        float r17181 = r17148 * r17149;
        float r17182 = r17144 * r17142;
        float r17183 = r17181 - r17182;
        float r17184 = r17145 * r17183;
        float r17185 = cbrt(r17184);
        float r17186 = r17185 * (r17185 * r17185);
        float r17187 = r17180 + r17186;
        float r17188 = r17167 ? r17178 : r17187;
        float r17189 = r17141 ? r17165 : r17188;
        return r17189;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r17190 = b;
        double r17191 = -1.2951659188643346e-16;
        bool r17192 = r17190 <= r17191;
        double r17193 = y;
        double r17194 = -r17193;
        double r17195 = i;
        double r17196 = j;
        double r17197 = r17195 * r17196;
        double r17198 = r17194 * r17197;
        double r17199 = c;
        double r17200 = t;
        double r17201 = r17196 * r17200;
        double r17202 = r17199 * r17201;
        double r17203 = r17198 + r17202;
        double r17204 = z;
        double r17205 = r17193 * r17204;
        double r17206 = a;
        double r17207 = r17200 * r17206;
        double r17208 = r17205 - r17207;
        double r17209 = x;
        double r17210 = r17208 * r17209;
        double r17211 = r17199 * r17204;
        double r17212 = r17195 * r17206;
        double r17213 = r17211 - r17212;
        double r17214 = r17190 * r17213;
        double r17215 = r17210 - r17214;
        double r17216 = r17203 + r17215;
        double r17217 = 3.3027934978662144e-22;
        bool r17218 = r17190 <= r17217;
        double r17219 = r17190 * r17204;
        double r17220 = r17219 - r17201;
        double r17221 = r17220 * r17199;
        double r17222 = r17210 - r17221;
        double r17223 = r17206 * r17190;
        double r17224 = r17195 * r17223;
        double r17225 = -r17196;
        double r17226 = r17193 * r17195;
        double r17227 = r17225 * r17226;
        double r17228 = r17224 + r17227;
        double r17229 = r17222 + r17228;
        double r17230 = r17209 * r17208;
        double r17231 = r17230 - r17214;
        double r17232 = r17199 * r17200;
        double r17233 = r17195 * r17193;
        double r17234 = r17232 - r17233;
        double r17235 = r17196 * r17234;
        double r17236 = cbrt(r17235);
        double r17237 = r17236 * (r17236 * r17236);
        double r17238 = r17231 + r17237;
        double r17239 = r17218 ? r17229 : r17238;
        double r17240 = r17192 ? r17216 : r17239;
        return r17240;
}

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 r17241, r17242, r17243, r17244, r17245, r17246, r17247, r17248, r17249, r17250, r17251, r17252, r17253, r17254, r17255, r17256, r17257, r17258, r17259, r17260, r17261, r17262, r17263;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r17241);
        mpfr_init(r17242);
        mpfr_init(r17243);
        mpfr_init(r17244);
        mpfr_init(r17245);
        mpfr_init(r17246);
        mpfr_init(r17247);
        mpfr_init(r17248);
        mpfr_init(r17249);
        mpfr_init(r17250);
        mpfr_init(r17251);
        mpfr_init(r17252);
        mpfr_init(r17253);
        mpfr_init(r17254);
        mpfr_init(r17255);
        mpfr_init(r17256);
        mpfr_init(r17257);
        mpfr_init(r17258);
        mpfr_init(r17259);
        mpfr_init(r17260);
        mpfr_init(r17261);
        mpfr_init(r17262);
        mpfr_init(r17263);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r17241, x, MPFR_RNDN);
        mpfr_set_d(r17242, y, MPFR_RNDN);
        mpfr_set_d(r17243, z, MPFR_RNDN);
        mpfr_mul(r17244, r17242, r17243, MPFR_RNDN);
        mpfr_set_d(r17245, t, MPFR_RNDN);
        mpfr_set_d(r17246, a, MPFR_RNDN);
        mpfr_mul(r17247, r17245, r17246, MPFR_RNDN);
        mpfr_sub(r17248, r17244, r17247, MPFR_RNDN);
        mpfr_mul(r17249, r17241, r17248, MPFR_RNDN);
        mpfr_set_d(r17250, b, MPFR_RNDN);
        mpfr_set_d(r17251, c, MPFR_RNDN);
        mpfr_mul(r17252, r17251, r17243, MPFR_RNDN);
        mpfr_set_d(r17253, i, MPFR_RNDN);
        mpfr_mul(r17254, r17253, r17246, MPFR_RNDN);
        mpfr_sub(r17255, r17252, r17254, MPFR_RNDN);
        mpfr_mul(r17256, r17250, r17255, MPFR_RNDN);
        mpfr_sub(r17257, r17249, r17256, MPFR_RNDN);
        mpfr_set_d(r17258, j, MPFR_RNDN);
        mpfr_mul(r17259, r17251, r17245, MPFR_RNDN);
        mpfr_mul(r17260, r17253, r17242, MPFR_RNDN);
        mpfr_sub(r17261, r17259, r17260, MPFR_RNDN);
        mpfr_mul(r17262, r17258, r17261, MPFR_RNDN);
        mpfr_add(r17263, r17257, r17262, MPFR_RNDN);
        return mpfr_get_d(r17263, MPFR_RNDN);
}

static mpfr_t r17264, r17265, r17266, r17267, r17268, r17269, r17270, r17271, r17272, r17273, r17274, r17275, r17276, r17277, r17278, r17279, r17280, r17281, r17282, r17283, r17284, r17285, r17286, r17287, r17288, r17289, r17290, r17291, r17292, r17293, r17294, r17295, r17296, r17297, r17298, r17299, r17300, r17301, r17302, r17303, r17304, r17305, r17306, r17307, r17308, r17309, r17310, r17311, r17312, r17313, r17314;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17264);
        mpfr_init_set_str(r17265, "-1.2951659f-16", 10, MPFR_RNDN);
        mpfr_init(r17266);
        mpfr_init(r17267);
        mpfr_init(r17268);
        mpfr_init(r17269);
        mpfr_init(r17270);
        mpfr_init(r17271);
        mpfr_init(r17272);
        mpfr_init(r17273);
        mpfr_init(r17274);
        mpfr_init(r17275);
        mpfr_init(r17276);
        mpfr_init(r17277);
        mpfr_init(r17278);
        mpfr_init(r17279);
        mpfr_init(r17280);
        mpfr_init(r17281);
        mpfr_init(r17282);
        mpfr_init(r17283);
        mpfr_init(r17284);
        mpfr_init(r17285);
        mpfr_init(r17286);
        mpfr_init(r17287);
        mpfr_init(r17288);
        mpfr_init(r17289);
        mpfr_init(r17290);
        mpfr_init_set_str(r17291, "3.3027935f-22", 10, MPFR_RNDN);
        mpfr_init(r17292);
        mpfr_init(r17293);
        mpfr_init(r17294);
        mpfr_init(r17295);
        mpfr_init(r17296);
        mpfr_init(r17297);
        mpfr_init(r17298);
        mpfr_init(r17299);
        mpfr_init(r17300);
        mpfr_init(r17301);
        mpfr_init(r17302);
        mpfr_init(r17303);
        mpfr_init(r17304);
        mpfr_init(r17305);
        mpfr_init(r17306);
        mpfr_init(r17307);
        mpfr_init(r17308);
        mpfr_init(r17309);
        mpfr_init(r17310);
        mpfr_init(r17311);
        mpfr_init(r17312);
        mpfr_init(r17313);
        mpfr_init(r17314);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r17264, b, MPFR_RNDN);
        ;
        mpfr_set_si(r17266, mpfr_cmp(r17264, r17265) <= 0, MPFR_RNDN);
        mpfr_set_d(r17267, y, MPFR_RNDN);
        mpfr_neg(r17268, r17267, MPFR_RNDN);
        mpfr_set_d(r17269, i, MPFR_RNDN);
        mpfr_set_d(r17270, j, MPFR_RNDN);
        mpfr_mul(r17271, r17269, r17270, MPFR_RNDN);
        mpfr_mul(r17272, r17268, r17271, MPFR_RNDN);
        mpfr_set_d(r17273, c, MPFR_RNDN);
        mpfr_set_d(r17274, t, MPFR_RNDN);
        mpfr_mul(r17275, r17270, r17274, MPFR_RNDN);
        mpfr_mul(r17276, r17273, r17275, MPFR_RNDN);
        mpfr_add(r17277, r17272, r17276, MPFR_RNDN);
        mpfr_set_d(r17278, z, MPFR_RNDN);
        mpfr_mul(r17279, r17267, r17278, MPFR_RNDN);
        mpfr_set_d(r17280, a, MPFR_RNDN);
        mpfr_mul(r17281, r17274, r17280, MPFR_RNDN);
        mpfr_sub(r17282, r17279, r17281, MPFR_RNDN);
        mpfr_set_d(r17283, x, MPFR_RNDN);
        mpfr_mul(r17284, r17282, r17283, MPFR_RNDN);
        mpfr_mul(r17285, r17273, r17278, MPFR_RNDN);
        mpfr_mul(r17286, r17269, r17280, MPFR_RNDN);
        mpfr_sub(r17287, r17285, r17286, MPFR_RNDN);
        mpfr_mul(r17288, r17264, r17287, MPFR_RNDN);
        mpfr_sub(r17289, r17284, r17288, MPFR_RNDN);
        mpfr_add(r17290, r17277, r17289, MPFR_RNDN);
        ;
        mpfr_set_si(r17292, mpfr_cmp(r17264, r17291) <= 0, MPFR_RNDN);
        mpfr_mul(r17293, r17264, r17278, MPFR_RNDN);
        mpfr_sub(r17294, r17293, r17275, MPFR_RNDN);
        mpfr_mul(r17295, r17294, r17273, MPFR_RNDN);
        mpfr_sub(r17296, r17284, r17295, MPFR_RNDN);
        mpfr_mul(r17297, r17280, r17264, MPFR_RNDN);
        mpfr_mul(r17298, r17269, r17297, MPFR_RNDN);
        mpfr_neg(r17299, r17270, MPFR_RNDN);
        mpfr_mul(r17300, r17267, r17269, MPFR_RNDN);
        mpfr_mul(r17301, r17299, r17300, MPFR_RNDN);
        mpfr_add(r17302, r17298, r17301, MPFR_RNDN);
        mpfr_add(r17303, r17296, r17302, MPFR_RNDN);
        mpfr_mul(r17304, r17283, r17282, MPFR_RNDN);
        mpfr_sub(r17305, r17304, r17288, MPFR_RNDN);
        mpfr_mul(r17306, r17273, r17274, MPFR_RNDN);
        mpfr_mul(r17307, r17269, r17267, MPFR_RNDN);
        mpfr_sub(r17308, r17306, r17307, MPFR_RNDN);
        mpfr_mul(r17309, r17270, r17308, MPFR_RNDN);
        mpfr_cbrt(r17310, r17309, MPFR_RNDN);
        mpfr_mul(r17311, r17310, r17310, MPFR_RNDN); mpfr_mul(r17311, r17311, r17310, MPFR_RNDN);
        mpfr_add(r17312, r17305, r17311, MPFR_RNDN);
        if (mpfr_get_si(r17292, MPFR_RNDN)) { mpfr_set(r17313, r17303, MPFR_RNDN); } else { mpfr_set(r17313, r17312, MPFR_RNDN); };
        if (mpfr_get_si(r17266, MPFR_RNDN)) { mpfr_set(r17314, r17290, MPFR_RNDN); } else { mpfr_set(r17314, r17313, MPFR_RNDN); };
        return mpfr_get_d(r17314, MPFR_RNDN);
}

static mpfr_t r17315, r17316, r17317, r17318, r17319, r17320, r17321, r17322, r17323, r17324, r17325, r17326, r17327, r17328, r17329, r17330, r17331, r17332, r17333, r17334, r17335, r17336, r17337, r17338, r17339, r17340, r17341, r17342, r17343, r17344, r17345, r17346, r17347, r17348, r17349, r17350, r17351, r17352, r17353, r17354, r17355, r17356, r17357, r17358, r17359, r17360, r17361, r17362, r17363, r17364, r17365;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17315);
        mpfr_init_set_str(r17316, "-1.2951659f-16", 10, MPFR_RNDN);
        mpfr_init(r17317);
        mpfr_init(r17318);
        mpfr_init(r17319);
        mpfr_init(r17320);
        mpfr_init(r17321);
        mpfr_init(r17322);
        mpfr_init(r17323);
        mpfr_init(r17324);
        mpfr_init(r17325);
        mpfr_init(r17326);
        mpfr_init(r17327);
        mpfr_init(r17328);
        mpfr_init(r17329);
        mpfr_init(r17330);
        mpfr_init(r17331);
        mpfr_init(r17332);
        mpfr_init(r17333);
        mpfr_init(r17334);
        mpfr_init(r17335);
        mpfr_init(r17336);
        mpfr_init(r17337);
        mpfr_init(r17338);
        mpfr_init(r17339);
        mpfr_init(r17340);
        mpfr_init(r17341);
        mpfr_init_set_str(r17342, "3.3027935f-22", 10, MPFR_RNDN);
        mpfr_init(r17343);
        mpfr_init(r17344);
        mpfr_init(r17345);
        mpfr_init(r17346);
        mpfr_init(r17347);
        mpfr_init(r17348);
        mpfr_init(r17349);
        mpfr_init(r17350);
        mpfr_init(r17351);
        mpfr_init(r17352);
        mpfr_init(r17353);
        mpfr_init(r17354);
        mpfr_init(r17355);
        mpfr_init(r17356);
        mpfr_init(r17357);
        mpfr_init(r17358);
        mpfr_init(r17359);
        mpfr_init(r17360);
        mpfr_init(r17361);
        mpfr_init(r17362);
        mpfr_init(r17363);
        mpfr_init(r17364);
        mpfr_init(r17365);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r17315, b, MPFR_RNDN);
        ;
        mpfr_set_si(r17317, mpfr_cmp(r17315, r17316) <= 0, MPFR_RNDN);
        mpfr_set_d(r17318, y, MPFR_RNDN);
        mpfr_neg(r17319, r17318, MPFR_RNDN);
        mpfr_set_d(r17320, i, MPFR_RNDN);
        mpfr_set_d(r17321, j, MPFR_RNDN);
        mpfr_mul(r17322, r17320, r17321, MPFR_RNDN);
        mpfr_mul(r17323, r17319, r17322, MPFR_RNDN);
        mpfr_set_d(r17324, c, MPFR_RNDN);
        mpfr_set_d(r17325, t, MPFR_RNDN);
        mpfr_mul(r17326, r17321, r17325, MPFR_RNDN);
        mpfr_mul(r17327, r17324, r17326, MPFR_RNDN);
        mpfr_add(r17328, r17323, r17327, MPFR_RNDN);
        mpfr_set_d(r17329, z, MPFR_RNDN);
        mpfr_mul(r17330, r17318, r17329, MPFR_RNDN);
        mpfr_set_d(r17331, a, MPFR_RNDN);
        mpfr_mul(r17332, r17325, r17331, MPFR_RNDN);
        mpfr_sub(r17333, r17330, r17332, MPFR_RNDN);
        mpfr_set_d(r17334, x, MPFR_RNDN);
        mpfr_mul(r17335, r17333, r17334, MPFR_RNDN);
        mpfr_mul(r17336, r17324, r17329, MPFR_RNDN);
        mpfr_mul(r17337, r17320, r17331, MPFR_RNDN);
        mpfr_sub(r17338, r17336, r17337, MPFR_RNDN);
        mpfr_mul(r17339, r17315, r17338, MPFR_RNDN);
        mpfr_sub(r17340, r17335, r17339, MPFR_RNDN);
        mpfr_add(r17341, r17328, r17340, MPFR_RNDN);
        ;
        mpfr_set_si(r17343, mpfr_cmp(r17315, r17342) <= 0, MPFR_RNDN);
        mpfr_mul(r17344, r17315, r17329, MPFR_RNDN);
        mpfr_sub(r17345, r17344, r17326, MPFR_RNDN);
        mpfr_mul(r17346, r17345, r17324, MPFR_RNDN);
        mpfr_sub(r17347, r17335, r17346, MPFR_RNDN);
        mpfr_mul(r17348, r17331, r17315, MPFR_RNDN);
        mpfr_mul(r17349, r17320, r17348, MPFR_RNDN);
        mpfr_neg(r17350, r17321, MPFR_RNDN);
        mpfr_mul(r17351, r17318, r17320, MPFR_RNDN);
        mpfr_mul(r17352, r17350, r17351, MPFR_RNDN);
        mpfr_add(r17353, r17349, r17352, MPFR_RNDN);
        mpfr_add(r17354, r17347, r17353, MPFR_RNDN);
        mpfr_mul(r17355, r17334, r17333, MPFR_RNDN);
        mpfr_sub(r17356, r17355, r17339, MPFR_RNDN);
        mpfr_mul(r17357, r17324, r17325, MPFR_RNDN);
        mpfr_mul(r17358, r17320, r17318, MPFR_RNDN);
        mpfr_sub(r17359, r17357, r17358, MPFR_RNDN);
        mpfr_mul(r17360, r17321, r17359, MPFR_RNDN);
        mpfr_cbrt(r17361, r17360, MPFR_RNDN);
        mpfr_mul(r17362, r17361, r17361, MPFR_RNDN); mpfr_mul(r17362, r17362, r17361, MPFR_RNDN);
        mpfr_add(r17363, r17356, r17362, MPFR_RNDN);
        if (mpfr_get_si(r17343, MPFR_RNDN)) { mpfr_set(r17364, r17354, MPFR_RNDN); } else { mpfr_set(r17364, r17363, MPFR_RNDN); };
        if (mpfr_get_si(r17317, MPFR_RNDN)) { mpfr_set(r17365, r17341, MPFR_RNDN); } else { mpfr_set(r17365, r17364, MPFR_RNDN); };
        return mpfr_get_d(r17365, MPFR_RNDN);
}

