\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{\frac{1}{\left(\sqrt{x + 1} + \sqrt{x}\right) \cdot \sqrt{x}}}{\sqrt{x + 1}}double f(double x) {
double r1964525 = 1.0;
double r1964526 = x;
double r1964527 = sqrt(r1964526);
double r1964528 = r1964525 / r1964527;
double r1964529 = r1964526 + r1964525;
double r1964530 = sqrt(r1964529);
double r1964531 = r1964525 / r1964530;
double r1964532 = r1964528 - r1964531;
return r1964532;
}
double f(double x) {
double r1964533 = 1.0;
double r1964534 = x;
double r1964535 = r1964534 + r1964533;
double r1964536 = sqrt(r1964535);
double r1964537 = sqrt(r1964534);
double r1964538 = r1964536 + r1964537;
double r1964539 = r1964538 * r1964537;
double r1964540 = r1964533 / r1964539;
double r1964541 = r1964540 / r1964536;
return r1964541;
}




Bits error versus x
Results
| Original | 20.1 |
|---|---|
| Target | 0.7 |
| Herbie | 0.4 |
Initial program 20.1
rmApplied frac-sub20.0
Simplified20.0
rmApplied flip--19.8
Simplified19.4
rmApplied associate-/r*19.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019151
(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)))))