Average Error: 9.8 → 0.2
Time: 18.3s
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -117.2709864418915515216212952509522438049:\\ \;\;\;\;\frac{\frac{\frac{2}{x}}{x}}{x} + \left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right)\\ \mathbf{elif}\;x \le 115.5593852642430903188142110593616962433:\\ \;\;\;\;\frac{1 \cdot x - \left(x + 1\right) \cdot 2}{\left(x + 1\right) \cdot x} + \frac{1}{x - 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{{x}^{3}} + \left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right)\\ \end{array}\]
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -117.2709864418915515216212952509522438049:\\
\;\;\;\;\frac{\frac{\frac{2}{x}}{x}}{x} + \left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right)\\

\mathbf{elif}\;x \le 115.5593852642430903188142110593616962433:\\
\;\;\;\;\frac{1 \cdot x - \left(x + 1\right) \cdot 2}{\left(x + 1\right) \cdot x} + \frac{1}{x - 1}\\

\mathbf{else}:\\
\;\;\;\;\frac{2}{{x}^{3}} + \left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right)\\

\end{array}
double f(double x) {
        double r84031 = 1.0;
        double r84032 = x;
        double r84033 = r84032 + r84031;
        double r84034 = r84031 / r84033;
        double r84035 = 2.0;
        double r84036 = r84035 / r84032;
        double r84037 = r84034 - r84036;
        double r84038 = r84032 - r84031;
        double r84039 = r84031 / r84038;
        double r84040 = r84037 + r84039;
        return r84040;
}

double f(double x) {
        double r84041 = x;
        double r84042 = -117.27098644189155;
        bool r84043 = r84041 <= r84042;
        double r84044 = 2.0;
        double r84045 = r84044 / r84041;
        double r84046 = r84045 / r84041;
        double r84047 = r84046 / r84041;
        double r84048 = 7.0;
        double r84049 = pow(r84041, r84048);
        double r84050 = r84044 / r84049;
        double r84051 = 5.0;
        double r84052 = pow(r84041, r84051);
        double r84053 = r84044 / r84052;
        double r84054 = r84050 + r84053;
        double r84055 = r84047 + r84054;
        double r84056 = 115.55938526424309;
        bool r84057 = r84041 <= r84056;
        double r84058 = 1.0;
        double r84059 = r84058 * r84041;
        double r84060 = r84041 + r84058;
        double r84061 = r84060 * r84044;
        double r84062 = r84059 - r84061;
        double r84063 = r84060 * r84041;
        double r84064 = r84062 / r84063;
        double r84065 = r84041 - r84058;
        double r84066 = r84058 / r84065;
        double r84067 = r84064 + r84066;
        double r84068 = 3.0;
        double r84069 = pow(r84041, r84068);
        double r84070 = r84044 / r84069;
        double r84071 = r84070 + r84054;
        double r84072 = r84057 ? r84067 : r84071;
        double r84073 = r84043 ? r84055 : r84072;
        return r84073;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original9.8
Target0.2
Herbie0.2
\[\frac{2}{x \cdot \left(x \cdot x - 1\right)}\]

Derivation

  1. Split input into 3 regimes
  2. if x < -117.27098644189155

    1. Initial program 20.5

      \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    2. Using strategy rm
    3. Applied frac-sub52.6

      \[\leadsto \color{blue}{\frac{1 \cdot x - \left(x + 1\right) \cdot 2}{\left(x + 1\right) \cdot x}} + \frac{1}{x - 1}\]
    4. Taylor expanded around inf 0.3

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

      \[\leadsto \color{blue}{\frac{2}{{x}^{3}} + \left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right)}\]
    6. Using strategy rm
    7. Applied cube-mult0.4

      \[\leadsto \frac{2}{\color{blue}{x \cdot \left(x \cdot x\right)}} + \left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right)\]
    8. Applied associate-/r*0.1

      \[\leadsto \color{blue}{\frac{\frac{2}{x}}{x \cdot x}} + \left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right)\]
    9. Using strategy rm
    10. Applied associate-/r*0.1

      \[\leadsto \color{blue}{\frac{\frac{\frac{2}{x}}{x}}{x}} + \left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right)\]

    if -117.27098644189155 < x < 115.55938526424309

    1. Initial program 0.0

      \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    2. Using strategy rm
    3. Applied frac-sub0.0

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

    if 115.55938526424309 < x

    1. Initial program 18.8

      \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    2. Using strategy rm
    3. Applied frac-sub51.6

      \[\leadsto \color{blue}{\frac{1 \cdot x - \left(x + 1\right) \cdot 2}{\left(x + 1\right) \cdot x}} + \frac{1}{x - 1}\]
    4. Taylor expanded around inf 0.6

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -117.2709864418915515216212952509522438049:\\ \;\;\;\;\frac{\frac{\frac{2}{x}}{x}}{x} + \left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right)\\ \mathbf{elif}\;x \le 115.5593852642430903188142110593616962433:\\ \;\;\;\;\frac{1 \cdot x - \left(x + 1\right) \cdot 2}{\left(x + 1\right) \cdot x} + \frac{1}{x - 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{{x}^{3}} + \left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019303 +o rules:numerics
(FPCore (x)
  :name "3frac (problem 3.3.3)"
  :precision binary64

  :herbie-target
  (/ 2 (* x (- (* x x) 1)))

  (+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1))))