\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{1}{\sqrt{x}} \cdot \frac{1}{\sqrt{x + 1} \cdot \sqrt{x} + \left(x + 1\right)}double f(double x) {
double r127565 = 1.0;
double r127566 = x;
double r127567 = sqrt(r127566);
double r127568 = r127565 / r127567;
double r127569 = r127566 + r127565;
double r127570 = sqrt(r127569);
double r127571 = r127565 / r127570;
double r127572 = r127568 - r127571;
return r127572;
}
double f(double x) {
double r127573 = 1.0;
double r127574 = x;
double r127575 = sqrt(r127574);
double r127576 = r127573 / r127575;
double r127577 = r127574 + r127573;
double r127578 = sqrt(r127577);
double r127579 = r127578 * r127575;
double r127580 = r127579 + r127577;
double r127581 = r127573 / r127580;
double r127582 = r127576 * r127581;
return r127582;
}




Bits error versus x
Results
| Original | 19.6 |
|---|---|
| Target | 0.7 |
| Herbie | 0.3 |
Initial program 19.6
rmApplied frac-sub19.6
Simplified19.6
rmApplied flip--19.4
Simplified19.0
Taylor expanded around 0 0.4
rmApplied times-frac0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2020049
(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)))))