\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{\frac{1 \cdot 1}{x + \sqrt{x + 1} \cdot \sqrt{x}}}{\sqrt{x + 1}}double f(double x) {
double r130132 = 1.0;
double r130133 = x;
double r130134 = sqrt(r130133);
double r130135 = r130132 / r130134;
double r130136 = r130133 + r130132;
double r130137 = sqrt(r130136);
double r130138 = r130132 / r130137;
double r130139 = r130135 - r130138;
return r130139;
}
double f(double x) {
double r130140 = 1.0;
double r130141 = r130140 * r130140;
double r130142 = x;
double r130143 = r130142 + r130140;
double r130144 = sqrt(r130143);
double r130145 = sqrt(r130142);
double r130146 = r130144 * r130145;
double r130147 = r130142 + r130146;
double r130148 = r130141 / r130147;
double r130149 = r130148 / r130144;
return r130149;
}




Bits error versus x
Results
| Original | 19.3 |
|---|---|
| Target | 0.6 |
| Herbie | 0.3 |
Initial program 19.3
rmApplied frac-sub19.3
Simplified19.3
rmApplied flip--19.1
Simplified18.7
Taylor expanded around 0 0.4
rmApplied associate-/r*0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2019326
(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)))))