\sqrt{x + 1} - \sqrt{x}\frac{\sqrt{\frac{1 + 0}{\sqrt{x + 1} + \sqrt{x}}} \cdot \sqrt{1}}{\sqrt{\sqrt{x + 1} + \sqrt{x}}}double f(double x) {
double r129873 = x;
double r129874 = 1.0;
double r129875 = r129873 + r129874;
double r129876 = sqrt(r129875);
double r129877 = sqrt(r129873);
double r129878 = r129876 - r129877;
return r129878;
}
double f(double x) {
double r129879 = 1.0;
double r129880 = 0.0;
double r129881 = r129879 + r129880;
double r129882 = x;
double r129883 = r129882 + r129879;
double r129884 = sqrt(r129883);
double r129885 = sqrt(r129882);
double r129886 = r129884 + r129885;
double r129887 = r129881 / r129886;
double r129888 = sqrt(r129887);
double r129889 = sqrt(r129879);
double r129890 = r129888 * r129889;
double r129891 = sqrt(r129886);
double r129892 = r129890 / r129891;
return r129892;
}




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