\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)
\mathsf{fma}\left(j, \left(\mathsf{fma}\left(t, c, \left(\left(-i\right) \cdot y\right)\right)\right), \left(\left(\sqrt[3]{x \cdot \left(z \cdot y - a \cdot t\right)} \cdot \sqrt[3]{x \cdot \left(z \cdot y - a \cdot t\right)}\right) \cdot \left(\sqrt[3]{z \cdot y - a \cdot t} \cdot \sqrt[3]{x}\right) - \left(c \cdot z - i \cdot a\right) \cdot b\right)\right)double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r12397318 = x;
double r12397319 = y;
double r12397320 = z;
double r12397321 = r12397319 * r12397320;
double r12397322 = t;
double r12397323 = a;
double r12397324 = r12397322 * r12397323;
double r12397325 = r12397321 - r12397324;
double r12397326 = r12397318 * r12397325;
double r12397327 = b;
double r12397328 = c;
double r12397329 = r12397328 * r12397320;
double r12397330 = i;
double r12397331 = r12397330 * r12397323;
double r12397332 = r12397329 - r12397331;
double r12397333 = r12397327 * r12397332;
double r12397334 = r12397326 - r12397333;
double r12397335 = j;
double r12397336 = r12397328 * r12397322;
double r12397337 = r12397330 * r12397319;
double r12397338 = r12397336 - r12397337;
double r12397339 = r12397335 * r12397338;
double r12397340 = r12397334 + r12397339;
return r12397340;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r12397341 = j;
double r12397342 = t;
double r12397343 = c;
double r12397344 = i;
double r12397345 = -r12397344;
double r12397346 = y;
double r12397347 = r12397345 * r12397346;
double r12397348 = fma(r12397342, r12397343, r12397347);
double r12397349 = x;
double r12397350 = z;
double r12397351 = r12397350 * r12397346;
double r12397352 = a;
double r12397353 = r12397352 * r12397342;
double r12397354 = r12397351 - r12397353;
double r12397355 = r12397349 * r12397354;
double r12397356 = cbrt(r12397355);
double r12397357 = r12397356 * r12397356;
double r12397358 = cbrt(r12397354);
double r12397359 = cbrt(r12397349);
double r12397360 = r12397358 * r12397359;
double r12397361 = r12397357 * r12397360;
double r12397362 = r12397343 * r12397350;
double r12397363 = r12397344 * r12397352;
double r12397364 = r12397362 - r12397363;
double r12397365 = b;
double r12397366 = r12397364 * r12397365;
double r12397367 = r12397361 - r12397366;
double r12397368 = fma(r12397341, r12397348, r12397367);
return r12397368;
}



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
Initial program 11.7
Simplified11.7
rmApplied fma-neg11.7
rmApplied add-cube-cbrt11.9
rmApplied cbrt-prod11.9
rmApplied *-un-lft-identity11.9
Final simplification11.9
herbie shell --seed 2019107 +o rules:numerics
(FPCore (x y z t a b c i j)
:name "Linear.Matrix:det33 from linear-1.19.1.3"
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))