\frac{x + y \cdot \left(z - x\right)}{z}\mathsf{fma}\left(\frac{x}{z}, -y, y + \frac{x}{z}\right)double f(double x, double y, double z) {
double r37840974 = x;
double r37840975 = y;
double r37840976 = z;
double r37840977 = r37840976 - r37840974;
double r37840978 = r37840975 * r37840977;
double r37840979 = r37840974 + r37840978;
double r37840980 = r37840979 / r37840976;
return r37840980;
}
double f(double x, double y, double z) {
double r37840981 = x;
double r37840982 = z;
double r37840983 = r37840981 / r37840982;
double r37840984 = y;
double r37840985 = -r37840984;
double r37840986 = r37840984 + r37840983;
double r37840987 = fma(r37840983, r37840985, r37840986);
return r37840987;
}




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.5
Simplified0.0
Final simplification0.0
herbie shell --seed 2019172 +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))