Average Error: 9.4 → 1.1
Time: 1.1m
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right) \le -193524134.39225513:\\ \;\;\;\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right)\\ \mathbf{elif}\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right) \le 0.0:\\ \;\;\;\;\left(\frac{2}{{x}^{7}} + \frac{2}{\left(x \cdot x\right) \cdot x}\right) + \frac{2}{{x}^{5}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right)\\ \end{array}\]
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
\begin{array}{l}
\mathbf{if}\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right) \le -193524134.39225513:\\
\;\;\;\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right)\\

\mathbf{elif}\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right) \le 0.0:\\
\;\;\;\;\left(\frac{2}{{x}^{7}} + \frac{2}{\left(x \cdot x\right) \cdot x}\right) + \frac{2}{{x}^{5}}\\

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

\end{array}
double f(double x) {
        double r4175858 = 1.0;
        double r4175859 = x;
        double r4175860 = r4175859 + r4175858;
        double r4175861 = r4175858 / r4175860;
        double r4175862 = 2.0;
        double r4175863 = r4175862 / r4175859;
        double r4175864 = r4175861 - r4175863;
        double r4175865 = r4175859 - r4175858;
        double r4175866 = r4175858 / r4175865;
        double r4175867 = r4175864 + r4175866;
        return r4175867;
}

double f(double x) {
        double r4175868 = 1.0;
        double r4175869 = x;
        double r4175870 = r4175869 - r4175868;
        double r4175871 = r4175868 / r4175870;
        double r4175872 = r4175869 + r4175868;
        double r4175873 = r4175868 / r4175872;
        double r4175874 = 2.0;
        double r4175875 = r4175874 / r4175869;
        double r4175876 = r4175873 - r4175875;
        double r4175877 = r4175871 + r4175876;
        double r4175878 = -193524134.39225513;
        bool r4175879 = r4175877 <= r4175878;
        double r4175880 = 0.0;
        bool r4175881 = r4175877 <= r4175880;
        double r4175882 = 7.0;
        double r4175883 = pow(r4175869, r4175882);
        double r4175884 = r4175874 / r4175883;
        double r4175885 = r4175869 * r4175869;
        double r4175886 = r4175885 * r4175869;
        double r4175887 = r4175874 / r4175886;
        double r4175888 = r4175884 + r4175887;
        double r4175889 = 5.0;
        double r4175890 = pow(r4175869, r4175889);
        double r4175891 = r4175874 / r4175890;
        double r4175892 = r4175888 + r4175891;
        double r4175893 = r4175881 ? r4175892 : r4175877;
        double r4175894 = r4175879 ? r4175877 : r4175893;
        return r4175894;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

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

Derivation

  1. Split input into 2 regimes
  2. if (+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1))) < -193524134.39225513 or 0.0 < (+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1)))

    1. Initial program 0.6

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

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

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

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

    if -193524134.39225513 < (+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1))) < 0.0

    1. Initial program 18.4

      \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity18.4

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

      \[\leadsto \left(\color{blue}{\frac{\frac{1}{1}}{x + 1}} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    5. Simplified18.4

      \[\leadsto \left(\frac{\color{blue}{1}}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    6. Using strategy rm
    7. Applied flip-+18.4

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

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

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

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

Reproduce

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

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

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