\frac{x - y}{\left(x \cdot 2\right) \cdot y}\mathsf{fma}\left(\frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}}, \frac{\sqrt[3]{1}}{\sqrt{2} \cdot y}, -\frac{1}{2} \cdot \frac{1}{x}\right) + \mathsf{fma}\left(-\frac{1}{2}, \frac{1}{x}, \frac{1}{2} \cdot \frac{1}{x}\right)double code(double x, double y) {
return ((double) (((double) (x - y)) / ((double) (((double) (x * 2.0)) * y))));
}
double code(double x, double y) {
return ((double) (((double) fma(((double) (((double) (1.0 / ((double) sqrt(((double) sqrt(2.0)))))) / ((double) sqrt(((double) sqrt(2.0)))))), ((double) (((double) cbrt(1.0)) / ((double) (((double) sqrt(2.0)) * y)))), ((double) -(((double) (((double) (1.0 / 2.0)) * ((double) (1.0 / x)))))))) + ((double) fma(((double) -(((double) (1.0 / 2.0)))), ((double) (1.0 / x)), ((double) (((double) (1.0 / 2.0)) * ((double) (1.0 / x))))))));
}




Bits error versus x




Bits error versus y
Results
| Original | 14.7 |
|---|---|
| Target | 0.0 |
| Herbie | 0.2 |
Initial program 14.7
rmApplied div-sub14.7
Simplified11.0
Simplified0.0
rmApplied *-un-lft-identity0.0
Applied times-frac0.0
Applied add-sqr-sqrt0.6
Applied associate-*l*0.4
Applied add-cube-cbrt0.4
Applied times-frac0.5
Applied prod-diff0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.2
Applied associate-/r*0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020114 +o rules:numerics
(FPCore (x y)
:name "Linear.Projection:inversePerspective from linear-1.19.1.3, B"
:precision binary64
:herbie-target
(- (/ 0.5 y) (/ 0.5 x))
(/ (- x y) (* (* x 2) y)))