\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{1}{\left(x + 1\right) \cdot \left(x \cdot \left(\frac{1}{\sqrt{x}} + \frac{1}{\sqrt{x + 1}}\right)\right)}double f(double x) {
double r4026558 = 1.0;
double r4026559 = x;
double r4026560 = sqrt(r4026559);
double r4026561 = r4026558 / r4026560;
double r4026562 = r4026559 + r4026558;
double r4026563 = sqrt(r4026562);
double r4026564 = r4026558 / r4026563;
double r4026565 = r4026561 - r4026564;
return r4026565;
}
double f(double x) {
double r4026566 = 1.0;
double r4026567 = x;
double r4026568 = r4026567 + r4026566;
double r4026569 = sqrt(r4026567);
double r4026570 = r4026566 / r4026569;
double r4026571 = sqrt(r4026568);
double r4026572 = r4026566 / r4026571;
double r4026573 = r4026570 + r4026572;
double r4026574 = r4026567 * r4026573;
double r4026575 = r4026568 * r4026574;
double r4026576 = r4026566 / r4026575;
return r4026576;
}




Bits error versus x
Results
| Original | 20.2 |
|---|---|
| Target | 0.7 |
| Herbie | 0.8 |
Initial program 20.2
rmApplied flip--20.2
rmApplied frac-times25.1
Applied frac-times20.3
Applied frac-sub20.2
Simplified19.7
Simplified19.7
rmApplied div-inv19.7
Applied associate-/l*19.7
Simplified19.7
Taylor expanded around -inf 0.8
Final simplification0.8
herbie shell --seed 2019132
(FPCore (x)
:name "2isqrt (example 3.6)"
:herbie-target
(/ 1 (+ (* (+ x 1) (sqrt x)) (* x (sqrt (+ x 1)))))
(- (/ 1 (sqrt x)) (/ 1 (sqrt (+ x 1)))))