\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 r3414096 = 1.0;
double r3414097 = x;
double r3414098 = sqrt(r3414097);
double r3414099 = r3414096 / r3414098;
double r3414100 = r3414097 + r3414096;
double r3414101 = sqrt(r3414100);
double r3414102 = r3414096 / r3414101;
double r3414103 = r3414099 - r3414102;
return r3414103;
}
double f(double x) {
double r3414104 = 1.0;
double r3414105 = x;
double r3414106 = sqrt(r3414105);
double r3414107 = r3414104 / r3414106;
double r3414108 = hypot(r3414106, r3414104);
double r3414109 = r3414104 / r3414108;
double r3414110 = r3414107 - r3414109;
return r3414110;
}




Bits error versus x
Results
| Original | 19.7 |
|---|---|
| Target | 0.7 |
| Herbie | 19.7 |
Initial program 19.7
rmApplied *-un-lft-identity19.7
Applied add-sqr-sqrt19.7
Applied hypot-def19.7
Final simplification19.7
herbie shell --seed 2019143 +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)))))