\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{\frac{1}{\sqrt{x + 1} + \sqrt{x}}}{\left(\sqrt{x} \cdot \sqrt{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}\right) \cdot \sqrt{\sqrt[3]{x + 1}}}double f(double x) {
double r3938816 = 1.0;
double r3938817 = x;
double r3938818 = sqrt(r3938817);
double r3938819 = r3938816 / r3938818;
double r3938820 = r3938817 + r3938816;
double r3938821 = sqrt(r3938820);
double r3938822 = r3938816 / r3938821;
double r3938823 = r3938819 - r3938822;
return r3938823;
}
double f(double x) {
double r3938824 = 1.0;
double r3938825 = x;
double r3938826 = r3938825 + r3938824;
double r3938827 = sqrt(r3938826);
double r3938828 = sqrt(r3938825);
double r3938829 = r3938827 + r3938828;
double r3938830 = r3938824 / r3938829;
double r3938831 = cbrt(r3938826);
double r3938832 = r3938831 * r3938831;
double r3938833 = sqrt(r3938832);
double r3938834 = r3938828 * r3938833;
double r3938835 = sqrt(r3938831);
double r3938836 = r3938834 * r3938835;
double r3938837 = r3938830 / r3938836;
return r3938837;
}




Bits error versus x
Results
| Original | 19.5 |
|---|---|
| Target | 0.6 |
| Herbie | 0.5 |
Initial program 19.5
rmApplied frac-sub19.5
Simplified19.5
rmApplied flip--19.3
Simplified0.4
rmApplied add-cube-cbrt0.5
Applied sqrt-prod0.5
Applied associate-*r*0.5
Final simplification0.5
herbie shell --seed 2019141
(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)))))