\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{1 \cdot \frac{1 + \left(x - x\right)}{\sqrt{x + 1} + \sqrt{x}}}{\sqrt{x + 1} \cdot \sqrt{x}}double f(double x) {
double r92475 = 1.0;
double r92476 = x;
double r92477 = sqrt(r92476);
double r92478 = r92475 / r92477;
double r92479 = r92476 + r92475;
double r92480 = sqrt(r92479);
double r92481 = r92475 / r92480;
double r92482 = r92478 - r92481;
return r92482;
}
double f(double x) {
double r92483 = 1.0;
double r92484 = x;
double r92485 = r92484 - r92484;
double r92486 = r92483 + r92485;
double r92487 = r92484 + r92483;
double r92488 = sqrt(r92487);
double r92489 = sqrt(r92484);
double r92490 = r92488 + r92489;
double r92491 = r92486 / r92490;
double r92492 = r92483 * r92491;
double r92493 = r92488 * r92489;
double r92494 = r92492 / r92493;
return r92494;
}




Bits error versus x
Results
| Original | 19.6 |
|---|---|
| Target | 0.6 |
| Herbie | 0.4 |
Initial program 19.6
rmApplied frac-sub19.6
Simplified19.6
Simplified19.6
rmApplied flip--19.5
Simplified0.4
Final simplification0.4
herbie shell --seed 2019195
(FPCore (x)
:name "2isqrt (example 3.6)"
:herbie-target
(/ 1.0 (+ (* (+ x 1.0) (sqrt x)) (* x (sqrt (+ x 1.0)))))
(- (/ 1.0 (sqrt x)) (/ 1.0 (sqrt (+ x 1.0)))))