Average Error: 29.2 → 0.2
Time: 6.1m
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -8945.723433831723:\\ \;\;\;\;\frac{-1}{x \cdot x} + \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) \cdot 3\\ \mathbf{elif}\;x \le 12128.14810712757:\\ \;\;\;\;\mathsf{fma}\left(\left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}\right), \left(\frac{\sqrt[3]{x}}{\sqrt[3]{1 + x}}\right), \left(-\frac{1 + x}{x - 1}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{x \cdot x} + \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) \cdot 3\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -8945.723433831723:\\
\;\;\;\;\frac{-1}{x \cdot x} + \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) \cdot 3\\

\mathbf{elif}\;x \le 12128.14810712757:\\
\;\;\;\;\mathsf{fma}\left(\left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}\right), \left(\frac{\sqrt[3]{x}}{\sqrt[3]{1 + x}}\right), \left(-\frac{1 + x}{x - 1}\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{-1}{x \cdot x} + \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) \cdot 3\\

\end{array}
double f(double x) {
        double r33301187 = x;
        double r33301188 = 1.0;
        double r33301189 = r33301187 + r33301188;
        double r33301190 = r33301187 / r33301189;
        double r33301191 = r33301187 - r33301188;
        double r33301192 = r33301189 / r33301191;
        double r33301193 = r33301190 - r33301192;
        return r33301193;
}

double f(double x) {
        double r33301194 = x;
        double r33301195 = -8945.723433831723;
        bool r33301196 = r33301194 <= r33301195;
        double r33301197 = -1.0;
        double r33301198 = r33301194 * r33301194;
        double r33301199 = r33301197 / r33301198;
        double r33301200 = r33301197 / r33301194;
        double r33301201 = r33301200 / r33301198;
        double r33301202 = r33301200 + r33301201;
        double r33301203 = 3.0;
        double r33301204 = r33301202 * r33301203;
        double r33301205 = r33301199 + r33301204;
        double r33301206 = 12128.14810712757;
        bool r33301207 = r33301194 <= r33301206;
        double r33301208 = cbrt(r33301194);
        double r33301209 = r33301208 * r33301208;
        double r33301210 = 1.0;
        double r33301211 = r33301210 + r33301194;
        double r33301212 = cbrt(r33301211);
        double r33301213 = r33301212 * r33301212;
        double r33301214 = r33301209 / r33301213;
        double r33301215 = r33301208 / r33301212;
        double r33301216 = r33301194 - r33301210;
        double r33301217 = r33301211 / r33301216;
        double r33301218 = -r33301217;
        double r33301219 = fma(r33301214, r33301215, r33301218);
        double r33301220 = r33301207 ? r33301219 : r33301205;
        double r33301221 = r33301196 ? r33301205 : r33301220;
        return r33301221;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -8945.723433831723 or 12128.14810712757 < x

    1. Initial program 59.4

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Taylor expanded around inf 0.3

      \[\leadsto \color{blue}{-\left(3 \cdot \frac{1}{{x}^{3}} + \left(\frac{1}{{x}^{2}} + 3 \cdot \frac{1}{x}\right)\right)}\]
    3. Simplified0.3

      \[\leadsto \color{blue}{\mathsf{fma}\left(3, \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right), \left(\frac{-1}{x \cdot x}\right)\right)}\]
    4. Using strategy rm
    5. Applied fma-udef0.3

      \[\leadsto \color{blue}{3 \cdot \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) + \frac{-1}{x \cdot x}}\]

    if -8945.723433831723 < x < 12128.14810712757

    1. Initial program 0.1

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt0.1

      \[\leadsto \frac{x}{\color{blue}{\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot \sqrt[3]{x + 1}}} - \frac{x + 1}{x - 1}\]
    4. Applied add-cube-cbrt0.1

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}}}{\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot \sqrt[3]{x + 1}} - \frac{x + 1}{x - 1}\]
    5. Applied times-frac0.1

      \[\leadsto \color{blue}{\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \frac{\sqrt[3]{x}}{\sqrt[3]{x + 1}}} - \frac{x + 1}{x - 1}\]
    6. Applied fma-neg0.1

      \[\leadsto \color{blue}{\mathsf{fma}\left(\left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}\right), \left(\frac{\sqrt[3]{x}}{\sqrt[3]{x + 1}}\right), \left(-\frac{x + 1}{x - 1}\right)\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -8945.723433831723:\\ \;\;\;\;\frac{-1}{x \cdot x} + \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) \cdot 3\\ \mathbf{elif}\;x \le 12128.14810712757:\\ \;\;\;\;\mathsf{fma}\left(\left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}\right), \left(\frac{\sqrt[3]{x}}{\sqrt[3]{1 + x}}\right), \left(-\frac{1 + x}{x - 1}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{x \cdot x} + \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) \cdot 3\\ \end{array}\]

Reproduce

herbie shell --seed 2019128 +o rules:numerics
(FPCore (x)
  :name "Asymptote C"
  (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))