\sqrt{x + 1} - \sqrt{x}\frac{1}{\sqrt{\sqrt{x + 1}} \cdot \sqrt{\sqrt{x + 1}} + \sqrt{x}}double f(double x) {
double r125564 = x;
double r125565 = 1.0;
double r125566 = r125564 + r125565;
double r125567 = sqrt(r125566);
double r125568 = sqrt(r125564);
double r125569 = r125567 - r125568;
return r125569;
}
double f(double x) {
double r125570 = 1.0;
double r125571 = x;
double r125572 = r125571 + r125570;
double r125573 = sqrt(r125572);
double r125574 = sqrt(r125573);
double r125575 = r125574 * r125574;
double r125576 = sqrt(r125571);
double r125577 = r125575 + r125576;
double r125578 = r125570 / r125577;
return r125578;
}




Bits error versus x
Results
| Original | 29.6 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 29.6
rmApplied flip--29.4
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.3
Final simplification0.3
herbie shell --seed 2020059
(FPCore (x)
:name "2sqrt (example 3.1)"
:precision binary64
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))