Average Error: 9.9 → 0.1
Time: 2.9m
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -126.42895798832238:\\ \;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{\frac{\frac{2}{x}}{x}}{x}\right)\\ \mathbf{elif}\;x \le 110.24708161365915:\\ \;\;\;\;\left(\frac{1}{1 + x} - \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 -126.42895798832238:\\
\;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{\frac{\frac{2}{x}}{x}}{x}\right)\\

\mathbf{elif}\;x \le 110.24708161365915:\\
\;\;\;\;\left(\frac{1}{1 + x} - \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 r12444291 = 1.0;
        double r12444292 = x;
        double r12444293 = r12444292 + r12444291;
        double r12444294 = r12444291 / r12444293;
        double r12444295 = 2.0;
        double r12444296 = r12444295 / r12444292;
        double r12444297 = r12444294 - r12444296;
        double r12444298 = r12444292 - r12444291;
        double r12444299 = r12444291 / r12444298;
        double r12444300 = r12444297 + r12444299;
        return r12444300;
}

double f(double x) {
        double r12444301 = x;
        double r12444302 = -126.42895798832238;
        bool r12444303 = r12444301 <= r12444302;
        double r12444304 = 2.0;
        double r12444305 = 7.0;
        double r12444306 = pow(r12444301, r12444305);
        double r12444307 = r12444304 / r12444306;
        double r12444308 = 5.0;
        double r12444309 = pow(r12444301, r12444308);
        double r12444310 = r12444304 / r12444309;
        double r12444311 = r12444304 / r12444301;
        double r12444312 = r12444311 / r12444301;
        double r12444313 = r12444312 / r12444301;
        double r12444314 = r12444310 + r12444313;
        double r12444315 = r12444307 + r12444314;
        double r12444316 = 110.24708161365915;
        bool r12444317 = r12444301 <= r12444316;
        double r12444318 = 1.0;
        double r12444319 = r12444318 + r12444301;
        double r12444320 = r12444318 / r12444319;
        double r12444321 = r12444320 - r12444311;
        double r12444322 = r12444301 - r12444318;
        double r12444323 = r12444318 / r12444322;
        double r12444324 = r12444321 + r12444323;
        double r12444325 = r12444317 ? r12444324 : r12444315;
        double r12444326 = r12444303 ? r12444315 : r12444325;
        return r12444326;
}

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 < -126.42895798832238 or 110.24708161365915 < x

    1. Initial program 19.9

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

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

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

    if -126.42895798832238 < x < 110.24708161365915

    1. Initial program 0.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -126.42895798832238:\\ \;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{\frac{\frac{2}{x}}{x}}{x}\right)\\ \mathbf{elif}\;x \le 110.24708161365915:\\ \;\;\;\;\left(\frac{1}{1 + x} - \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 2019104 +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))))