\sqrt{x + 1} - \sqrt{x}\frac{\sqrt{\frac{1}{\sqrt{x + 1} + \sqrt{x}}} \cdot \sqrt{1}}{\sqrt{\sqrt{x + 1} + \sqrt{x}}}double f(double x) {
double r84091 = x;
double r84092 = 1.0;
double r84093 = r84091 + r84092;
double r84094 = sqrt(r84093);
double r84095 = sqrt(r84091);
double r84096 = r84094 - r84095;
return r84096;
}
double f(double x) {
double r84097 = 1.0;
double r84098 = x;
double r84099 = r84098 + r84097;
double r84100 = sqrt(r84099);
double r84101 = sqrt(r84098);
double r84102 = r84100 + r84101;
double r84103 = r84097 / r84102;
double r84104 = sqrt(r84103);
double r84105 = sqrt(r84097);
double r84106 = r84104 * r84105;
double r84107 = sqrt(r84102);
double r84108 = r84106 / r84107;
return r84108;
}




Bits error versus x
Results
| Original | 29.7 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 29.7
rmApplied flip--29.5
Simplified0.2
rmApplied add-sqr-sqrt0.3
rmApplied sqrt-div0.3
Applied associate-*r/0.2
Final simplification0.2
herbie shell --seed 2019212
(FPCore (x)
:name "2sqrt (example 3.1)"
:precision binary64
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))