\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}\;z \le -1.598051949792396904653419965913894074473 \cdot 10^{105}:\\
\;\;\;\;\left(z \cdot \left(x \cdot y - b \cdot c\right) - t \cdot \left(a \cdot x\right)\right) + \left(t \cdot c - y \cdot i\right) \cdot j\\
\mathbf{elif}\;z \le 1.201127816815718654143430033087724950747 \cdot 10^{-5}:\\
\;\;\;\;\mathsf{fma}\left(b, a \cdot i - c \cdot z, \sqrt[3]{x} \cdot \left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(y \cdot z - t \cdot a\right)\right)\right) + \left(t \cdot c - y \cdot i\right) \cdot j\\
\mathbf{else}:\\
\;\;\;\;\left(z \cdot \left(x \cdot y - b \cdot c\right) - t \cdot \left(a \cdot x\right)\right) + \left(t \cdot c - y \cdot i\right) \cdot j\\
\end{array}double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r4213234 = x;
double r4213235 = y;
double r4213236 = z;
double r4213237 = r4213235 * r4213236;
double r4213238 = t;
double r4213239 = a;
double r4213240 = r4213238 * r4213239;
double r4213241 = r4213237 - r4213240;
double r4213242 = r4213234 * r4213241;
double r4213243 = b;
double r4213244 = c;
double r4213245 = r4213244 * r4213236;
double r4213246 = i;
double r4213247 = r4213246 * r4213239;
double r4213248 = r4213245 - r4213247;
double r4213249 = r4213243 * r4213248;
double r4213250 = r4213242 - r4213249;
double r4213251 = j;
double r4213252 = r4213244 * r4213238;
double r4213253 = r4213246 * r4213235;
double r4213254 = r4213252 - r4213253;
double r4213255 = r4213251 * r4213254;
double r4213256 = r4213250 + r4213255;
return r4213256;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r4213257 = z;
double r4213258 = -1.598051949792397e+105;
bool r4213259 = r4213257 <= r4213258;
double r4213260 = x;
double r4213261 = y;
double r4213262 = r4213260 * r4213261;
double r4213263 = b;
double r4213264 = c;
double r4213265 = r4213263 * r4213264;
double r4213266 = r4213262 - r4213265;
double r4213267 = r4213257 * r4213266;
double r4213268 = t;
double r4213269 = a;
double r4213270 = r4213269 * r4213260;
double r4213271 = r4213268 * r4213270;
double r4213272 = r4213267 - r4213271;
double r4213273 = r4213268 * r4213264;
double r4213274 = i;
double r4213275 = r4213261 * r4213274;
double r4213276 = r4213273 - r4213275;
double r4213277 = j;
double r4213278 = r4213276 * r4213277;
double r4213279 = r4213272 + r4213278;
double r4213280 = 1.2011278168157187e-05;
bool r4213281 = r4213257 <= r4213280;
double r4213282 = r4213269 * r4213274;
double r4213283 = r4213264 * r4213257;
double r4213284 = r4213282 - r4213283;
double r4213285 = cbrt(r4213260);
double r4213286 = r4213285 * r4213285;
double r4213287 = r4213261 * r4213257;
double r4213288 = r4213268 * r4213269;
double r4213289 = r4213287 - r4213288;
double r4213290 = r4213286 * r4213289;
double r4213291 = r4213285 * r4213290;
double r4213292 = fma(r4213263, r4213284, r4213291);
double r4213293 = r4213292 + r4213278;
double r4213294 = r4213281 ? r4213293 : r4213279;
double r4213295 = r4213259 ? r4213279 : r4213294;
return r4213295;
}



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 z < -1.598051949792397e+105 or 1.2011278168157187e-05 < z Initial program 18.8
Simplified18.8
rmApplied fma-udef18.8
Taylor expanded around inf 18.1
Simplified12.4
if -1.598051949792397e+105 < z < 1.2011278168157187e-05Initial program 9.5
Simplified9.5
rmApplied fma-udef9.5
rmApplied add-cube-cbrt9.8
Applied associate-*r*9.8
Final simplification10.6
herbie shell --seed 2019179 +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)))))