\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}\;t \le -2.170921980918471249066722659595249022854 \cdot 10^{-198}:\\
\;\;\;\;\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(\sqrt[3]{\left(t \cdot y2 - y \cdot y3\right) \cdot \mathsf{fma}\left(y4, c, -a \cdot y5\right)} \cdot \sqrt[3]{\left(t \cdot y2 - y \cdot y3\right) \cdot \mathsf{fma}\left(y4, c, -a \cdot y5\right)}\right) \cdot \sqrt[3]{\left(t \cdot y2 - y \cdot y3\right) \cdot \mathsf{fma}\left(y4, c, -a \cdot y5\right)} + \left(t \cdot y2 - y \cdot y3\right) \cdot \mathsf{fma}\left(-a, y5, a \cdot y5\right)\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;t \le 4.224835810085253984713968194681658884927 \cdot 10^{-259}:\\
\;\;\;\;\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) + \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}\;t \le 3.852001203169608621368313039789462383833 \cdot 10^{-38}:\\
\;\;\;\;\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 \mathsf{fma}\left(y4, c, -a \cdot y5\right) + \left(t \cdot y2 - y \cdot y3\right) \cdot \mathsf{fma}\left(-a, y5, a \cdot y5\right)\right)\right) + \left(\sqrt[3]{\left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)} \cdot \sqrt[3]{\left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)}\right) \cdot \sqrt[3]{\left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(\mathsf{fma}\left(t, i \cdot \left(z \cdot c\right), -\mathsf{fma}\left(i, c \cdot \left(y \cdot x\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(\left(t \cdot y2 - y \cdot y3\right) \cdot \mathsf{fma}\left(y4, c, -a \cdot y5\right) + \left(t \cdot y2 - y \cdot y3\right) \cdot \mathsf{fma}\left(-a, y5, a \cdot y5\right)\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 r126334 = x;
double r126335 = y;
double r126336 = r126334 * r126335;
double r126337 = z;
double r126338 = t;
double r126339 = r126337 * r126338;
double r126340 = r126336 - r126339;
double r126341 = a;
double r126342 = b;
double r126343 = r126341 * r126342;
double r126344 = c;
double r126345 = i;
double r126346 = r126344 * r126345;
double r126347 = r126343 - r126346;
double r126348 = r126340 * r126347;
double r126349 = j;
double r126350 = r126334 * r126349;
double r126351 = k;
double r126352 = r126337 * r126351;
double r126353 = r126350 - r126352;
double r126354 = y0;
double r126355 = r126354 * r126342;
double r126356 = y1;
double r126357 = r126356 * r126345;
double r126358 = r126355 - r126357;
double r126359 = r126353 * r126358;
double r126360 = r126348 - r126359;
double r126361 = y2;
double r126362 = r126334 * r126361;
double r126363 = y3;
double r126364 = r126337 * r126363;
double r126365 = r126362 - r126364;
double r126366 = r126354 * r126344;
double r126367 = r126356 * r126341;
double r126368 = r126366 - r126367;
double r126369 = r126365 * r126368;
double r126370 = r126360 + r126369;
double r126371 = r126338 * r126349;
double r126372 = r126335 * r126351;
double r126373 = r126371 - r126372;
double r126374 = y4;
double r126375 = r126374 * r126342;
double r126376 = y5;
double r126377 = r126376 * r126345;
double r126378 = r126375 - r126377;
double r126379 = r126373 * r126378;
double r126380 = r126370 + r126379;
double r126381 = r126338 * r126361;
double r126382 = r126335 * r126363;
double r126383 = r126381 - r126382;
double r126384 = r126374 * r126344;
double r126385 = r126376 * r126341;
double r126386 = r126384 - r126385;
double r126387 = r126383 * r126386;
double r126388 = r126380 - r126387;
double r126389 = r126351 * r126361;
double r126390 = r126349 * r126363;
double r126391 = r126389 - r126390;
double r126392 = r126374 * r126356;
double r126393 = r126376 * r126354;
double r126394 = r126392 - r126393;
double r126395 = r126391 * r126394;
double r126396 = r126388 + r126395;
return r126396;
}
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 r126397 = t;
double r126398 = -2.1709219809184712e-198;
bool r126399 = r126397 <= r126398;
double r126400 = x;
double r126401 = y;
double r126402 = r126400 * r126401;
double r126403 = z;
double r126404 = r126403 * r126397;
double r126405 = r126402 - r126404;
double r126406 = a;
double r126407 = b;
double r126408 = r126406 * r126407;
double r126409 = c;
double r126410 = i;
double r126411 = r126409 * r126410;
double r126412 = r126408 - r126411;
double r126413 = r126405 * r126412;
double r126414 = j;
double r126415 = r126400 * r126414;
double r126416 = k;
double r126417 = r126403 * r126416;
double r126418 = r126415 - r126417;
double r126419 = y0;
double r126420 = r126419 * r126407;
double r126421 = y1;
double r126422 = r126421 * r126410;
double r126423 = r126420 - r126422;
double r126424 = r126418 * r126423;
double r126425 = r126413 - r126424;
double r126426 = y2;
double r126427 = r126400 * r126426;
double r126428 = y3;
double r126429 = r126403 * r126428;
double r126430 = r126427 - r126429;
double r126431 = r126419 * r126409;
double r126432 = r126421 * r126406;
double r126433 = r126431 - r126432;
double r126434 = r126430 * r126433;
double r126435 = r126425 + r126434;
double r126436 = r126397 * r126414;
double r126437 = r126401 * r126416;
double r126438 = r126436 - r126437;
double r126439 = y4;
double r126440 = r126439 * r126407;
double r126441 = y5;
double r126442 = r126441 * r126410;
double r126443 = r126440 - r126442;
double r126444 = r126438 * r126443;
double r126445 = r126435 + r126444;
double r126446 = r126397 * r126426;
double r126447 = r126401 * r126428;
double r126448 = r126446 - r126447;
double r126449 = r126406 * r126441;
double r126450 = -r126449;
double r126451 = fma(r126439, r126409, r126450);
double r126452 = r126448 * r126451;
double r126453 = cbrt(r126452);
double r126454 = r126453 * r126453;
double r126455 = r126454 * r126453;
double r126456 = -r126406;
double r126457 = fma(r126456, r126441, r126449);
double r126458 = r126448 * r126457;
double r126459 = r126455 + r126458;
double r126460 = r126445 - r126459;
double r126461 = r126416 * r126426;
double r126462 = r126414 * r126428;
double r126463 = r126461 - r126462;
double r126464 = r126439 * r126421;
double r126465 = r126441 * r126419;
double r126466 = r126464 - r126465;
double r126467 = r126463 * r126466;
double r126468 = r126460 + r126467;
double r126469 = 4.224835810085254e-259;
bool r126470 = r126397 <= r126469;
double r126471 = r126401 * r126441;
double r126472 = r126410 * r126471;
double r126473 = r126414 * r126441;
double r126474 = r126410 * r126473;
double r126475 = r126401 * r126407;
double r126476 = r126439 * r126475;
double r126477 = r126416 * r126476;
double r126478 = fma(r126397, r126474, r126477);
double r126479 = -r126478;
double r126480 = fma(r126416, r126472, r126479);
double r126481 = r126435 + r126480;
double r126482 = r126439 * r126409;
double r126483 = r126441 * r126406;
double r126484 = r126482 - r126483;
double r126485 = r126448 * r126484;
double r126486 = r126481 - r126485;
double r126487 = r126486 + r126467;
double r126488 = 3.8520012031696086e-38;
bool r126489 = r126397 <= r126488;
double r126490 = r126452 + r126458;
double r126491 = r126445 - r126490;
double r126492 = cbrt(r126467);
double r126493 = r126492 * r126492;
double r126494 = r126493 * r126492;
double r126495 = r126491 + r126494;
double r126496 = r126403 * r126409;
double r126497 = r126410 * r126496;
double r126498 = r126401 * r126400;
double r126499 = r126409 * r126498;
double r126500 = r126403 * r126407;
double r126501 = r126397 * r126500;
double r126502 = r126406 * r126501;
double r126503 = fma(r126410, r126499, r126502);
double r126504 = -r126503;
double r126505 = fma(r126397, r126497, r126504);
double r126506 = r126505 - r126424;
double r126507 = r126506 + r126434;
double r126508 = r126507 + r126444;
double r126509 = r126508 - r126490;
double r126510 = r126509 + r126467;
double r126511 = r126489 ? r126495 : r126510;
double r126512 = r126470 ? r126487 : r126511;
double r126513 = r126399 ? r126468 : r126512;
return r126513;
}



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 t < -2.1709219809184712e-198Initial program 28.1
rmApplied prod-diff28.1
Applied distribute-lft-in28.1
rmApplied add-cube-cbrt28.2
if -2.1709219809184712e-198 < t < 4.224835810085254e-259Initial program 27.1
Taylor expanded around inf 29.2
Simplified29.2
if 4.224835810085254e-259 < t < 3.8520012031696086e-38Initial program 25.3
rmApplied prod-diff25.3
Applied distribute-lft-in25.3
rmApplied add-cube-cbrt25.4
if 3.8520012031696086e-38 < t Initial program 27.7
rmApplied prod-diff27.7
Applied distribute-lft-in27.7
Taylor expanded around inf 29.0
Simplified29.0
Final simplification27.9
herbie shell --seed 2020001 +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)))))