\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{1}{\sqrt{x}} - \frac{1}{\mathsf{hypot}\left(\sqrt{x}, 1\right)}double f(double x) {
double r5050651 = 1.0;
double r5050652 = x;
double r5050653 = sqrt(r5050652);
double r5050654 = r5050651 / r5050653;
double r5050655 = r5050652 + r5050651;
double r5050656 = sqrt(r5050655);
double r5050657 = r5050651 / r5050656;
double r5050658 = r5050654 - r5050657;
return r5050658;
}
double f(double x) {
double r5050659 = 1.0;
double r5050660 = x;
double r5050661 = sqrt(r5050660);
double r5050662 = r5050659 / r5050661;
double r5050663 = hypot(r5050661, r5050659);
double r5050664 = r5050659 / r5050663;
double r5050665 = r5050662 - r5050664;
return r5050665;
}




Bits error versus x
Results
| Original | 19.5 |
|---|---|
| Target | 0.6 |
| Herbie | 19.5 |
Initial program 19.5
rmApplied *-un-lft-identity19.5
Applied add-sqr-sqrt19.5
Applied hypot-def19.5
Final simplification19.5
herbie shell --seed 2019141 +o rules:numerics
(FPCore (x)
:name "2isqrt (example 3.6)"
:herbie-target
(/ 1 (+ (* (+ x 1) (sqrt x)) (* x (sqrt (+ x 1)))))
(- (/ 1 (sqrt x)) (/ 1 (sqrt (+ x 1)))))