Average Error: 29.4 → 0.3
Time: 21.1s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;\frac{x}{x + 1} - \frac{x + 1}{x - 1} \le 1.08489217609530896879732608795166015625 \cdot 10^{-10}:\\ \;\;\;\;\frac{-3}{x \cdot \left(x \cdot x\right)} - \left(\frac{1}{x \cdot x} + \frac{3}{x}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + 1} - \frac{1 + x}{x \cdot \left(x \cdot x\right) - 1 \cdot \left(1 \cdot 1\right)} \cdot \left(x \cdot x + \left(1 \cdot 1 + x \cdot 1\right)\right)\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;\frac{x}{x + 1} - \frac{x + 1}{x - 1} \le 1.08489217609530896879732608795166015625 \cdot 10^{-10}:\\
\;\;\;\;\frac{-3}{x \cdot \left(x \cdot x\right)} - \left(\frac{1}{x \cdot x} + \frac{3}{x}\right)\\

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

\end{array}
double f(double x) {
        double r11624146 = x;
        double r11624147 = 1.0;
        double r11624148 = r11624146 + r11624147;
        double r11624149 = r11624146 / r11624148;
        double r11624150 = r11624146 - r11624147;
        double r11624151 = r11624148 / r11624150;
        double r11624152 = r11624149 - r11624151;
        return r11624152;
}

double f(double x) {
        double r11624153 = x;
        double r11624154 = 1.0;
        double r11624155 = r11624153 + r11624154;
        double r11624156 = r11624153 / r11624155;
        double r11624157 = r11624153 - r11624154;
        double r11624158 = r11624155 / r11624157;
        double r11624159 = r11624156 - r11624158;
        double r11624160 = 1.084892176095309e-10;
        bool r11624161 = r11624159 <= r11624160;
        double r11624162 = 3.0;
        double r11624163 = -r11624162;
        double r11624164 = r11624153 * r11624153;
        double r11624165 = r11624153 * r11624164;
        double r11624166 = r11624163 / r11624165;
        double r11624167 = r11624154 / r11624164;
        double r11624168 = r11624162 / r11624153;
        double r11624169 = r11624167 + r11624168;
        double r11624170 = r11624166 - r11624169;
        double r11624171 = r11624154 + r11624153;
        double r11624172 = r11624154 * r11624154;
        double r11624173 = r11624154 * r11624172;
        double r11624174 = r11624165 - r11624173;
        double r11624175 = r11624171 / r11624174;
        double r11624176 = r11624153 * r11624154;
        double r11624177 = r11624172 + r11624176;
        double r11624178 = r11624164 + r11624177;
        double r11624179 = r11624175 * r11624178;
        double r11624180 = r11624156 - r11624179;
        double r11624181 = r11624161 ? r11624170 : r11624180;
        return r11624181;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if (- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))) < 1.084892176095309e-10

    1. Initial program 59.2

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

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

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

    if 1.084892176095309e-10 < (- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0)))

    1. Initial program 0.3

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Using strategy rm
    3. Applied flip3--0.3

      \[\leadsto \frac{x}{x + 1} - \frac{x + 1}{\color{blue}{\frac{{x}^{3} - {1}^{3}}{x \cdot x + \left(1 \cdot 1 + x \cdot 1\right)}}}\]
    4. Applied associate-/r/0.3

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{x}{x + 1} - \frac{x + 1}{x - 1} \le 1.08489217609530896879732608795166015625 \cdot 10^{-10}:\\ \;\;\;\;\frac{-3}{x \cdot \left(x \cdot x\right)} - \left(\frac{1}{x \cdot x} + \frac{3}{x}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + 1} - \frac{1 + x}{x \cdot \left(x \cdot x\right) - 1 \cdot \left(1 \cdot 1\right)} \cdot \left(x \cdot x + \left(1 \cdot 1 + x \cdot 1\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019173 
(FPCore (x)
  :name "Asymptote C"
  (- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))))