\sqrt{x + 1} - \sqrt{x}\frac{1}{\sqrt{x} + \left|\sqrt{x + 1}\right|}double f(double x) {
double r2975472 = x;
double r2975473 = 1.0;
double r2975474 = r2975472 + r2975473;
double r2975475 = sqrt(r2975474);
double r2975476 = sqrt(r2975472);
double r2975477 = r2975475 - r2975476;
return r2975477;
}
double f(double x) {
double r2975478 = 1.0;
double r2975479 = x;
double r2975480 = sqrt(r2975479);
double r2975481 = r2975479 + r2975478;
double r2975482 = sqrt(r2975481);
double r2975483 = fabs(r2975482);
double r2975484 = r2975480 + r2975483;
double r2975485 = r2975478 / r2975484;
return r2975485;
}




Bits error versus x
Results
| Original | 29.4 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 29.4
rmApplied flip--29.3
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied rem-sqrt-square0.2
Final simplification0.2
herbie shell --seed 2019146 +o rules:numerics
(FPCore (x)
:name "2sqrt (example 3.1)"
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))