\frac{x + y \cdot \left(z - x\right)}{z}\left(\left(\frac{x}{z} + y\right) - \frac{x}{z} \cdot y\right) + \left(\frac{x}{z} \cdot y\right) \cdot 0double f(double x, double y, double z) {
double r1230389 = x;
double r1230390 = y;
double r1230391 = z;
double r1230392 = r1230391 - r1230389;
double r1230393 = r1230390 * r1230392;
double r1230394 = r1230389 + r1230393;
double r1230395 = r1230394 / r1230391;
return r1230395;
}
double f(double x, double y, double z) {
double r1230396 = x;
double r1230397 = z;
double r1230398 = r1230396 / r1230397;
double r1230399 = y;
double r1230400 = r1230398 + r1230399;
double r1230401 = r1230398 * r1230399;
double r1230402 = r1230400 - r1230401;
double r1230403 = 0.0;
double r1230404 = r1230401 * r1230403;
double r1230405 = r1230402 + r1230404;
return r1230405;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 10.3 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 10.3
Taylor expanded around 0 3.5
rmApplied add-cube-cbrt3.6
Applied add-sqr-sqrt33.9
Applied prod-diff33.9
Simplified3.5
Simplified0.0
Final simplification0.0
herbie shell --seed 2019235 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.Backend.Rasterific:rasterificRadialGradient from diagrams-rasterific-1.3.1.3"
:precision binary64
:herbie-target
(- (+ y (/ x z)) (/ y (/ z x)))
(/ (+ x (* y (- z x))) z))