\sqrt{x + 1} - \sqrt{x}\frac{1}{\sqrt{x} + \sqrt{x + 1}}double f(double x) {
double r4781204 = x;
double r4781205 = 1.0;
double r4781206 = r4781204 + r4781205;
double r4781207 = sqrt(r4781206);
double r4781208 = sqrt(r4781204);
double r4781209 = r4781207 - r4781208;
return r4781209;
}
double f(double x) {
double r4781210 = 1.0;
double r4781211 = x;
double r4781212 = sqrt(r4781211);
double r4781213 = r4781211 + r4781210;
double r4781214 = sqrt(r4781213);
double r4781215 = r4781212 + r4781214;
double r4781216 = r4781210 / r4781215;
return r4781216;
}




Bits error versus x
Results
| Original | 29.3 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 29.3
rmApplied flip--29.1
Simplified28.7
Simplified28.7
rmApplied *-un-lft-identity28.7
Applied associate-/r*28.7
Simplified0.2
Final simplification0.2
herbie shell --seed 2019158 +o rules:numerics
(FPCore (x)
:name "2sqrt (example 3.1)"
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))