Average Error: 9.9 → 0.1
Time: 35.4s
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le 1.2655507157052785 \cdot 10^{+49}:\\ \;\;\;\;\frac{2}{\left(x + x \cdot x\right) \cdot x - \left(x + x \cdot x\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{\frac{2}{x}}{x \cdot x} + \frac{2}{{x}^{5}}\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 1.2655507157052785 \cdot 10^{+49}:\\
\;\;\;\;\frac{2}{\left(x + x \cdot x\right) \cdot x - \left(x + x \cdot x\right)}\\

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

\end{array}
double f(double x) {
        double r8851461 = 1.0;
        double r8851462 = x;
        double r8851463 = r8851462 + r8851461;
        double r8851464 = r8851461 / r8851463;
        double r8851465 = 2.0;
        double r8851466 = r8851465 / r8851462;
        double r8851467 = r8851464 - r8851466;
        double r8851468 = r8851462 - r8851461;
        double r8851469 = r8851461 / r8851468;
        double r8851470 = r8851467 + r8851469;
        return r8851470;
}

double f(double x) {
        double r8851471 = x;
        double r8851472 = 1.2655507157052785e+49;
        bool r8851473 = r8851471 <= r8851472;
        double r8851474 = 2.0;
        double r8851475 = r8851471 * r8851471;
        double r8851476 = r8851471 + r8851475;
        double r8851477 = r8851476 * r8851471;
        double r8851478 = r8851477 - r8851476;
        double r8851479 = r8851474 / r8851478;
        double r8851480 = r8851474 / r8851471;
        double r8851481 = r8851480 / r8851475;
        double r8851482 = 5.0;
        double r8851483 = pow(r8851471, r8851482);
        double r8851484 = r8851474 / r8851483;
        double r8851485 = r8851481 + r8851484;
        double r8851486 = 7.0;
        double r8851487 = pow(r8851471, r8851486);
        double r8851488 = r8851474 / r8851487;
        double r8851489 = r8851485 + r8851488;
        double r8851490 = r8851473 ? r8851479 : r8851489;
        return r8851490;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

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

Derivation

  1. Split input into 2 regimes
  2. if x < 1.2655507157052785e+49

    1. Initial program 8.8

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

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

      \[\leadsto \frac{1}{x - 1} + \color{blue}{\left(\frac{1}{x + 1} + \left(-\frac{2}{x}\right)\right)}\]
    6. Applied associate-+r+8.8

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

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

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

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

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

      \[\leadsto \frac{\left(\left(-2 \cdot \left(x \cdot x\right) + 2\right) + x \cdot x\right) + x \cdot x}{\color{blue}{x \cdot \left(x + x \cdot x\right) - \left(x + x \cdot x\right)}}\]
    13. Taylor expanded around 0 0.2

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

    if 1.2655507157052785e+49 < x

    1. Initial program 13.7

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

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

      \[\leadsto \frac{1}{x - 1} + \color{blue}{\left(\frac{1}{x + 1} + \left(-\frac{2}{x}\right)\right)}\]
    6. Applied associate-+r+13.7

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

      \[\leadsto \left(\frac{1}{x - 1} + \frac{1}{x + 1}\right) + \color{blue}{\frac{-2}{x}}\]
    8. Taylor expanded around inf 0.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. Simplified0.1

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

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

Reproduce

herbie shell --seed 2019120 
(FPCore (x)
  :name "3frac (problem 3.3.3)"

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

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