\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;\frac{x}{x + 1} - \frac{x + 1}{x - 1} \le 0.0:\\
\;\;\;\;\left(-\left(\frac{1}{{x}^{2}} + \frac{3}{x}\right)\right) - 3 \cdot \frac{1}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{x}{x + 1} - \frac{x + 1}{x - 1}} \cdot \sqrt{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}\\
\end{array}double code(double x) {
return ((double) (((double) (x / ((double) (x + 1.0)))) - ((double) (((double) (x + 1.0)) / ((double) (x - 1.0))))));
}
double code(double x) {
double VAR;
if ((((double) (((double) (x / ((double) (x + 1.0)))) - ((double) (((double) (x + 1.0)) / ((double) (x - 1.0)))))) <= 0.0)) {
VAR = ((double) (((double) -(((double) (((double) (1.0 / ((double) pow(x, 2.0)))) + ((double) (3.0 / x)))))) - ((double) (3.0 * ((double) (1.0 / ((double) pow(x, 3.0))))))));
} else {
VAR = ((double) (((double) sqrt(((double) (((double) (x / ((double) (x + 1.0)))) - ((double) (((double) (x + 1.0)) / ((double) (x - 1.0)))))))) * ((double) sqrt(((double) (((double) (x / ((double) (x + 1.0)))) - ((double) (((double) (x + 1.0)) / ((double) (x - 1.0))))))))));
}
return VAR;
}



Bits error versus x
Results
if (- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))) < 0.0Initial program 59.6
Taylor expanded around inf 0.5
Simplified0.5
rmApplied fma-udef0.5
Applied associate--r+0.5
Simplified0.2
if 0.0 < (- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))) Initial program 0.6
rmApplied add-sqr-sqrt0.7
Final simplification0.4
herbie shell --seed 2020120 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))