\left(\frac{\left(1\right)}{\left(\sqrt{x}\right)}\right) - \left(\frac{\left(1\right)}{\left(\sqrt{\left(\frac{x}{\left(1\right)}\right)}\right)}\right)\frac{\left(\frac{1}{\sqrt{x}} + \frac{1}{\sqrt{x + 1}}\right) \cdot \left(\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\right)}{\frac{1}{\sqrt{x}} + \frac{1}{\sqrt{x + 1}}}double f(double x) {
double r2945727 = 1.0;
double r2945728 = /* ERROR: no posit support in C */;
double r2945729 = x;
double r2945730 = sqrt(r2945729);
double r2945731 = r2945728 / r2945730;
double r2945732 = r2945729 + r2945728;
double r2945733 = sqrt(r2945732);
double r2945734 = r2945728 / r2945733;
double r2945735 = r2945731 - r2945734;
return r2945735;
}
double f(double x) {
double r2945736 = 1.0;
double r2945737 = x;
double r2945738 = sqrt(r2945737);
double r2945739 = r2945736 / r2945738;
double r2945740 = r2945737 + r2945736;
double r2945741 = sqrt(r2945740);
double r2945742 = r2945736 / r2945741;
double r2945743 = r2945739 + r2945742;
double r2945744 = r2945739 - r2945742;
double r2945745 = r2945743 * r2945744;
double r2945746 = r2945745 / r2945743;
return r2945746;
}



Bits error versus x
Initial program 0.6
rmApplied p16-flip--0.7
rmApplied difference-of-squares0.6
Final simplification0.6
herbie shell --seed 2019112 +o rules:numerics
(FPCore (x)
:name "2isqrt (example 3.6)"
(-.p16 (/.p16 (real->posit16 1) (sqrt.p16 x)) (/.p16 (real->posit16 1) (sqrt.p16 (+.p16 x (real->posit16 1))))))