\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 r3920636 = 1.0;
double r3920637 = /* ERROR: no posit support in C */;
double r3920638 = x;
double r3920639 = sqrt(r3920638);
double r3920640 = r3920637 / r3920639;
double r3920641 = r3920638 + r3920637;
double r3920642 = sqrt(r3920641);
double r3920643 = r3920637 / r3920642;
double r3920644 = r3920640 - r3920643;
return r3920644;
}
double f(double x) {
double r3920645 = 1.0;
double r3920646 = x;
double r3920647 = sqrt(r3920646);
double r3920648 = r3920645 / r3920647;
double r3920649 = r3920646 + r3920645;
double r3920650 = sqrt(r3920649);
double r3920651 = r3920645 / r3920650;
double r3920652 = r3920648 + r3920651;
double r3920653 = r3920648 - r3920651;
double r3920654 = r3920652 * r3920653;
double r3920655 = r3920654 / r3920652;
return r3920655;
}



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 +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))))))