\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}\;k \le -5.368824232414785634330611155838197389832 \cdot 10^{-40}:\\
\;\;\;\;\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(\left(\left(x \cdot y2 - z \cdot y3\right) \cdot y0\right) \cdot c + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(-y1 \cdot a\right)\right)\right) + \mathsf{fma}\left(k, i \cdot \left(y \cdot y5\right), -\mathsf{fma}\left(t, i \cdot \left(j \cdot y5\right), k \cdot \left(y4 \cdot \left(y \cdot b\right)\right)\right)\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}\;k \le -3.837734340409034693594451806420869680277 \cdot 10^{-190}:\\
\;\;\;\;\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(\left(\left(x \cdot y2 - z \cdot y3\right) \cdot y0\right) \cdot c + \left(\left(x \cdot y2 - z \cdot y3\right) \cdot \left(-y1\right)\right) \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}\;k \le 4.085379111073638406823244622669453896403 \cdot 10^{-15}:\\
\;\;\;\;\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(\left(\left(x \cdot y2 - z \cdot y3\right) \cdot y0\right) \cdot c + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(-y1 \cdot a\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) + \mathsf{fma}\left(y0, y3 \cdot \left(j \cdot y5\right), -\mathsf{fma}\left(y0, y2 \cdot \left(k \cdot y5\right), y1 \cdot \left(y3 \cdot \left(j \cdot y4\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\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(\left(\left(x \cdot y2 - z \cdot y3\right) \cdot y0\right) \cdot c + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(-y1 \cdot a\right)\right)\right) + \mathsf{fma}\left(k, i \cdot \left(y \cdot y5\right), -\mathsf{fma}\left(t, i \cdot \left(j \cdot y5\right), k \cdot \left(y4 \cdot \left(y \cdot b\right)\right)\right)\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)\\
\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 r150240 = x;
double r150241 = y;
double r150242 = r150240 * r150241;
double r150243 = z;
double r150244 = t;
double r150245 = r150243 * r150244;
double r150246 = r150242 - r150245;
double r150247 = a;
double r150248 = b;
double r150249 = r150247 * r150248;
double r150250 = c;
double r150251 = i;
double r150252 = r150250 * r150251;
double r150253 = r150249 - r150252;
double r150254 = r150246 * r150253;
double r150255 = j;
double r150256 = r150240 * r150255;
double r150257 = k;
double r150258 = r150243 * r150257;
double r150259 = r150256 - r150258;
double r150260 = y0;
double r150261 = r150260 * r150248;
double r150262 = y1;
double r150263 = r150262 * r150251;
double r150264 = r150261 - r150263;
double r150265 = r150259 * r150264;
double r150266 = r150254 - r150265;
double r150267 = y2;
double r150268 = r150240 * r150267;
double r150269 = y3;
double r150270 = r150243 * r150269;
double r150271 = r150268 - r150270;
double r150272 = r150260 * r150250;
double r150273 = r150262 * r150247;
double r150274 = r150272 - r150273;
double r150275 = r150271 * r150274;
double r150276 = r150266 + r150275;
double r150277 = r150244 * r150255;
double r150278 = r150241 * r150257;
double r150279 = r150277 - r150278;
double r150280 = y4;
double r150281 = r150280 * r150248;
double r150282 = y5;
double r150283 = r150282 * r150251;
double r150284 = r150281 - r150283;
double r150285 = r150279 * r150284;
double r150286 = r150276 + r150285;
double r150287 = r150244 * r150267;
double r150288 = r150241 * r150269;
double r150289 = r150287 - r150288;
double r150290 = r150280 * r150250;
double r150291 = r150282 * r150247;
double r150292 = r150290 - r150291;
double r150293 = r150289 * r150292;
double r150294 = r150286 - r150293;
double r150295 = r150257 * r150267;
double r150296 = r150255 * r150269;
double r150297 = r150295 - r150296;
double r150298 = r150280 * r150262;
double r150299 = r150282 * r150260;
double r150300 = r150298 - r150299;
double r150301 = r150297 * r150300;
double r150302 = r150294 + r150301;
return r150302;
}
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 r150303 = k;
double r150304 = -5.368824232414786e-40;
bool r150305 = r150303 <= r150304;
double r150306 = x;
double r150307 = y;
double r150308 = r150306 * r150307;
double r150309 = z;
double r150310 = t;
double r150311 = r150309 * r150310;
double r150312 = r150308 - r150311;
double r150313 = a;
double r150314 = b;
double r150315 = r150313 * r150314;
double r150316 = c;
double r150317 = i;
double r150318 = r150316 * r150317;
double r150319 = r150315 - r150318;
double r150320 = r150312 * r150319;
double r150321 = j;
double r150322 = r150306 * r150321;
double r150323 = r150309 * r150303;
double r150324 = r150322 - r150323;
double r150325 = y0;
double r150326 = r150325 * r150314;
double r150327 = y1;
double r150328 = r150327 * r150317;
double r150329 = r150326 - r150328;
double r150330 = r150324 * r150329;
double r150331 = r150320 - r150330;
double r150332 = y2;
double r150333 = r150306 * r150332;
double r150334 = y3;
double r150335 = r150309 * r150334;
double r150336 = r150333 - r150335;
double r150337 = r150336 * r150325;
double r150338 = r150337 * r150316;
double r150339 = r150327 * r150313;
double r150340 = -r150339;
double r150341 = r150336 * r150340;
double r150342 = r150338 + r150341;
double r150343 = r150331 + r150342;
double r150344 = y5;
double r150345 = r150307 * r150344;
double r150346 = r150317 * r150345;
double r150347 = r150321 * r150344;
double r150348 = r150317 * r150347;
double r150349 = y4;
double r150350 = r150307 * r150314;
double r150351 = r150349 * r150350;
double r150352 = r150303 * r150351;
double r150353 = fma(r150310, r150348, r150352);
double r150354 = -r150353;
double r150355 = fma(r150303, r150346, r150354);
double r150356 = r150343 + r150355;
double r150357 = r150310 * r150332;
double r150358 = r150307 * r150334;
double r150359 = r150357 - r150358;
double r150360 = r150349 * r150316;
double r150361 = r150344 * r150313;
double r150362 = r150360 - r150361;
double r150363 = r150359 * r150362;
double r150364 = r150356 - r150363;
double r150365 = r150303 * r150332;
double r150366 = r150321 * r150334;
double r150367 = r150365 - r150366;
double r150368 = r150349 * r150327;
double r150369 = r150344 * r150325;
double r150370 = r150368 - r150369;
double r150371 = r150367 * r150370;
double r150372 = r150364 + r150371;
double r150373 = -3.8377343404090347e-190;
bool r150374 = r150303 <= r150373;
double r150375 = -r150327;
double r150376 = r150336 * r150375;
double r150377 = r150376 * r150313;
double r150378 = r150338 + r150377;
double r150379 = r150331 + r150378;
double r150380 = r150310 * r150321;
double r150381 = r150307 * r150303;
double r150382 = r150380 - r150381;
double r150383 = r150349 * r150314;
double r150384 = r150344 * r150317;
double r150385 = r150383 - r150384;
double r150386 = r150382 * r150385;
double r150387 = r150379 + r150386;
double r150388 = r150387 - r150363;
double r150389 = r150388 + r150371;
double r150390 = 4.0853791110736384e-15;
bool r150391 = r150303 <= r150390;
double r150392 = r150343 + r150386;
double r150393 = r150392 - r150363;
double r150394 = r150334 * r150347;
double r150395 = r150303 * r150344;
double r150396 = r150332 * r150395;
double r150397 = r150321 * r150349;
double r150398 = r150334 * r150397;
double r150399 = r150327 * r150398;
double r150400 = fma(r150325, r150396, r150399);
double r150401 = -r150400;
double r150402 = fma(r150325, r150394, r150401);
double r150403 = r150393 + r150402;
double r150404 = r150391 ? r150403 : r150372;
double r150405 = r150374 ? r150389 : r150404;
double r150406 = r150305 ? r150372 : r150405;
return r150406;
}



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
if k < -5.368824232414786e-40 or 4.0853791110736384e-15 < k Initial program 28.2
rmApplied sub-neg28.2
Applied distribute-lft-in28.2
rmApplied associate-*r*28.1
Taylor expanded around inf 28.1
Simplified28.1
if -5.368824232414786e-40 < k < -3.8377343404090347e-190Initial program 26.4
rmApplied sub-neg26.4
Applied distribute-lft-in26.4
rmApplied associate-*r*27.0
rmApplied distribute-lft-neg-in27.0
Applied associate-*r*27.5
if -3.8377343404090347e-190 < k < 4.0853791110736384e-15Initial program 27.3
rmApplied sub-neg27.3
Applied distribute-lft-in27.3
rmApplied associate-*r*27.9
Taylor expanded around inf 28.7
Simplified28.7
Final simplification28.3
herbie shell --seed 2019362 +o rules:numerics
(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)))))