Average Error: 9.1 → 0.1
Time: 39.2s
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -113.57820944408793:\\ \;\;\;\;\frac{\frac{\frac{2}{x}}{x}}{x} + \left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right)\\ \mathbf{elif}\;x \le 111.69425311390617:\\ \;\;\;\;\left(\frac{1}{1 + x} - \frac{2}{x}\right) + \frac{1}{x - 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{2}{x}}{x \cdot x} + \left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right)\\ \end{array}\]
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -113.57820944408793:\\
\;\;\;\;\frac{\frac{\frac{2}{x}}{x}}{x} + \left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right)\\

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

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

\end{array}
double f(double x) {
        double r5778285 = 1.0;
        double r5778286 = x;
        double r5778287 = r5778286 + r5778285;
        double r5778288 = r5778285 / r5778287;
        double r5778289 = 2.0;
        double r5778290 = r5778289 / r5778286;
        double r5778291 = r5778288 - r5778290;
        double r5778292 = r5778286 - r5778285;
        double r5778293 = r5778285 / r5778292;
        double r5778294 = r5778291 + r5778293;
        return r5778294;
}

double f(double x) {
        double r5778295 = x;
        double r5778296 = -113.57820944408793;
        bool r5778297 = r5778295 <= r5778296;
        double r5778298 = 2.0;
        double r5778299 = r5778298 / r5778295;
        double r5778300 = r5778299 / r5778295;
        double r5778301 = r5778300 / r5778295;
        double r5778302 = 7.0;
        double r5778303 = pow(r5778295, r5778302);
        double r5778304 = r5778298 / r5778303;
        double r5778305 = 5.0;
        double r5778306 = pow(r5778295, r5778305);
        double r5778307 = r5778298 / r5778306;
        double r5778308 = r5778304 + r5778307;
        double r5778309 = r5778301 + r5778308;
        double r5778310 = 111.69425311390617;
        bool r5778311 = r5778295 <= r5778310;
        double r5778312 = 1.0;
        double r5778313 = r5778312 + r5778295;
        double r5778314 = r5778312 / r5778313;
        double r5778315 = r5778314 - r5778299;
        double r5778316 = r5778295 - r5778312;
        double r5778317 = r5778312 / r5778316;
        double r5778318 = r5778315 + r5778317;
        double r5778319 = r5778295 * r5778295;
        double r5778320 = r5778299 / r5778319;
        double r5778321 = r5778320 + r5778308;
        double r5778322 = r5778311 ? r5778318 : r5778321;
        double r5778323 = r5778297 ? r5778309 : r5778322;
        return r5778323;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

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

Derivation

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

    1. Initial program 18.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 \cdot \left(x \cdot x\right)} + \left(\frac{2}{{x}^{5}} + \frac{2}{{x}^{7}}\right)}\]
    4. Using strategy rm
    5. Applied associate-/r*0.1

      \[\leadsto \color{blue}{\frac{\frac{2}{x}}{x \cdot x}} + \left(\frac{2}{{x}^{5}} + \frac{2}{{x}^{7}}\right)\]
    6. Taylor expanded around inf 0.5

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

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

    if -113.57820944408793 < x < 111.69425311390617

    1. Initial program 0.1

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

    if 111.69425311390617 < x

    1. Initial program 18.7

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

      \[\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.4

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

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

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

Reproduce

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