\sqrt{x + 1} - \sqrt{x}\frac{\sqrt{\frac{1}{\sqrt{1 + x} + \sqrt{x}}}}{\sqrt{\sqrt{1 + x} + \sqrt{x}}}(FPCore (x) :precision binary64 (- (sqrt (+ x 1.0)) (sqrt x)))
(FPCore (x) :precision binary64 (/ (sqrt (/ 1.0 (+ (sqrt (+ 1.0 x)) (sqrt x)))) (sqrt (+ (sqrt (+ 1.0 x)) (sqrt x)))))
double code(double x) {
return sqrt(x + 1.0) - sqrt(x);
}
double code(double x) {
return sqrt(1.0 / (sqrt(1.0 + x) + sqrt(x))) / sqrt(sqrt(1.0 + x) + sqrt(x));
}




Bits error versus x
Results
| Original | 29.8 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 29.8
rmApplied flip--_binary64_173729.6
Simplified0.2
rmApplied add-sqr-sqrt_binary64_17830.3
Simplified0.3
Simplified0.3
rmApplied sqrt-div_binary64_17780.3
Applied associate-*l/_binary64_17070.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020288
(FPCore (x)
:name "2sqrt (example 3.1)"
:precision binary64
:herbie-target
(/ 1.0 (+ (sqrt (+ x 1.0)) (sqrt x)))
(- (sqrt (+ x 1.0)) (sqrt x)))