\sqrt{x + 1} - \sqrt{x}\frac{1}{\sqrt{\sqrt{x + 1} + \sqrt{x}}} \cdot \sqrt{\frac{1}{\sqrt{x + 1} + \sqrt{x}}}double f(double x) {
double r2165401 = x;
double r2165402 = 1.0;
double r2165403 = r2165401 + r2165402;
double r2165404 = sqrt(r2165403);
double r2165405 = sqrt(r2165401);
double r2165406 = r2165404 - r2165405;
return r2165406;
}
double f(double x) {
double r2165407 = 1.0;
double r2165408 = x;
double r2165409 = r2165408 + r2165407;
double r2165410 = sqrt(r2165409);
double r2165411 = sqrt(r2165408);
double r2165412 = r2165410 + r2165411;
double r2165413 = sqrt(r2165412);
double r2165414 = r2165407 / r2165413;
double r2165415 = r2165407 / r2165412;
double r2165416 = sqrt(r2165415);
double r2165417 = r2165414 * r2165416;
return r2165417;
}




Bits error versus x
Results
| Original | 29.0 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 29.0
rmApplied flip--28.8
Simplified0.2
rmApplied add-sqr-sqrt0.3
rmApplied sqrt-div0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019130
(FPCore (x)
:name "2sqrt (example 3.1)"
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))