\left(\sqrt{\left(\frac{x}{\left(1\right)}\right)}\right) - \left(\sqrt{x}\right)\frac{\sqrt{1 + x} \cdot \left(\sqrt{1 + x} + \sqrt{x}\right) + \left(-\sqrt{x}\right) \cdot \left(\sqrt{1 + x} + \sqrt{x}\right)}{\sqrt{1 + x} + \sqrt{x}}double f(double x) {
double r2084690 = x;
double r2084691 = 1.0;
double r2084692 = /* ERROR: no posit support in C */;
double r2084693 = r2084690 + r2084692;
double r2084694 = sqrt(r2084693);
double r2084695 = sqrt(r2084690);
double r2084696 = r2084694 - r2084695;
return r2084696;
}
double f(double x) {
double r2084697 = 1.0;
double r2084698 = x;
double r2084699 = r2084697 + r2084698;
double r2084700 = sqrt(r2084699);
double r2084701 = sqrt(r2084698);
double r2084702 = r2084700 + r2084701;
double r2084703 = r2084700 * r2084702;
double r2084704 = -r2084701;
double r2084705 = r2084704 * r2084702;
double r2084706 = r2084703 + r2084705;
double r2084707 = r2084706 / r2084702;
return r2084707;
}



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