\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 r34942160 = x;
double r34942161 = y;
double r34942162 = z;
double r34942163 = r34942162 - r34942160;
double r34942164 = r34942161 * r34942163;
double r34942165 = r34942160 + r34942164;
double r34942166 = r34942165 / r34942162;
return r34942166;
}
double f(double x, double y, double z) {
double r34942167 = x;
double r34942168 = z;
double r34942169 = r34942167 / r34942168;
double r34942170 = y;
double r34942171 = -r34942170;
double r34942172 = fma(r34942169, r34942171, r34942169);
double r34942173 = r34942172 + r34942170;
return r34942173;
}




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