\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 -7.615026889800153126326834238619769676443 \cdot 10^{-85}:\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-i \cdot \left(j \cdot y\right)\right)\right)\\
\mathbf{elif}\;x \le 1.841813406452417059844069174980175504475 \cdot 10^{-51}:\\
\;\;\;\;\left(\left(y \cdot \left(z \cdot x\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\
\mathbf{else}:\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(z \cdot \left(b \cdot c\right) + b \cdot \left(-i \cdot a\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\
\end{array}double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r83366 = x;
double r83367 = y;
double r83368 = z;
double r83369 = r83367 * r83368;
double r83370 = t;
double r83371 = a;
double r83372 = r83370 * r83371;
double r83373 = r83369 - r83372;
double r83374 = r83366 * r83373;
double r83375 = b;
double r83376 = c;
double r83377 = r83376 * r83368;
double r83378 = i;
double r83379 = r83378 * r83371;
double r83380 = r83377 - r83379;
double r83381 = r83375 * r83380;
double r83382 = r83374 - r83381;
double r83383 = j;
double r83384 = r83376 * r83370;
double r83385 = r83378 * r83367;
double r83386 = r83384 - r83385;
double r83387 = r83383 * r83386;
double r83388 = r83382 + r83387;
return r83388;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r83389 = x;
double r83390 = -7.615026889800153e-85;
bool r83391 = r83389 <= r83390;
double r83392 = y;
double r83393 = z;
double r83394 = r83392 * r83393;
double r83395 = t;
double r83396 = a;
double r83397 = r83395 * r83396;
double r83398 = r83394 - r83397;
double r83399 = r83389 * r83398;
double r83400 = b;
double r83401 = c;
double r83402 = r83401 * r83393;
double r83403 = i;
double r83404 = r83403 * r83396;
double r83405 = r83402 - r83404;
double r83406 = r83400 * r83405;
double r83407 = r83399 - r83406;
double r83408 = j;
double r83409 = r83408 * r83401;
double r83410 = r83395 * r83409;
double r83411 = r83408 * r83392;
double r83412 = r83403 * r83411;
double r83413 = -r83412;
double r83414 = r83410 + r83413;
double r83415 = r83407 + r83414;
double r83416 = 1.841813406452417e-51;
bool r83417 = r83389 <= r83416;
double r83418 = r83393 * r83389;
double r83419 = r83392 * r83418;
double r83420 = r83389 * r83395;
double r83421 = r83396 * r83420;
double r83422 = -r83421;
double r83423 = r83419 + r83422;
double r83424 = r83423 - r83406;
double r83425 = r83401 * r83395;
double r83426 = r83403 * r83392;
double r83427 = r83425 - r83426;
double r83428 = r83408 * r83427;
double r83429 = r83424 + r83428;
double r83430 = r83400 * r83401;
double r83431 = r83393 * r83430;
double r83432 = -r83404;
double r83433 = r83400 * r83432;
double r83434 = r83431 + r83433;
double r83435 = r83399 - r83434;
double r83436 = r83435 + r83428;
double r83437 = r83417 ? r83429 : r83436;
double r83438 = r83391 ? r83415 : r83437;
return r83438;
}



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
Results
if x < -7.615026889800153e-85Initial program 8.5
rmApplied sub-neg8.5
Applied distribute-lft-in8.5
Simplified9.2
Simplified9.1
if -7.615026889800153e-85 < x < 1.841813406452417e-51Initial program 15.5
rmApplied sub-neg15.5
Applied distribute-lft-in15.5
Simplified15.5
Simplified12.3
rmApplied associate-*l*9.5
if 1.841813406452417e-51 < x Initial program 8.1
rmApplied sub-neg8.1
Applied distribute-lft-in8.1
Simplified8.4
Final simplification9.1
herbie shell --seed 2019306
(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)))))