\left(\sqrt{\left(\frac{x}{\left(1\right)}\right)}\right) - \left(\sqrt{x}\right)\frac{\left(\sqrt{1 + x} + \sqrt{x}\right) \cdot \sqrt{1 + x} + \left(\sqrt{1 + x} + \sqrt{x}\right) \cdot \left(-\sqrt{x}\right)}{\sqrt{1 + x} + \sqrt{x}}double f(double x) {
double r1859350 = x;
double r1859351 = 1.0;
double r1859352 = /* ERROR: no posit support in C */;
double r1859353 = r1859350 + r1859352;
double r1859354 = sqrt(r1859353);
double r1859355 = sqrt(r1859350);
double r1859356 = r1859354 - r1859355;
return r1859356;
}
double f(double x) {
double r1859357 = 1.0;
double r1859358 = x;
double r1859359 = r1859357 + r1859358;
double r1859360 = sqrt(r1859359);
double r1859361 = sqrt(r1859358);
double r1859362 = r1859360 + r1859361;
double r1859363 = r1859362 * r1859360;
double r1859364 = -r1859361;
double r1859365 = r1859362 * r1859364;
double r1859366 = r1859363 + r1859365;
double r1859367 = r1859366 / r1859362;
return r1859367;
}



Bits error versus x
Initial program 0.8
rmApplied p16-flip--0.6
Simplified0.8
Simplified0.8
rmApplied sub-neg0.8
Applied distribute-lft-in0.6
Final simplification0.6
herbie shell --seed 2019154 +o rules:numerics
(FPCore (x)
:name "2sqrt (example 3.1)"
(-.p16 (sqrt.p16 (+.p16 x (real->posit16 1))) (sqrt.p16 x)))