\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}\;b \le -418713864343.68804931640625:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{t \cdot c - y \cdot i} \cdot \left(\sqrt[3]{t \cdot c - y \cdot i} \cdot \sqrt[3]{t \cdot c - y \cdot i}\right), j, \mathsf{fma}\left(a \cdot i - z \cdot c, b, \left(y \cdot z - a \cdot t\right) \cdot x\right)\right)\\
\mathbf{elif}\;b \le -5.773525167388780290184618287791244901908 \cdot 10^{-11}:\\
\;\;\;\;z \cdot \left(x \cdot y - c \cdot b\right) - t \cdot \left(a \cdot x\right)\\
\mathbf{elif}\;b \le -1.057363907468381250814663089969603877706 \cdot 10^{-96}:\\
\;\;\;\;\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - z \cdot c, b, \sqrt[3]{x} \cdot \left(\left(y \cdot z - a \cdot t\right) \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)\right)\right)\right)\\
\mathbf{elif}\;b \le 5.249314572033981894177886147892417816116 \cdot 10^{-261}:\\
\;\;\;\;\mathsf{fma}\left(t \cdot c - y \cdot i, j, z \cdot \left(x \cdot y - c \cdot b\right) - \left(t \cdot x\right) \cdot a\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{t \cdot c - y \cdot i} \cdot \left(\sqrt[3]{t \cdot c - y \cdot i} \cdot \sqrt[3]{t \cdot c - y \cdot i}\right), j, \mathsf{fma}\left(a \cdot i - z \cdot c, b, \left(y \cdot z - a \cdot t\right) \cdot x\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 r4591235 = x;
double r4591236 = y;
double r4591237 = z;
double r4591238 = r4591236 * r4591237;
double r4591239 = t;
double r4591240 = a;
double r4591241 = r4591239 * r4591240;
double r4591242 = r4591238 - r4591241;
double r4591243 = r4591235 * r4591242;
double r4591244 = b;
double r4591245 = c;
double r4591246 = r4591245 * r4591237;
double r4591247 = i;
double r4591248 = r4591247 * r4591240;
double r4591249 = r4591246 - r4591248;
double r4591250 = r4591244 * r4591249;
double r4591251 = r4591243 - r4591250;
double r4591252 = j;
double r4591253 = r4591245 * r4591239;
double r4591254 = r4591247 * r4591236;
double r4591255 = r4591253 - r4591254;
double r4591256 = r4591252 * r4591255;
double r4591257 = r4591251 + r4591256;
return r4591257;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r4591258 = b;
double r4591259 = -418713864343.68805;
bool r4591260 = r4591258 <= r4591259;
double r4591261 = t;
double r4591262 = c;
double r4591263 = r4591261 * r4591262;
double r4591264 = y;
double r4591265 = i;
double r4591266 = r4591264 * r4591265;
double r4591267 = r4591263 - r4591266;
double r4591268 = cbrt(r4591267);
double r4591269 = r4591268 * r4591268;
double r4591270 = r4591268 * r4591269;
double r4591271 = j;
double r4591272 = a;
double r4591273 = r4591272 * r4591265;
double r4591274 = z;
double r4591275 = r4591274 * r4591262;
double r4591276 = r4591273 - r4591275;
double r4591277 = r4591264 * r4591274;
double r4591278 = r4591272 * r4591261;
double r4591279 = r4591277 - r4591278;
double r4591280 = x;
double r4591281 = r4591279 * r4591280;
double r4591282 = fma(r4591276, r4591258, r4591281);
double r4591283 = fma(r4591270, r4591271, r4591282);
double r4591284 = -5.77352516738878e-11;
bool r4591285 = r4591258 <= r4591284;
double r4591286 = r4591280 * r4591264;
double r4591287 = r4591262 * r4591258;
double r4591288 = r4591286 - r4591287;
double r4591289 = r4591274 * r4591288;
double r4591290 = r4591272 * r4591280;
double r4591291 = r4591261 * r4591290;
double r4591292 = r4591289 - r4591291;
double r4591293 = -1.0573639074683813e-96;
bool r4591294 = r4591258 <= r4591293;
double r4591295 = cbrt(r4591280);
double r4591296 = r4591295 * r4591295;
double r4591297 = r4591279 * r4591296;
double r4591298 = r4591295 * r4591297;
double r4591299 = fma(r4591276, r4591258, r4591298);
double r4591300 = fma(r4591267, r4591271, r4591299);
double r4591301 = 5.249314572033982e-261;
bool r4591302 = r4591258 <= r4591301;
double r4591303 = r4591261 * r4591280;
double r4591304 = r4591303 * r4591272;
double r4591305 = r4591289 - r4591304;
double r4591306 = fma(r4591267, r4591271, r4591305);
double r4591307 = r4591302 ? r4591306 : r4591283;
double r4591308 = r4591294 ? r4591300 : r4591307;
double r4591309 = r4591285 ? r4591292 : r4591308;
double r4591310 = r4591260 ? r4591283 : r4591309;
return r4591310;
}



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 b < -418713864343.68805 or 5.249314572033982e-261 < b Initial program 10.2
Simplified10.2
rmApplied add-cube-cbrt10.5
if -418713864343.68805 < b < -5.77352516738878e-11Initial program 12.4
Simplified12.4
rmApplied add-cube-cbrt12.7
Applied associate-*r*12.7
rmApplied add-cube-cbrt12.8
Taylor expanded around inf 31.0
Simplified29.7
if -5.77352516738878e-11 < b < -1.0573639074683813e-96Initial program 13.2
Simplified13.2
rmApplied add-cube-cbrt13.5
Applied associate-*r*13.5
if -1.0573639074683813e-96 < b < 5.249314572033982e-261Initial program 17.1
Simplified17.1
Taylor expanded around inf 14.9
Simplified13.4
Final simplification11.8
herbie shell --seed 2019171 +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)))))