x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - \frac{y}{z - \frac{y}{\frac{2}{\frac{t}{z}}}}(FPCore (x y z t) :precision binary64 (- x (/ (* (* y 2.0) z) (- (* (* z 2.0) z) (* y t)))))
(FPCore (x y z t) :precision binary64 (- x (/ y (- z (/ y (/ 2.0 (/ t z)))))))
double code(double x, double y, double z, double t) {
return x - (((y * 2.0) * z) / (((z * 2.0) * z) - (y * t)));
}
double code(double x, double y, double z, double t) {
return x - (y / (z - (y / (2.0 / (t / z)))));
}









Bits error versus x









Bits error versus y









Bits error versus z









Bits error versus t
Results
| Original | 11.3 |
|---|---|
| Target | 0.1 |
| Herbie | 1.0 |
| Alternative 1 | |
|---|---|
| Error | 2.2 |
| Cost | 1160 |
| Alternative 2 | |
|---|---|
| Error | 7.2 |
| Cost | 776 |
| Alternative 3 | |
|---|---|
| Error | 23.5 |
| Cost | 320 |
| Alternative 4 | |
|---|---|
| Error | 60.7 |
| Cost | 385 |
| Alternative 5 | |
|---|---|
| Error | 61.7 |
| Cost | 64 |

Initial program 11.3
Simplified2.8
rmApplied associate-/l*_binary64_85481.0
Simplified1.0
Simplified1.0
Final simplification1.0
herbie shell --seed 2021044
(FPCore (x y z t)
:name "Numeric.AD.Rank1.Halley:findZero from ad-4.2.4"
:precision binary64
:herbie-target
(- x (/ 1.0 (- (/ z y) (/ (/ t 2.0) z))))
(- x (/ (* (* y 2.0) z) (- (* (* z 2.0) z) (* y t)))))