double f(double x) {
double r5422757 = x;
double r5422758 = 1.0;
double r5422759 = r5422757 + r5422758;
double r5422760 = sqrt(r5422759);
double r5422761 = sqrt(r5422757);
double r5422762 = r5422760 - r5422761;
return r5422762;
}
double f(double x) {
double r5422763 = 1.0;
double r5422764 = x;
double r5422765 = r5422763 + r5422764;
double r5422766 = sqrt(r5422765);
double r5422767 = sqrt(r5422764);
double r5422768 = r5422766 + r5422767;
double r5422769 = r5422768 * r5422768;
double r5422770 = -0.5;
double r5422771 = pow(r5422769, r5422770);
return r5422771;
}
\sqrt{x + 1} - \sqrt{x}{\left(\left(\sqrt{1 + x} + \sqrt{x}\right) \cdot \left(\sqrt{1 + x} + \sqrt{x}\right)\right)}^{\frac{-1}{2}}



Bits error versus x
| Original | 30.0 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 30.0
rmApplied flip--29.8
Taylor expanded around 0 0.2
rmApplied add-sqr-sqrt0.3
rmApplied pow10.3
Applied sqrt-pow10.3
Applied pow10.3
Applied sqrt-pow10.3
Applied pow-prod-down0.2
Applied pow-flip0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019102
(FPCore (x)
:name "2sqrt (example 3.1)"
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))