\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{1}{\sqrt{x}} \cdot \frac{1}{\sqrt{x} \cdot \sqrt{x + 1} + \left(x + 1\right)}double f(double x) {
double r210295 = 1.0;
double r210296 = x;
double r210297 = sqrt(r210296);
double r210298 = r210295 / r210297;
double r210299 = r210296 + r210295;
double r210300 = sqrt(r210299);
double r210301 = r210295 / r210300;
double r210302 = r210298 - r210301;
return r210302;
}
double f(double x) {
double r210303 = 1.0;
double r210304 = x;
double r210305 = sqrt(r210304);
double r210306 = r210303 / r210305;
double r210307 = r210304 + r210303;
double r210308 = sqrt(r210307);
double r210309 = r210305 * r210308;
double r210310 = r210309 + r210307;
double r210311 = r210303 / r210310;
double r210312 = r210306 * r210311;
return r210312;
}




Bits error versus x
Results
| Original | 20.0 |
|---|---|
| Target | 0.6 |
| Herbie | 0.3 |
Initial program 20.0
rmApplied frac-sub20.0
Simplified20.0
rmApplied flip--19.8
Simplified19.2
Taylor expanded around 0 0.4
rmApplied times-frac0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2020045
(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)))))