\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -12435.32938867169286822900176048278808594 \lor \neg \left(x \le 11573.99856257406463555525988340377807617\right):\\
\;\;\;\;\frac{-1}{x \cdot x} - \left(\frac{3}{x} + \frac{3}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\log \left(e^{\sqrt[3]{{\left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}^{3}}}\right)\\
\end{array}double f(double x) {
double r107831 = x;
double r107832 = 1.0;
double r107833 = r107831 + r107832;
double r107834 = r107831 / r107833;
double r107835 = r107831 - r107832;
double r107836 = r107833 / r107835;
double r107837 = r107834 - r107836;
return r107837;
}
double f(double x) {
double r107838 = x;
double r107839 = -12435.329388671693;
bool r107840 = r107838 <= r107839;
double r107841 = 11573.998562574065;
bool r107842 = r107838 <= r107841;
double r107843 = !r107842;
bool r107844 = r107840 || r107843;
double r107845 = 1.0;
double r107846 = -r107845;
double r107847 = r107838 * r107838;
double r107848 = r107846 / r107847;
double r107849 = 3.0;
double r107850 = r107849 / r107838;
double r107851 = 3.0;
double r107852 = pow(r107838, r107851);
double r107853 = r107849 / r107852;
double r107854 = r107850 + r107853;
double r107855 = r107848 - r107854;
double r107856 = r107838 + r107845;
double r107857 = r107838 / r107856;
double r107858 = r107838 - r107845;
double r107859 = r107856 / r107858;
double r107860 = r107857 - r107859;
double r107861 = pow(r107860, r107851);
double r107862 = cbrt(r107861);
double r107863 = exp(r107862);
double r107864 = log(r107863);
double r107865 = r107844 ? r107855 : r107864;
return r107865;
}



Bits error versus x
Results
if x < -12435.329388671693 or 11573.998562574065 < x Initial program 59.3
rmApplied add-log-exp59.3
Applied add-log-exp59.3
Applied diff-log59.3
Simplified59.3
rmApplied add-cbrt-cube59.3
Simplified59.3
Taylor expanded around inf 0.3
Simplified0.0
if -12435.329388671693 < x < 11573.998562574065Initial program 0.1
rmApplied add-log-exp0.1
Applied add-log-exp0.1
Applied diff-log0.1
Simplified0.1
rmApplied add-cbrt-cube0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019304 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))