\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{1}{\left(\sqrt{x + 1} \cdot \sqrt{x + 1}\right) \cdot \left(x \cdot \left(\frac{1}{\sqrt{x}} + \frac{1}{\sqrt{x + 1}}\right)\right)}double f(double x) {
double r1876154 = 1.0;
double r1876155 = x;
double r1876156 = sqrt(r1876155);
double r1876157 = r1876154 / r1876156;
double r1876158 = r1876155 + r1876154;
double r1876159 = sqrt(r1876158);
double r1876160 = r1876154 / r1876159;
double r1876161 = r1876157 - r1876160;
return r1876161;
}
double f(double x) {
double r1876162 = 1.0;
double r1876163 = x;
double r1876164 = r1876163 + r1876162;
double r1876165 = sqrt(r1876164);
double r1876166 = r1876165 * r1876165;
double r1876167 = sqrt(r1876163);
double r1876168 = r1876162 / r1876167;
double r1876169 = r1876162 / r1876165;
double r1876170 = r1876168 + r1876169;
double r1876171 = r1876163 * r1876170;
double r1876172 = r1876166 * r1876171;
double r1876173 = r1876162 / r1876172;
return r1876173;
}




Bits error versus x
Results
| Original | 19.7 |
|---|---|
| Target | 0.6 |
| Herbie | 0.7 |
Initial program 19.7
rmApplied flip--19.8
rmApplied frac-times24.7
Applied frac-times19.9
Applied frac-sub19.6
Applied associate-/l/19.6
Taylor expanded around 0 5.4
rmApplied associate-*r*0.9
Simplified0.7
Final simplification0.7
herbie shell --seed 2019128
(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)))))