Average Error: 10.2 → 0.1
Time: 26.7s
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -101.7757910098267331022725556977093219757 \lor \neg \left(x \le 101.6588453171347055103979073464870452881\right):\\ \;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{\frac{\frac{2}{x}}{x}}{x}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(x - 1\right) \cdot \left(\left({1}^{\frac{2}{3}} \cdot \sqrt[3]{\frac{1}{x + 1}}\right) \cdot x - \left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot 2\right) + \left(\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot x\right) \cdot 1}{\left(\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot x\right) \cdot \left(x - 1\right)}\\ \end{array}\]
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -101.7757910098267331022725556977093219757 \lor \neg \left(x \le 101.6588453171347055103979073464870452881\right):\\
\;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{\frac{\frac{2}{x}}{x}}{x}\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{\left(x - 1\right) \cdot \left(\left({1}^{\frac{2}{3}} \cdot \sqrt[3]{\frac{1}{x + 1}}\right) \cdot x - \left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot 2\right) + \left(\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot x\right) \cdot 1}{\left(\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot x\right) \cdot \left(x - 1\right)}\\

\end{array}
double f(double x) {
        double r132340 = 1.0;
        double r132341 = x;
        double r132342 = r132341 + r132340;
        double r132343 = r132340 / r132342;
        double r132344 = 2.0;
        double r132345 = r132344 / r132341;
        double r132346 = r132343 - r132345;
        double r132347 = r132341 - r132340;
        double r132348 = r132340 / r132347;
        double r132349 = r132346 + r132348;
        return r132349;
}

double f(double x) {
        double r132350 = x;
        double r132351 = -101.77579100982673;
        bool r132352 = r132350 <= r132351;
        double r132353 = 101.6588453171347;
        bool r132354 = r132350 <= r132353;
        double r132355 = !r132354;
        bool r132356 = r132352 || r132355;
        double r132357 = 2.0;
        double r132358 = 7.0;
        double r132359 = pow(r132350, r132358);
        double r132360 = r132357 / r132359;
        double r132361 = 5.0;
        double r132362 = pow(r132350, r132361);
        double r132363 = r132357 / r132362;
        double r132364 = r132357 / r132350;
        double r132365 = r132364 / r132350;
        double r132366 = r132365 / r132350;
        double r132367 = r132363 + r132366;
        double r132368 = r132360 + r132367;
        double r132369 = 1.0;
        double r132370 = r132350 - r132369;
        double r132371 = 0.6666666666666666;
        double r132372 = pow(r132369, r132371);
        double r132373 = r132350 + r132369;
        double r132374 = r132369 / r132373;
        double r132375 = cbrt(r132374);
        double r132376 = r132372 * r132375;
        double r132377 = r132376 * r132350;
        double r132378 = cbrt(r132373);
        double r132379 = r132378 * r132378;
        double r132380 = r132379 * r132357;
        double r132381 = r132377 - r132380;
        double r132382 = r132370 * r132381;
        double r132383 = r132379 * r132350;
        double r132384 = r132383 * r132369;
        double r132385 = r132382 + r132384;
        double r132386 = r132383 * r132370;
        double r132387 = r132385 / r132386;
        double r132388 = r132356 ? r132368 : r132387;
        return r132388;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

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

Derivation

  1. Split input into 2 regimes
  2. if x < -101.77579100982673 or 101.6588453171347 < x

    1. Initial program 20.2

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

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

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

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

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

    if -101.77579100982673 < x < 101.6588453171347

    1. Initial program 0.0

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

      \[\leadsto \left(\color{blue}{\left(\sqrt[3]{\frac{1}{x + 1}} \cdot \sqrt[3]{\frac{1}{x + 1}}\right) \cdot \sqrt[3]{\frac{1}{x + 1}}} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    4. Using strategy rm
    5. Applied cbrt-div0.0

      \[\leadsto \left(\left(\sqrt[3]{\frac{1}{x + 1}} \cdot \sqrt[3]{\frac{1}{x + 1}}\right) \cdot \color{blue}{\frac{\sqrt[3]{1}}{\sqrt[3]{x + 1}}} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    6. Applied cbrt-div0.0

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

      \[\leadsto \left(\color{blue}{\frac{\sqrt[3]{\frac{1}{x + 1}} \cdot \sqrt[3]{1}}{\sqrt[3]{x + 1}}} \cdot \frac{\sqrt[3]{1}}{\sqrt[3]{x + 1}} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    8. Applied frac-times0.0

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

      \[\leadsto \color{blue}{\frac{\left(\left(\sqrt[3]{\frac{1}{x + 1}} \cdot \sqrt[3]{1}\right) \cdot \sqrt[3]{1}\right) \cdot x - \left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot 2}{\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot x}} + \frac{1}{x - 1}\]
    10. Applied frac-add0.1

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

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

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

Reproduce

herbie shell --seed 2019322 
(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))))