\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}\;a \le -2.8861548635551053 \cdot 10^{77}:\\
\;\;\;\;\mathsf{fma}\left(a, i \cdot b, -\mathsf{fma}\left(z, b \cdot c, a \cdot \left(x \cdot t\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(c \cdot t - i \cdot y, j, \left(x \cdot \mathsf{fma}\left(y, z, -a \cdot t\right) + x \cdot \mathsf{fma}\left(-a, t, a \cdot t\right)\right) - b \cdot \left(c \cdot z - i \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 r135529 = x;
double r135530 = y;
double r135531 = z;
double r135532 = r135530 * r135531;
double r135533 = t;
double r135534 = a;
double r135535 = r135533 * r135534;
double r135536 = r135532 - r135535;
double r135537 = r135529 * r135536;
double r135538 = b;
double r135539 = c;
double r135540 = r135539 * r135531;
double r135541 = i;
double r135542 = r135541 * r135534;
double r135543 = r135540 - r135542;
double r135544 = r135538 * r135543;
double r135545 = r135537 - r135544;
double r135546 = j;
double r135547 = r135539 * r135533;
double r135548 = r135541 * r135530;
double r135549 = r135547 - r135548;
double r135550 = r135546 * r135549;
double r135551 = r135545 + r135550;
return r135551;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r135552 = a;
double r135553 = -2.8861548635551053e+77;
bool r135554 = r135552 <= r135553;
double r135555 = i;
double r135556 = b;
double r135557 = r135555 * r135556;
double r135558 = z;
double r135559 = c;
double r135560 = r135556 * r135559;
double r135561 = x;
double r135562 = t;
double r135563 = r135561 * r135562;
double r135564 = r135552 * r135563;
double r135565 = fma(r135558, r135560, r135564);
double r135566 = -r135565;
double r135567 = fma(r135552, r135557, r135566);
double r135568 = r135559 * r135562;
double r135569 = y;
double r135570 = r135555 * r135569;
double r135571 = r135568 - r135570;
double r135572 = j;
double r135573 = r135552 * r135562;
double r135574 = -r135573;
double r135575 = fma(r135569, r135558, r135574);
double r135576 = r135561 * r135575;
double r135577 = -r135552;
double r135578 = fma(r135577, r135562, r135573);
double r135579 = r135561 * r135578;
double r135580 = r135576 + r135579;
double r135581 = r135559 * r135558;
double r135582 = r135555 * r135552;
double r135583 = r135581 - r135582;
double r135584 = r135556 * r135583;
double r135585 = r135580 - r135584;
double r135586 = fma(r135571, r135572, r135585);
double r135587 = r135554 ? r135567 : r135586;
return r135587;
}



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 a < -2.8861548635551053e+77Initial program 19.7
Simplified19.7
Taylor expanded around inf 21.6
Simplified21.6
if -2.8861548635551053e+77 < a Initial program 10.9
Simplified10.9
rmApplied prod-diff10.9
Applied distribute-lft-in10.9
Final simplification12.3
herbie shell --seed 2020064 +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)))))