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

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

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

\end{array}
double f(double x) {
        double r136790 = 1.0;
        double r136791 = x;
        double r136792 = r136791 + r136790;
        double r136793 = r136790 / r136792;
        double r136794 = 2.0;
        double r136795 = r136794 / r136791;
        double r136796 = r136793 - r136795;
        double r136797 = r136791 - r136790;
        double r136798 = r136790 / r136797;
        double r136799 = r136796 + r136798;
        return r136799;
}

double f(double x) {
        double r136800 = x;
        double r136801 = -1313.1390827564153;
        bool r136802 = r136800 <= r136801;
        double r136803 = 2.0;
        double r136804 = 5.0;
        double r136805 = pow(r136800, r136804);
        double r136806 = r136803 / r136805;
        double r136807 = 3.0;
        double r136808 = pow(r136800, r136807);
        double r136809 = r136803 / r136808;
        double r136810 = r136806 + r136809;
        double r136811 = 7.0;
        double r136812 = pow(r136800, r136811);
        double r136813 = r136803 / r136812;
        double r136814 = r136810 + r136813;
        double r136815 = 33013378.796887353;
        bool r136816 = r136800 <= r136815;
        double r136817 = 1.0;
        double r136818 = r136800 + r136817;
        double r136819 = r136800 * r136818;
        double r136820 = r136817 * r136819;
        double r136821 = r136800 - r136817;
        double r136822 = r136803 * r136818;
        double r136823 = r136800 * r136817;
        double r136824 = r136822 - r136823;
        double r136825 = r136821 * r136824;
        double r136826 = r136820 - r136825;
        double r136827 = r136821 * r136819;
        double r136828 = r136826 / r136827;
        double r136829 = r136800 * r136800;
        double r136830 = r136803 / r136829;
        double r136831 = r136830 / r136800;
        double r136832 = r136806 + r136831;
        double r136833 = r136832 + r136813;
        double r136834 = r136816 ? r136828 : r136833;
        double r136835 = r136802 ? r136814 : r136834;
        return r136835;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

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

Derivation

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

    1. Initial program 20.1

      \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    2. Simplified20.1

      \[\leadsto \color{blue}{\frac{1}{x - 1} - \left(\frac{2}{x} - \frac{1}{x + 1}\right)}\]
    3. 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)}\]
    4. Simplified0.6

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

    if -1313.1390827564153 < x < 33013378.796887353

    1. Initial program 0.4

      \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    2. Simplified0.4

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

      \[\leadsto \frac{1}{x - 1} - \color{blue}{\frac{2 \cdot \left(x + 1\right) - x \cdot 1}{x \cdot \left(x + 1\right)}}\]
    5. Applied frac-sub0.0

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

    if 33013378.796887353 < x

    1. Initial program 19.1

      \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    2. Simplified19.1

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

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

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

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

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

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

Reproduce

herbie shell --seed 2019235 +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))))