\frac{x + y \cdot \left(z - x\right)}{z}\mathsf{fma}\left(\frac{x}{z}, -y, \frac{x}{z}\right) + ydouble f(double x, double y, double z) {
double r34908261 = x;
double r34908262 = y;
double r34908263 = z;
double r34908264 = r34908263 - r34908261;
double r34908265 = r34908262 * r34908264;
double r34908266 = r34908261 + r34908265;
double r34908267 = r34908266 / r34908263;
return r34908267;
}
double f(double x, double y, double z) {
double r34908268 = x;
double r34908269 = z;
double r34908270 = r34908268 / r34908269;
double r34908271 = y;
double r34908272 = -r34908271;
double r34908273 = fma(r34908270, r34908272, r34908270);
double r34908274 = r34908273 + r34908271;
return r34908274;
}




Bits error versus x




Bits error versus y




Bits error versus z
| Original | 10.5 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 10.5
Simplified10.5
Taylor expanded around 0 3.6
Simplified0.0
Final simplification0.0
herbie shell --seed 2019165 +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))