double f(double x) {
double r2788214 = 1.0;
double r2788215 = x;
double r2788216 = sqrt(r2788215);
double r2788217 = r2788214 / r2788216;
double r2788218 = r2788215 + r2788214;
double r2788219 = sqrt(r2788218);
double r2788220 = r2788214 / r2788219;
double r2788221 = r2788217 - r2788220;
return r2788221;
}
double f(double x) {
double r2788222 = 1.0;
double r2788223 = x;
double r2788224 = sqrt(r2788223);
double r2788225 = r2788222 / r2788224;
double r2788226 = r2788223 + r2788222;
double r2788227 = sqrt(r2788226);
double r2788228 = r2788222 / r2788227;
double r2788229 = r2788225 + r2788228;
double r2788230 = r2788225 - r2788228;
double r2788231 = r2788229 * r2788230;
double r2788232 = r2788231 / r2788229;
return r2788232;
}
\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\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}}}


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