\frac{x + y \cdot \left(z - x\right)}{z}\mathsf{fma}\left(1, \frac{x}{z} + y, \frac{x}{z} \cdot \left(-y\right)\right)double f(double x, double y, double z) {
double r477264 = x;
double r477265 = y;
double r477266 = z;
double r477267 = r477266 - r477264;
double r477268 = r477265 * r477267;
double r477269 = r477264 + r477268;
double r477270 = r477269 / r477266;
return r477270;
}
double f(double x, double y, double z) {
double r477271 = 1.0;
double r477272 = x;
double r477273 = z;
double r477274 = r477272 / r477273;
double r477275 = y;
double r477276 = r477274 + r477275;
double r477277 = -r477275;
double r477278 = r477274 * r477277;
double r477279 = fma(r477271, r477276, r477278);
return r477279;
}




Bits error versus x




Bits error versus y




Bits error versus z
| Original | 10.2 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 10.2
Simplified10.2
Taylor expanded around 0 3.3
rmApplied *-un-lft-identity3.3
Applied fma-neg3.3
Simplified0.0
Final simplification0.0
herbie shell --seed 2019323 +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))