\sqrt{x + 1} - \sqrt{x}\frac{1}{\sqrt{x} + \left|\sqrt{x + 1}\right|}double f(double x) {
double r122876 = x;
double r122877 = 1.0;
double r122878 = r122876 + r122877;
double r122879 = sqrt(r122878);
double r122880 = sqrt(r122876);
double r122881 = r122879 - r122880;
return r122881;
}
double f(double x) {
double r122882 = 1.0;
double r122883 = x;
double r122884 = sqrt(r122883);
double r122885 = r122883 + r122882;
double r122886 = sqrt(r122885);
double r122887 = fabs(r122886);
double r122888 = r122884 + r122887;
double r122889 = r122882 / r122888;
return r122889;
}




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