\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)
\begin{array}{l}
\mathbf{if}\;x \le -6.8016511393041913 \cdot 10^{-129}:\\
\;\;\;\;\mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right)\\
\mathbf{elif}\;x \le 1.1177337282084136 \cdot 10^{-156}:\\
\;\;\;\;\left(0 - \left(b \cdot \left(c \cdot z - i \cdot a\right) + b \cdot \mathsf{fma}\left(-a, i, a \cdot i\right)\right)\right) + \left(j \cdot \mathsf{fma}\left(c, t, -y \cdot i\right) + j \cdot \mathsf{fma}\left(-y, i, y \cdot i\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(x \cdot \mathsf{fma}\left(y, z, -a \cdot t\right) + x \cdot \mathsf{fma}\left(-a, t, a \cdot t\right)\right) - \left(b \cdot \left(c \cdot z - i \cdot a\right) + b \cdot \mathsf{fma}\left(-a, i, a \cdot i\right)\right)\right) + \left(j \cdot \mathsf{fma}\left(c, t, -y \cdot i\right) + j \cdot \mathsf{fma}\left(-y, i, y \cdot i\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 r466 = x;
double r467 = y;
double r468 = z;
double r469 = r467 * r468;
double r470 = t;
double r471 = a;
double r472 = r470 * r471;
double r473 = r469 - r472;
double r474 = r466 * r473;
double r475 = b;
double r476 = c;
double r477 = r476 * r468;
double r478 = i;
double r479 = r478 * r471;
double r480 = r477 - r479;
double r481 = r475 * r480;
double r482 = r474 - r481;
double r483 = j;
double r484 = r476 * r470;
double r485 = r478 * r467;
double r486 = r484 - r485;
double r487 = r483 * r486;
double r488 = r482 + r487;
return r488;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r489 = x;
double r490 = -6.801651139304191e-129;
bool r491 = r489 <= r490;
double r492 = c;
double r493 = t;
double r494 = r492 * r493;
double r495 = i;
double r496 = y;
double r497 = r495 * r496;
double r498 = r494 - r497;
double r499 = j;
double r500 = z;
double r501 = r496 * r500;
double r502 = a;
double r503 = r493 * r502;
double r504 = r501 - r503;
double r505 = r489 * r504;
double r506 = b;
double r507 = r492 * r500;
double r508 = r495 * r502;
double r509 = r507 - r508;
double r510 = r506 * r509;
double r511 = r505 - r510;
double r512 = fma(r498, r499, r511);
double r513 = 1.1177337282084136e-156;
bool r514 = r489 <= r513;
double r515 = 0.0;
double r516 = -r502;
double r517 = r502 * r495;
double r518 = fma(r516, r495, r517);
double r519 = r506 * r518;
double r520 = r510 + r519;
double r521 = r515 - r520;
double r522 = r496 * r495;
double r523 = -r522;
double r524 = fma(r492, r493, r523);
double r525 = r499 * r524;
double r526 = -r496;
double r527 = fma(r526, r495, r522);
double r528 = r499 * r527;
double r529 = r525 + r528;
double r530 = r521 + r529;
double r531 = r502 * r493;
double r532 = -r531;
double r533 = fma(r496, r500, r532);
double r534 = r489 * r533;
double r535 = fma(r516, r493, r531);
double r536 = r489 * r535;
double r537 = r534 + r536;
double r538 = r537 - r520;
double r539 = r538 + r529;
double r540 = r514 ? r530 : r539;
double r541 = r491 ? r512 : r540;
return r541;
}



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
if x < -6.801651139304191e-129Initial program 9.6
Simplified9.6
if -6.801651139304191e-129 < x < 1.1177337282084136e-156Initial program 17.8
rmApplied prod-diff17.8
Applied distribute-lft-in17.8
Simplified17.8
rmApplied prod-diff17.8
Applied distribute-lft-in17.8
Taylor expanded around 0 18.6
if 1.1177337282084136e-156 < x Initial program 9.7
rmApplied prod-diff9.7
Applied distribute-lft-in9.7
Simplified9.7
rmApplied prod-diff9.7
Applied distribute-lft-in9.7
rmApplied prod-diff9.7
Applied distribute-lft-in9.7
Final simplification12.7
herbie shell --seed 2020025 +o rules:numerics
(FPCore (x y z t a b c i j)
:name "Linear.Matrix:det33 from linear-1.19.1.3"
:precision binary64
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))