\frac{x + y \cdot \left(z - x\right)}{z}\left(y + \frac{-\frac{x}{z}}{\frac{1}{y}}\right) + \frac{x}{z}double f(double x, double y, double z) {
double r511263 = x;
double r511264 = y;
double r511265 = z;
double r511266 = r511265 - r511263;
double r511267 = r511264 * r511266;
double r511268 = r511263 + r511267;
double r511269 = r511268 / r511265;
return r511269;
}
double f(double x, double y, double z) {
double r511270 = y;
double r511271 = x;
double r511272 = z;
double r511273 = r511271 / r511272;
double r511274 = -r511273;
double r511275 = 1.0;
double r511276 = r511275 / r511270;
double r511277 = r511274 / r511276;
double r511278 = r511270 + r511277;
double r511279 = r511278 + r511273;
return r511279;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 10.5 |
|---|---|
| Target | 0.0 |
| Herbie | 0.1 |
Initial program 10.5
Simplified10.5
Taylor expanded around 0 3.4
Simplified0.0
rmApplied fma-udef0.0
Simplified3.1
rmApplied div-inv3.1
Applied associate-/r*0.1
Final simplification0.1
herbie shell --seed 2019179 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.Backend.Rasterific:rasterificRadialGradient from diagrams-rasterific-1.3.1.3"
:herbie-target
(- (+ y (/ x z)) (/ y (/ z x)))
(/ (+ x (* y (- z x))) z))