Average Error: 10.0 → 0.2
Time: 24.1s
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1} \le -2.48635192710706 \cdot 10^{-5} \lor \neg \left(\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1} \le 7.80858 \cdot 10^{-22}\right):\\ \;\;\;\;\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{2}{{x}^{7}} + \frac{\frac{2}{x \cdot x}}{x}\right) + \frac{2}{{x}^{5}}\\ \end{array}\]
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
\begin{array}{l}
\mathbf{if}\;\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1} \le -2.48635192710706 \cdot 10^{-5} \lor \neg \left(\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1} \le 7.80858 \cdot 10^{-22}\right):\\
\;\;\;\;\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\\

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

\end{array}
double f(double x) {
        double r112747 = 1.0;
        double r112748 = x;
        double r112749 = r112748 + r112747;
        double r112750 = r112747 / r112749;
        double r112751 = 2.0;
        double r112752 = r112751 / r112748;
        double r112753 = r112750 - r112752;
        double r112754 = r112748 - r112747;
        double r112755 = r112747 / r112754;
        double r112756 = r112753 + r112755;
        return r112756;
}

double f(double x) {
        double r112757 = 1.0;
        double r112758 = x;
        double r112759 = r112758 + r112757;
        double r112760 = r112757 / r112759;
        double r112761 = 2.0;
        double r112762 = r112761 / r112758;
        double r112763 = r112760 - r112762;
        double r112764 = r112758 - r112757;
        double r112765 = r112757 / r112764;
        double r112766 = r112763 + r112765;
        double r112767 = -2.4863519271070555e-05;
        bool r112768 = r112766 <= r112767;
        double r112769 = 7.808584982500581e-22;
        bool r112770 = r112766 <= r112769;
        double r112771 = !r112770;
        bool r112772 = r112768 || r112771;
        double r112773 = 7.0;
        double r112774 = pow(r112758, r112773);
        double r112775 = r112761 / r112774;
        double r112776 = r112758 * r112758;
        double r112777 = r112761 / r112776;
        double r112778 = r112777 / r112758;
        double r112779 = r112775 + r112778;
        double r112780 = 5.0;
        double r112781 = pow(r112758, r112780);
        double r112782 = r112761 / r112781;
        double r112783 = r112779 + r112782;
        double r112784 = r112772 ? r112766 : r112783;
        return r112784;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

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

Derivation

  1. Split input into 2 regimes
  2. if (+ (- (/ 1.0 (+ x 1.0)) (/ 2.0 x)) (/ 1.0 (- x 1.0))) < -2.4863519271070555e-05 or 7.808584982500581e-22 < (+ (- (/ 1.0 (+ x 1.0)) (/ 2.0 x)) (/ 1.0 (- x 1.0)))

    1. Initial program 0.2

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

    if -2.4863519271070555e-05 < (+ (- (/ 1.0 (+ x 1.0)) (/ 2.0 x)) (/ 1.0 (- x 1.0))) < 7.808584982500581e-22

    1. Initial program 20.1

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1} \le -2.48635192710706 \cdot 10^{-5} \lor \neg \left(\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1} \le 7.80858 \cdot 10^{-22}\right):\\ \;\;\;\;\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{2}{{x}^{7}} + \frac{\frac{2}{x \cdot x}}{x}\right) + \frac{2}{{x}^{5}}\\ \end{array}\]

Reproduce

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

  :herbie-target
  (/ 2.0 (* x (- (* x x) 1.0)))

  (+ (- (/ 1.0 (+ x 1.0)) (/ 2.0 x)) (/ 1.0 (- x 1.0))))