\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{1}{\sqrt{x}} \cdot \frac{1}{\left(x + 1\right) + \sqrt{x + 1} \cdot \sqrt{x}}double f(double x) {
double r166224 = 1.0;
double r166225 = x;
double r166226 = sqrt(r166225);
double r166227 = r166224 / r166226;
double r166228 = r166225 + r166224;
double r166229 = sqrt(r166228);
double r166230 = r166224 / r166229;
double r166231 = r166227 - r166230;
return r166231;
}
double f(double x) {
double r166232 = 1.0;
double r166233 = x;
double r166234 = sqrt(r166233);
double r166235 = r166232 / r166234;
double r166236 = r166233 + r166232;
double r166237 = sqrt(r166236);
double r166238 = r166237 * r166234;
double r166239 = r166236 + r166238;
double r166240 = r166232 / r166239;
double r166241 = r166235 * r166240;
return r166241;
}




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