\frac{1}{x + 1} - \frac{1}{x}\begin{array}{l}
\mathbf{if}\;\frac{1}{x + 1} - \frac{1}{x} \le -42.70645258999120130738447187468409538269 \lor \neg \left(\frac{1}{x + 1} - \frac{1}{x} \le 0.0\right):\\
\;\;\;\;\sqrt{\frac{1}{x + 1}} \cdot \sqrt{\frac{1}{x + 1}} - \frac{1}{x}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{{x}^{3}} - \left(\frac{1}{{x}^{4}} + \frac{\frac{1}{x}}{x}\right)\\
\end{array}double f(double x) {
double r42912 = 1.0;
double r42913 = x;
double r42914 = r42913 + r42912;
double r42915 = r42912 / r42914;
double r42916 = r42912 / r42913;
double r42917 = r42915 - r42916;
return r42917;
}
double f(double x) {
double r42918 = 1.0;
double r42919 = x;
double r42920 = r42919 + r42918;
double r42921 = r42918 / r42920;
double r42922 = r42918 / r42919;
double r42923 = r42921 - r42922;
double r42924 = -42.7064525899912;
bool r42925 = r42923 <= r42924;
double r42926 = 0.0;
bool r42927 = r42923 <= r42926;
double r42928 = !r42927;
bool r42929 = r42925 || r42928;
double r42930 = sqrt(r42921);
double r42931 = r42930 * r42930;
double r42932 = r42931 - r42922;
double r42933 = 3.0;
double r42934 = pow(r42919, r42933);
double r42935 = r42918 / r42934;
double r42936 = 4.0;
double r42937 = pow(r42919, r42936);
double r42938 = r42918 / r42937;
double r42939 = r42922 / r42919;
double r42940 = r42938 + r42939;
double r42941 = r42935 - r42940;
double r42942 = r42929 ? r42932 : r42941;
return r42942;
}



Bits error versus x
Results
if (- (/ 1.0 (+ x 1.0)) (/ 1.0 x)) < -42.7064525899912 or 0.0 < (- (/ 1.0 (+ x 1.0)) (/ 1.0 x)) Initial program 0.0
rmApplied add-sqr-sqrt0.0
if -42.7064525899912 < (- (/ 1.0 (+ x 1.0)) (/ 1.0 x)) < 0.0Initial program 28.9
rmApplied add-sqr-sqrt30.8
Taylor expanded around inf 1.3
Simplified1.3
rmApplied unpow21.3
Applied associate-/r*0.6
Final simplification0.3
herbie shell --seed 2019208
(FPCore (x)
:name "2frac (problem 3.3.1)"
:precision binary64
(- (/ 1 (+ x 1)) (/ 1 x)))