\sqrt{x + 1} - \sqrt{x}\frac{\frac{1}{\sqrt{\sqrt{x + 1} + \sqrt{x}}}}{\sqrt{\sqrt{x + 1} + \sqrt{x}}}double f(double x) {
double r14744799 = x;
double r14744800 = 1.0;
double r14744801 = r14744799 + r14744800;
double r14744802 = sqrt(r14744801);
double r14744803 = sqrt(r14744799);
double r14744804 = r14744802 - r14744803;
return r14744804;
}
double f(double x) {
double r14744805 = 1.0;
double r14744806 = x;
double r14744807 = r14744806 + r14744805;
double r14744808 = sqrt(r14744807);
double r14744809 = sqrt(r14744806);
double r14744810 = r14744808 + r14744809;
double r14744811 = sqrt(r14744810);
double r14744812 = r14744805 / r14744811;
double r14744813 = r14744812 / r14744811;
return r14744813;
}




Bits error versus x
Results
| Original | 29.8 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 29.8
rmApplied flip--29.6
Taylor expanded around 0 0.2
rmApplied add-sqr-sqrt0.4
Applied associate-/r*0.3
Final simplification0.3
herbie shell --seed 2019104
(FPCore (x)
:name "2sqrt (example 3.1)"
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))