\frac{4 \cdot \left(\left(x - y\right) - z \cdot 0.5\right)}{z}\mathsf{fma}\left(4, \frac{x}{z} - \frac{y}{z}, -2\right)double f(double x, double y, double z) {
double r1438920 = 4.0;
double r1438921 = x;
double r1438922 = y;
double r1438923 = r1438921 - r1438922;
double r1438924 = z;
double r1438925 = 0.5;
double r1438926 = r1438924 * r1438925;
double r1438927 = r1438923 - r1438926;
double r1438928 = r1438920 * r1438927;
double r1438929 = r1438928 / r1438924;
return r1438929;
}
double f(double x, double y, double z) {
double r1438930 = 4.0;
double r1438931 = x;
double r1438932 = z;
double r1438933 = r1438931 / r1438932;
double r1438934 = y;
double r1438935 = r1438934 / r1438932;
double r1438936 = r1438933 - r1438935;
double r1438937 = 2.0;
double r1438938 = -r1438937;
double r1438939 = fma(r1438930, r1438936, r1438938);
return r1438939;
}




Bits error versus x




Bits error versus y




Bits error versus z
| Original | 0.2 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.2
Taylor expanded around 0 0.0
Simplified0.0
rmApplied div-sub0.0
Final simplification0.0
herbie shell --seed 2020025 +o rules:numerics
(FPCore (x y z)
:name "Data.Array.Repa.Algorithms.ColorRamp:rampColorHotToCold from repa-algorithms-3.4.0.1, B"
:precision binary64
:herbie-target
(- (* 4 (/ x z)) (+ 2 (* 4 (/ y z))))
(/ (* 4 (- (- x y) (* z 0.5))) z))