\frac{x + y \cdot \left(z - x\right)}{z}\mathsf{fma}\left(\frac{x}{z}, 1 - y, y\right)double f(double x, double y, double z) {
double r539043 = x;
double r539044 = y;
double r539045 = z;
double r539046 = r539045 - r539043;
double r539047 = r539044 * r539046;
double r539048 = r539043 + r539047;
double r539049 = r539048 / r539045;
return r539049;
}
double f(double x, double y, double z) {
double r539050 = x;
double r539051 = z;
double r539052 = r539050 / r539051;
double r539053 = 1.0;
double r539054 = y;
double r539055 = r539053 - r539054;
double r539056 = fma(r539052, r539055, r539054);
return r539056;
}




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
Taylor expanded around 0 3.9
Simplified3.9
rmApplied *-un-lft-identity3.9
Applied times-frac0.0
Applied *-un-lft-identity0.0
Applied distribute-rgt-out--0.0
Applied fma-def0.0
Final simplification0.0
herbie shell --seed 2019174 +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))