\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}1 \cdot \frac{\frac{\frac{1}{\sqrt{x + 1}}}{\sqrt{x}}}{1 \cdot \left(\sqrt{x} + \sqrt{x + 1}\right)}double f(double x) {
double r4103809 = 1.0;
double r4103810 = x;
double r4103811 = sqrt(r4103810);
double r4103812 = r4103809 / r4103811;
double r4103813 = r4103810 + r4103809;
double r4103814 = sqrt(r4103813);
double r4103815 = r4103809 / r4103814;
double r4103816 = r4103812 - r4103815;
return r4103816;
}
double f(double x) {
double r4103817 = 1.0;
double r4103818 = 1.0;
double r4103819 = x;
double r4103820 = r4103819 + r4103817;
double r4103821 = sqrt(r4103820);
double r4103822 = r4103818 / r4103821;
double r4103823 = sqrt(r4103819);
double r4103824 = r4103822 / r4103823;
double r4103825 = r4103823 + r4103821;
double r4103826 = r4103817 * r4103825;
double r4103827 = r4103824 / r4103826;
double r4103828 = r4103817 * r4103827;
return r4103828;
}




Bits error versus x
Results
| Original | 19.9 |
|---|---|
| Target | 0.7 |
| Herbie | 0.4 |
Initial program 19.9
rmApplied frac-sub19.9
rmApplied flip--19.7
Applied associate-/l/19.7
Taylor expanded around 0 0.8
rmApplied div-inv0.8
Simplified0.4
Final simplification0.4
herbie shell --seed 2019200 +o rules:numerics
(FPCore (x)
:name "2isqrt (example 3.6)"
:herbie-target
(/ 1.0 (+ (* (+ x 1.0) (sqrt x)) (* x (sqrt (+ x 1.0)))))
(- (/ 1.0 (sqrt x)) (/ 1.0 (sqrt (+ x 1.0)))))