\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 r2878273 = 1.0;
double r2878274 = /* ERROR: no posit support in C */;
double r2878275 = x;
double r2878276 = sqrt(r2878275);
double r2878277 = r2878274 / r2878276;
double r2878278 = r2878275 + r2878274;
double r2878279 = sqrt(r2878278);
double r2878280 = r2878274 / r2878279;
double r2878281 = r2878277 - r2878280;
return r2878281;
}
double f(double x) {
double r2878282 = 1.0;
double r2878283 = x;
double r2878284 = sqrt(r2878283);
double r2878285 = r2878282 / r2878284;
double r2878286 = r2878283 + r2878282;
double r2878287 = sqrt(r2878286);
double r2878288 = r2878282 / r2878287;
double r2878289 = r2878285 + r2878288;
double r2878290 = r2878285 - r2878288;
double r2878291 = r2878289 * r2878290;
double r2878292 = r2878291 / r2878289;
return r2878292;
}



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