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

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

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

\end{array}
double f(double x) {
        double r1837352 = 1.0;
        double r1837353 = x;
        double r1837354 = r1837353 + r1837352;
        double r1837355 = r1837352 / r1837354;
        double r1837356 = 2.0;
        double r1837357 = r1837356 / r1837353;
        double r1837358 = r1837355 - r1837357;
        double r1837359 = r1837353 - r1837352;
        double r1837360 = r1837352 / r1837359;
        double r1837361 = r1837358 + r1837360;
        return r1837361;
}

double f(double x) {
        double r1837362 = x;
        double r1837363 = -113.60321351793068;
        bool r1837364 = r1837362 <= r1837363;
        double r1837365 = 2.0;
        double r1837366 = 7.0;
        double r1837367 = pow(r1837362, r1837366);
        double r1837368 = r1837365 / r1837367;
        double r1837369 = r1837365 / r1837362;
        double r1837370 = r1837362 * r1837362;
        double r1837371 = r1837369 / r1837370;
        double r1837372 = 5.0;
        double r1837373 = pow(r1837362, r1837372);
        double r1837374 = r1837365 / r1837373;
        double r1837375 = r1837371 + r1837374;
        double r1837376 = r1837368 + r1837375;
        double r1837377 = 110.41034748839138;
        bool r1837378 = r1837362 <= r1837377;
        double r1837379 = 1.0;
        double r1837380 = r1837379 + r1837362;
        double r1837381 = r1837379 / r1837380;
        double r1837382 = r1837381 - r1837369;
        double r1837383 = r1837362 - r1837379;
        double r1837384 = r1837379 / r1837383;
        double r1837385 = r1837382 + r1837384;
        double r1837386 = r1837370 * r1837362;
        double r1837387 = r1837365 / r1837386;
        double r1837388 = r1837387 + r1837374;
        double r1837389 = r1837388 + r1837368;
        double r1837390 = r1837378 ? r1837385 : r1837389;
        double r1837391 = r1837364 ? r1837376 : r1837390;
        return r1837391;
}

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

Derivation

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

    1. Initial program 19.2

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

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

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

    if -113.60321351793068 < x < 110.41034748839138

    1. Initial program 0.0

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

    if 110.41034748839138 < x

    1. Initial program 20.4

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

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

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

Reproduce

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