\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)
\begin{array}{l}
\mathbf{if}\;y5 \le -6.22615300455259295 \cdot 10^{-308}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(\left(t \cdot y2 - y \cdot y3\right) \cdot \left(\sqrt[3]{y4 \cdot c - y5 \cdot a} \cdot \sqrt[3]{y4 \cdot c - y5 \cdot a}\right)\right) \cdot \sqrt[3]{y4 \cdot c - y5 \cdot a}\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y5 \le 1.22216142288095444 \cdot 10^{-160}:\\
\;\;\;\;\left(\left(\left(\left(\left(t \cdot \left(i \cdot \left(z \cdot c\right)\right) - \left(i \cdot \left(c \cdot \left(y \cdot x\right)\right) + a \cdot \left(t \cdot \left(z \cdot b\right)\right)\right)\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y5 \le 1.5332229864222716 \cdot 10^{-27}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(a \cdot \left(y3 \cdot \left(y1 \cdot z\right)\right) - \left(y0 \cdot \left(z \cdot \left(y3 \cdot c\right)\right) + a \cdot \left(x \cdot \left(y2 \cdot y1\right)\right)\right)\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{else}:\\
\;\;\;\;\left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right) + \left(\left(\left(\left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right) + \left(-\left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right)\\
\end{array}double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double r162052 = x;
double r162053 = y;
double r162054 = r162052 * r162053;
double r162055 = z;
double r162056 = t;
double r162057 = r162055 * r162056;
double r162058 = r162054 - r162057;
double r162059 = a;
double r162060 = b;
double r162061 = r162059 * r162060;
double r162062 = c;
double r162063 = i;
double r162064 = r162062 * r162063;
double r162065 = r162061 - r162064;
double r162066 = r162058 * r162065;
double r162067 = j;
double r162068 = r162052 * r162067;
double r162069 = k;
double r162070 = r162055 * r162069;
double r162071 = r162068 - r162070;
double r162072 = y0;
double r162073 = r162072 * r162060;
double r162074 = y1;
double r162075 = r162074 * r162063;
double r162076 = r162073 - r162075;
double r162077 = r162071 * r162076;
double r162078 = r162066 - r162077;
double r162079 = y2;
double r162080 = r162052 * r162079;
double r162081 = y3;
double r162082 = r162055 * r162081;
double r162083 = r162080 - r162082;
double r162084 = r162072 * r162062;
double r162085 = r162074 * r162059;
double r162086 = r162084 - r162085;
double r162087 = r162083 * r162086;
double r162088 = r162078 + r162087;
double r162089 = r162056 * r162067;
double r162090 = r162053 * r162069;
double r162091 = r162089 - r162090;
double r162092 = y4;
double r162093 = r162092 * r162060;
double r162094 = y5;
double r162095 = r162094 * r162063;
double r162096 = r162093 - r162095;
double r162097 = r162091 * r162096;
double r162098 = r162088 + r162097;
double r162099 = r162056 * r162079;
double r162100 = r162053 * r162081;
double r162101 = r162099 - r162100;
double r162102 = r162092 * r162062;
double r162103 = r162094 * r162059;
double r162104 = r162102 - r162103;
double r162105 = r162101 * r162104;
double r162106 = r162098 - r162105;
double r162107 = r162069 * r162079;
double r162108 = r162067 * r162081;
double r162109 = r162107 - r162108;
double r162110 = r162092 * r162074;
double r162111 = r162094 * r162072;
double r162112 = r162110 - r162111;
double r162113 = r162109 * r162112;
double r162114 = r162106 + r162113;
return r162114;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double r162115 = y5;
double r162116 = -6.226153004552593e-308;
bool r162117 = r162115 <= r162116;
double r162118 = x;
double r162119 = y;
double r162120 = r162118 * r162119;
double r162121 = z;
double r162122 = t;
double r162123 = r162121 * r162122;
double r162124 = r162120 - r162123;
double r162125 = a;
double r162126 = b;
double r162127 = r162125 * r162126;
double r162128 = c;
double r162129 = i;
double r162130 = r162128 * r162129;
double r162131 = r162127 - r162130;
double r162132 = r162124 * r162131;
double r162133 = j;
double r162134 = r162118 * r162133;
double r162135 = k;
double r162136 = r162121 * r162135;
double r162137 = r162134 - r162136;
double r162138 = y0;
double r162139 = r162138 * r162126;
double r162140 = y1;
double r162141 = r162140 * r162129;
double r162142 = r162139 - r162141;
double r162143 = r162137 * r162142;
double r162144 = r162132 - r162143;
double r162145 = y2;
double r162146 = r162118 * r162145;
double r162147 = y3;
double r162148 = r162121 * r162147;
double r162149 = r162146 - r162148;
double r162150 = r162138 * r162128;
double r162151 = r162140 * r162125;
double r162152 = r162150 - r162151;
double r162153 = r162149 * r162152;
double r162154 = r162144 + r162153;
double r162155 = r162122 * r162133;
double r162156 = r162119 * r162135;
double r162157 = r162155 - r162156;
double r162158 = y4;
double r162159 = r162158 * r162126;
double r162160 = r162115 * r162129;
double r162161 = r162159 - r162160;
double r162162 = r162157 * r162161;
double r162163 = r162154 + r162162;
double r162164 = r162122 * r162145;
double r162165 = r162119 * r162147;
double r162166 = r162164 - r162165;
double r162167 = r162158 * r162128;
double r162168 = r162115 * r162125;
double r162169 = r162167 - r162168;
double r162170 = cbrt(r162169);
double r162171 = r162170 * r162170;
double r162172 = r162166 * r162171;
double r162173 = r162172 * r162170;
double r162174 = r162163 - r162173;
double r162175 = r162135 * r162145;
double r162176 = r162133 * r162147;
double r162177 = r162175 - r162176;
double r162178 = r162158 * r162140;
double r162179 = r162115 * r162138;
double r162180 = r162178 - r162179;
double r162181 = r162177 * r162180;
double r162182 = r162174 + r162181;
double r162183 = 1.2221614228809544e-160;
bool r162184 = r162115 <= r162183;
double r162185 = r162121 * r162128;
double r162186 = r162129 * r162185;
double r162187 = r162122 * r162186;
double r162188 = r162119 * r162118;
double r162189 = r162128 * r162188;
double r162190 = r162129 * r162189;
double r162191 = r162121 * r162126;
double r162192 = r162122 * r162191;
double r162193 = r162125 * r162192;
double r162194 = r162190 + r162193;
double r162195 = r162187 - r162194;
double r162196 = r162195 - r162143;
double r162197 = r162196 + r162153;
double r162198 = r162197 + r162162;
double r162199 = r162166 * r162169;
double r162200 = r162198 - r162199;
double r162201 = r162200 + r162181;
double r162202 = 1.5332229864222716e-27;
bool r162203 = r162115 <= r162202;
double r162204 = r162140 * r162121;
double r162205 = r162147 * r162204;
double r162206 = r162125 * r162205;
double r162207 = r162147 * r162128;
double r162208 = r162121 * r162207;
double r162209 = r162138 * r162208;
double r162210 = r162145 * r162140;
double r162211 = r162118 * r162210;
double r162212 = r162125 * r162211;
double r162213 = r162209 + r162212;
double r162214 = r162206 - r162213;
double r162215 = r162144 + r162214;
double r162216 = r162215 + r162162;
double r162217 = r162216 - r162199;
double r162218 = r162217 + r162181;
double r162219 = -r162143;
double r162220 = r162153 + r162219;
double r162221 = r162220 + r162162;
double r162222 = r162221 - r162199;
double r162223 = r162181 + r162222;
double r162224 = r162203 ? r162218 : r162223;
double r162225 = r162184 ? r162201 : r162224;
double r162226 = r162117 ? r162182 : r162225;
return r162226;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b



Bits error versus c



Bits error versus i



Bits error versus j



Bits error versus k



Bits error versus y0



Bits error versus y1



Bits error versus y2



Bits error versus y3



Bits error versus y4



Bits error versus y5
Results
if y5 < -6.226153004552593e-308Initial program 26.4
rmApplied add-cube-cbrt26.5
Applied associate-*r*26.5
if -6.226153004552593e-308 < y5 < 1.2221614228809544e-160Initial program 26.2
Taylor expanded around inf 28.8
if 1.2221614228809544e-160 < y5 < 1.5332229864222716e-27Initial program 26.7
Taylor expanded around inf 29.2
if 1.5332229864222716e-27 < y5 Initial program 28.4
Taylor expanded around 0 30.3
Final simplification28.0
herbie shell --seed 2020043
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:name "Linear.Matrix:det44 from linear-1.19.1.3"
:precision binary64
(+ (- (+ (+ (- (* (- (* x y) (* z t)) (- (* a b) (* c i))) (* (- (* x j) (* z k)) (- (* y0 b) (* y1 i)))) (* (- (* x y2) (* z y3)) (- (* y0 c) (* y1 a)))) (* (- (* t j) (* y k)) (- (* y4 b) (* y5 i)))) (* (- (* t y2) (* y y3)) (- (* y4 c) (* y5 a)))) (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))