\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{\frac{1 \cdot \frac{1}{\sqrt{x + 1} + \sqrt{x}}}{\sqrt{x}}}{\sqrt{x + 1}}double f(double x) {
double r211099 = 1.0;
double r211100 = x;
double r211101 = sqrt(r211100);
double r211102 = r211099 / r211101;
double r211103 = r211100 + r211099;
double r211104 = sqrt(r211103);
double r211105 = r211099 / r211104;
double r211106 = r211102 - r211105;
return r211106;
}
double f(double x) {
double r211107 = 1.0;
double r211108 = x;
double r211109 = r211108 + r211107;
double r211110 = sqrt(r211109);
double r211111 = sqrt(r211108);
double r211112 = r211110 + r211111;
double r211113 = r211107 / r211112;
double r211114 = r211107 * r211113;
double r211115 = r211114 / r211111;
double r211116 = r211115 / r211110;
return r211116;
}




Bits error versus x
Results
| Original | 19.4 |
|---|---|
| Target | 0.6 |
| Herbie | 0.4 |
Initial program 19.4
rmApplied frac-sub19.3
Simplified19.3
rmApplied flip--19.0
Simplified18.6
Taylor expanded around 0 0.4
rmApplied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2020062
(FPCore (x)
:name "2isqrt (example 3.6)"
:precision binary64
:herbie-target
(/ 1 (+ (* (+ x 1) (sqrt x)) (* x (sqrt (+ x 1)))))
(- (/ 1 (sqrt x)) (/ 1 (sqrt (+ x 1)))))