\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)
\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)
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r376252 = x;
double r376253 = y;
double r376254 = z;
double r376255 = r376253 * r376254;
double r376256 = t;
double r376257 = a;
double r376258 = r376256 * r376257;
double r376259 = r376255 - r376258;
double r376260 = r376252 * r376259;
double r376261 = b;
double r376262 = c;
double r376263 = r376262 * r376254;
double r376264 = i;
double r376265 = r376264 * r376257;
double r376266 = r376263 - r376265;
double r376267 = r376261 * r376266;
double r376268 = r376260 - r376267;
double r376269 = j;
double r376270 = r376262 * r376256;
double r376271 = r376264 * r376253;
double r376272 = r376270 - r376271;
double r376273 = r376269 * r376272;
double r376274 = r376268 + r376273;
return r376274;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r376275 = x;
double r376276 = y;
double r376277 = z;
double r376278 = r376276 * r376277;
double r376279 = t;
double r376280 = a;
double r376281 = r376279 * r376280;
double r376282 = r376278 - r376281;
double r376283 = r376275 * r376282;
double r376284 = b;
double r376285 = c;
double r376286 = r376285 * r376277;
double r376287 = i;
double r376288 = r376287 * r376280;
double r376289 = r376286 - r376288;
double r376290 = r376284 * r376289;
double r376291 = r376283 - r376290;
double r376292 = j;
double r376293 = r376285 * r376279;
double r376294 = r376287 * r376276;
double r376295 = r376293 - r376294;
double r376296 = r376292 * r376295;
double r376297 = r376291 + r376296;
return r376297;
}




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.3 |
|---|---|
| Target | 16.3 |
| Herbie | 12.3 |
if z < -9.210072683042902e+197 or 112.17173264432692 < z Initial program 19.0
rmApplied sub-neg19.0
Applied distribute-lft-in19.0
Simplified18.0
rmApplied associate-*r*13.5
if -9.210072683042902e+197 < z < -2.363984397184064e-225Initial program 11.3
rmApplied sub-neg11.3
Applied distribute-lft-in11.3
Simplified11.6
rmApplied sub-neg11.6
Applied distribute-rgt-in11.6
Simplified12.1
Simplified11.6
if -2.363984397184064e-225 < z < 1.2726446353115491e-186Initial program 9.3
rmApplied sub-neg9.3
Applied distribute-lft-in9.3
Simplified10.2
rmApplied add-cube-cbrt10.3
if 1.2726446353115491e-186 < z < 112.17173264432692Initial program 8.5
rmApplied sub-neg8.5
Applied distribute-lft-in8.5
Simplified8.4
Final simplification12.3
herbie shell --seed 2019291
(FPCore (x y z t a b c i j)
:name "Linear.Matrix:det33 from linear-1.19.1.3"
:precision binary64
:herbie-target
(if (< t -8.1209789191959122e-33) (- (* x (- (* z y) (* a t))) (- (* b (- (* z c) (* a i))) (* (- (* c t) (* y i)) j))) (if (< t -4.7125538182184851e-169) (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (/ (* j (- (pow (* c t) 2) (pow (* i y) 2))) (+ (* c t) (* i y)))) (if (< t -7.63353334603158369e-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) (pow (* i y) 2))) (+ (* 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)))))