\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 r3509362 = 1.0;
double r3509363 = /* ERROR: no posit support in C */;
double r3509364 = x;
double r3509365 = sqrt(r3509364);
double r3509366 = r3509363 / r3509365;
double r3509367 = r3509364 + r3509363;
double r3509368 = sqrt(r3509367);
double r3509369 = r3509363 / r3509368;
double r3509370 = r3509366 - r3509369;
return r3509370;
}
double f(double x) {
double r3509371 = 1.0;
double r3509372 = x;
double r3509373 = sqrt(r3509372);
double r3509374 = r3509371 / r3509373;
double r3509375 = r3509372 + r3509371;
double r3509376 = sqrt(r3509375);
double r3509377 = r3509371 / r3509376;
double r3509378 = r3509374 + r3509377;
double r3509379 = r3509374 - r3509377;
double r3509380 = r3509378 * r3509379;
double r3509381 = r3509380 / r3509378;
return r3509381;
}



Bits error versus x
Initial program 0.6
rmApplied p16-flip--0.7
rmApplied difference-of-squares0.6
Final simplification0.6
herbie shell --seed 2019107
(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))))))