\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}\;c \le -5478662367150612676608:\\
\;\;\;\;\left(\left(y \cdot z - t \cdot a\right) \cdot x - \sqrt[3]{z \cdot c - i \cdot a} \cdot \left(\left(\sqrt[3]{z \cdot c - i \cdot a} \cdot \sqrt[3]{z \cdot c - i \cdot a}\right) \cdot b\right)\right) + \left(\left(\left(-y\right) \cdot j\right) \cdot i + j \cdot \left(t \cdot c\right)\right)\\
\mathbf{elif}\;c \le -6.535140165540710269045334632618486765212 \cdot 10^{-32}:\\
\;\;\;\;\left(t \cdot c - i \cdot y\right) \cdot j + \left(z \cdot c - i \cdot a\right) \cdot \left(-b\right)\\
\mathbf{else}:\\
\;\;\;\;\left(j \cdot \left(t \cdot c\right) + \left(-j \cdot \left(i \cdot y\right)\right)\right) + \left(\left(y \cdot z - t \cdot a\right) \cdot x - \left(\left(\left(\sqrt[3]{\sqrt[3]{z \cdot c - i \cdot a} \cdot \sqrt[3]{z \cdot c - i \cdot a}} \cdot \sqrt[3]{\sqrt[3]{z \cdot c - i \cdot a}}\right) \cdot \sqrt[3]{z \cdot c - i \cdot a}\right) \cdot b\right) \cdot \sqrt[3]{z \cdot c - i \cdot a}\right)\\
\end{array}double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r26300277 = x;
double r26300278 = y;
double r26300279 = z;
double r26300280 = r26300278 * r26300279;
double r26300281 = t;
double r26300282 = a;
double r26300283 = r26300281 * r26300282;
double r26300284 = r26300280 - r26300283;
double r26300285 = r26300277 * r26300284;
double r26300286 = b;
double r26300287 = c;
double r26300288 = r26300287 * r26300279;
double r26300289 = i;
double r26300290 = r26300289 * r26300282;
double r26300291 = r26300288 - r26300290;
double r26300292 = r26300286 * r26300291;
double r26300293 = r26300285 - r26300292;
double r26300294 = j;
double r26300295 = r26300287 * r26300281;
double r26300296 = r26300289 * r26300278;
double r26300297 = r26300295 - r26300296;
double r26300298 = r26300294 * r26300297;
double r26300299 = r26300293 + r26300298;
return r26300299;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r26300300 = c;
double r26300301 = -5.478662367150613e+21;
bool r26300302 = r26300300 <= r26300301;
double r26300303 = y;
double r26300304 = z;
double r26300305 = r26300303 * r26300304;
double r26300306 = t;
double r26300307 = a;
double r26300308 = r26300306 * r26300307;
double r26300309 = r26300305 - r26300308;
double r26300310 = x;
double r26300311 = r26300309 * r26300310;
double r26300312 = r26300304 * r26300300;
double r26300313 = i;
double r26300314 = r26300313 * r26300307;
double r26300315 = r26300312 - r26300314;
double r26300316 = cbrt(r26300315);
double r26300317 = r26300316 * r26300316;
double r26300318 = b;
double r26300319 = r26300317 * r26300318;
double r26300320 = r26300316 * r26300319;
double r26300321 = r26300311 - r26300320;
double r26300322 = -r26300303;
double r26300323 = j;
double r26300324 = r26300322 * r26300323;
double r26300325 = r26300324 * r26300313;
double r26300326 = r26300306 * r26300300;
double r26300327 = r26300323 * r26300326;
double r26300328 = r26300325 + r26300327;
double r26300329 = r26300321 + r26300328;
double r26300330 = -6.53514016554071e-32;
bool r26300331 = r26300300 <= r26300330;
double r26300332 = r26300313 * r26300303;
double r26300333 = r26300326 - r26300332;
double r26300334 = r26300333 * r26300323;
double r26300335 = -r26300318;
double r26300336 = r26300315 * r26300335;
double r26300337 = r26300334 + r26300336;
double r26300338 = r26300323 * r26300332;
double r26300339 = -r26300338;
double r26300340 = r26300327 + r26300339;
double r26300341 = cbrt(r26300317);
double r26300342 = cbrt(r26300316);
double r26300343 = r26300341 * r26300342;
double r26300344 = r26300343 * r26300316;
double r26300345 = r26300344 * r26300318;
double r26300346 = r26300345 * r26300316;
double r26300347 = r26300311 - r26300346;
double r26300348 = r26300340 + r26300347;
double r26300349 = r26300331 ? r26300337 : r26300348;
double r26300350 = r26300302 ? r26300329 : r26300349;
return r26300350;
}




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
| Original | 12.2 |
|---|---|
| Target | 16.1 |
| Herbie | 13.1 |
if c < -5.478662367150613e+21Initial program 16.7
rmApplied add-cube-cbrt17.0
Applied associate-*r*17.0
rmApplied sub-neg17.0
Applied distribute-rgt-in17.0
rmApplied distribute-rgt-neg-in17.0
Applied associate-*l*17.1
if -5.478662367150613e+21 < c < -6.53514016554071e-32Initial program 10.3
Taylor expanded around 0 23.3
if -6.53514016554071e-32 < c Initial program 11.2
rmApplied add-cube-cbrt11.5
Applied associate-*r*11.5
rmApplied sub-neg11.5
Applied distribute-rgt-in11.5
rmApplied add-cube-cbrt11.5
Applied cbrt-prod11.6
Final simplification13.1
herbie shell --seed 2019170
(FPCore (x y z t a b c i j)
:name "Linear.Matrix:det33 from linear-1.19.1.3"
:herbie-target
(if (< t -8.120978919195912e-33) (- (* x (- (* z y) (* a t))) (- (* b (- (* z c) (* a i))) (* (- (* c t) (* y i)) j))) (if (< t -4.712553818218485e-169) (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (/ (* j (- (pow (* c t) 2.0) (pow (* i y) 2.0))) (+ (* c t) (* i y)))) (if (< t -7.633533346031584e-308) (- (* x (- (* z y) (* a t))) (- (* b (- (* z c) (* a i))) (* (- (* c t) (* y i)) j))) (if (< t 1.0535888557455487e-139) (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (/ (* j (- (pow (* c t) 2.0) (pow (* i y) 2.0))) (+ (* c t) (* i y)))) (- (* x (- (* z y) (* a t))) (- (* b (- (* z c) (* a i))) (* (- (* c t) (* y i)) j)))))))
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))