\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 r12472533 = 1.0;
double r12472534 = /* ERROR: no posit support in C */;
double r12472535 = x;
double r12472536 = sqrt(r12472535);
double r12472537 = r12472534 / r12472536;
double r12472538 = r12472535 + r12472534;
double r12472539 = sqrt(r12472538);
double r12472540 = r12472534 / r12472539;
double r12472541 = r12472537 - r12472540;
return r12472541;
}
double f(double x) {
double r12472542 = 1.0;
double r12472543 = x;
double r12472544 = sqrt(r12472543);
double r12472545 = r12472542 / r12472544;
double r12472546 = r12472543 + r12472542;
double r12472547 = sqrt(r12472546);
double r12472548 = r12472542 / r12472547;
double r12472549 = r12472545 + r12472548;
double r12472550 = r12472545 - r12472548;
double r12472551 = r12472549 * r12472550;
double r12472552 = r12472551 / r12472549;
return r12472552;
}



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