\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 r8086813 = 1.0;
double r8086814 = /* ERROR: no posit support in C */;
double r8086815 = x;
double r8086816 = sqrt(r8086815);
double r8086817 = r8086814 / r8086816;
double r8086818 = r8086815 + r8086814;
double r8086819 = sqrt(r8086818);
double r8086820 = r8086814 / r8086819;
double r8086821 = r8086817 - r8086820;
return r8086821;
}
double f(double x) {
double r8086822 = 1.0;
double r8086823 = x;
double r8086824 = sqrt(r8086823);
double r8086825 = r8086822 / r8086824;
double r8086826 = r8086823 + r8086822;
double r8086827 = sqrt(r8086826);
double r8086828 = r8086822 / r8086827;
double r8086829 = r8086825 + r8086828;
double r8086830 = r8086825 - r8086828;
double r8086831 = r8086829 * r8086830;
double r8086832 = r8086831 / r8086829;
return r8086832;
}



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