Average Error: 9.8 → 0.4
Time: 3.2m
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.9939699131687192:\\ \;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{\frac{\frac{2}{x}}{x}}{x}\right)\\ \mathbf{elif}\;x \le 1.2572991461165262:\\ \;\;\;\;\left(\left(1 - x\right) + \frac{-2}{x}\right) + \frac{1}{x - 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{\frac{\frac{2}{x}}{x}}{x}\right)\\ \end{array}\]
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -0.9939699131687192:\\
\;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{\frac{\frac{2}{x}}{x}}{x}\right)\\

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

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

\end{array}
double f(double x) {
        double r15805477 = 1.0;
        double r15805478 = x;
        double r15805479 = r15805478 + r15805477;
        double r15805480 = r15805477 / r15805479;
        double r15805481 = 2.0;
        double r15805482 = r15805481 / r15805478;
        double r15805483 = r15805480 - r15805482;
        double r15805484 = r15805478 - r15805477;
        double r15805485 = r15805477 / r15805484;
        double r15805486 = r15805483 + r15805485;
        return r15805486;
}

double f(double x) {
        double r15805487 = x;
        double r15805488 = -0.9939699131687192;
        bool r15805489 = r15805487 <= r15805488;
        double r15805490 = 2.0;
        double r15805491 = 7.0;
        double r15805492 = pow(r15805487, r15805491);
        double r15805493 = r15805490 / r15805492;
        double r15805494 = 5.0;
        double r15805495 = pow(r15805487, r15805494);
        double r15805496 = r15805490 / r15805495;
        double r15805497 = r15805490 / r15805487;
        double r15805498 = r15805497 / r15805487;
        double r15805499 = r15805498 / r15805487;
        double r15805500 = r15805496 + r15805499;
        double r15805501 = r15805493 + r15805500;
        double r15805502 = 1.2572991461165262;
        bool r15805503 = r15805487 <= r15805502;
        double r15805504 = 1.0;
        double r15805505 = r15805504 - r15805487;
        double r15805506 = -2.0;
        double r15805507 = r15805506 / r15805487;
        double r15805508 = r15805505 + r15805507;
        double r15805509 = r15805487 - r15805504;
        double r15805510 = r15805504 / r15805509;
        double r15805511 = r15805508 + r15805510;
        double r15805512 = r15805503 ? r15805511 : r15805501;
        double r15805513 = r15805489 ? r15805501 : r15805512;
        return r15805513;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

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

Derivation

  1. Split input into 2 regimes
  2. if x < -0.9939699131687192 or 1.2572991461165262 < x

    1. Initial program 19.8

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

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

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

    if -0.9939699131687192 < x < 1.2572991461165262

    1. Initial program 0.0

      \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    2. Taylor expanded around 0 0.6

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

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

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

Reproduce

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