\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{\frac{1 \cdot 1}{\sqrt{x} \cdot \sqrt{x + 1} + x}}{\sqrt{x + 1}}double f(double x) {
double r121354 = 1.0;
double r121355 = x;
double r121356 = sqrt(r121355);
double r121357 = r121354 / r121356;
double r121358 = r121355 + r121354;
double r121359 = sqrt(r121358);
double r121360 = r121354 / r121359;
double r121361 = r121357 - r121360;
return r121361;
}
double f(double x) {
double r121362 = 1.0;
double r121363 = r121362 * r121362;
double r121364 = x;
double r121365 = sqrt(r121364);
double r121366 = r121364 + r121362;
double r121367 = sqrt(r121366);
double r121368 = r121365 * r121367;
double r121369 = r121368 + r121364;
double r121370 = r121363 / r121369;
double r121371 = r121370 / r121367;
return r121371;
}




Bits error versus x
Results
| Original | 20.0 |
|---|---|
| Target | 0.7 |
| Herbie | 0.3 |
Initial program 20.0
rmApplied frac-sub20.0
Simplified20.0
rmApplied flip--19.7
Simplified19.3
Taylor expanded around 0 0.4
rmApplied associate-/r*0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2020047
(FPCore (x)
:name "2isqrt (example 3.6)"
:precision binary64
:herbie-target
(/ 1 (+ (* (+ x 1) (sqrt x)) (* x (sqrt (+ x 1)))))
(- (/ 1 (sqrt x)) (/ 1 (sqrt (+ x 1)))))