Average Error: 10.0 → 0.2
Time: 3.4m
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -94.26011724378388:\\ \;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{2}{\left(x \cdot x\right) \cdot x}\right)\\ \mathbf{elif}\;x \le 104.89296465505318:\\ \;\;\;\;\left(\frac{1}{1 + x} - \frac{2}{x}\right) + \left((\left(\frac{-2}{\sqrt[3]{x}}\right) \cdot \left(\frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right) + \left(\frac{2}{\sqrt[3]{x}} \cdot \frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right))_* + \frac{1}{x - 1}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{{x}^{7}} + (\left(\frac{2}{x}\right) \cdot \left(\frac{1}{x \cdot x}\right) + \left(\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 -94.26011724378388:\\
\;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{2}{\left(x \cdot x\right) \cdot x}\right)\\

\mathbf{elif}\;x \le 104.89296465505318:\\
\;\;\;\;\left(\frac{1}{1 + x} - \frac{2}{x}\right) + \left((\left(\frac{-2}{\sqrt[3]{x}}\right) \cdot \left(\frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right) + \left(\frac{2}{\sqrt[3]{x}} \cdot \frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right))_* + \frac{1}{x - 1}\right)\\

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

\end{array}
double f(double x) {
        double r13719254 = 1.0;
        double r13719255 = x;
        double r13719256 = r13719255 + r13719254;
        double r13719257 = r13719254 / r13719256;
        double r13719258 = 2.0;
        double r13719259 = r13719258 / r13719255;
        double r13719260 = r13719257 - r13719259;
        double r13719261 = r13719255 - r13719254;
        double r13719262 = r13719254 / r13719261;
        double r13719263 = r13719260 + r13719262;
        return r13719263;
}

double f(double x) {
        double r13719264 = x;
        double r13719265 = -94.26011724378388;
        bool r13719266 = r13719264 <= r13719265;
        double r13719267 = 2.0;
        double r13719268 = 7.0;
        double r13719269 = pow(r13719264, r13719268);
        double r13719270 = r13719267 / r13719269;
        double r13719271 = 5.0;
        double r13719272 = pow(r13719264, r13719271);
        double r13719273 = r13719267 / r13719272;
        double r13719274 = r13719264 * r13719264;
        double r13719275 = r13719274 * r13719264;
        double r13719276 = r13719267 / r13719275;
        double r13719277 = r13719273 + r13719276;
        double r13719278 = r13719270 + r13719277;
        double r13719279 = 104.89296465505318;
        bool r13719280 = r13719264 <= r13719279;
        double r13719281 = 1.0;
        double r13719282 = r13719281 + r13719264;
        double r13719283 = r13719281 / r13719282;
        double r13719284 = r13719267 / r13719264;
        double r13719285 = r13719283 - r13719284;
        double r13719286 = -2.0;
        double r13719287 = cbrt(r13719264);
        double r13719288 = r13719286 / r13719287;
        double r13719289 = r13719287 * r13719287;
        double r13719290 = r13719281 / r13719289;
        double r13719291 = r13719267 / r13719287;
        double r13719292 = r13719291 * r13719290;
        double r13719293 = fma(r13719288, r13719290, r13719292);
        double r13719294 = r13719264 - r13719281;
        double r13719295 = r13719281 / r13719294;
        double r13719296 = r13719293 + r13719295;
        double r13719297 = r13719285 + r13719296;
        double r13719298 = r13719281 / r13719274;
        double r13719299 = fma(r13719284, r13719298, r13719273);
        double r13719300 = r13719270 + r13719299;
        double r13719301 = r13719280 ? r13719297 : r13719300;
        double r13719302 = r13719266 ? r13719278 : r13719301;
        return r13719302;
}

Error

Bits error versus x

Target

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

Derivation

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

    1. Initial program 20.3

      \[\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. Taylor expanded around inf 0.5

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

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

    if -94.26011724378388 < x < 104.89296465505318

    1. Initial program 0.0

      \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt1.5

      \[\leadsto \left(\frac{1}{x + 1} - \frac{2}{\color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}}}\right) + \frac{1}{x - 1}\]
    4. Applied *-un-lft-identity1.5

      \[\leadsto \left(\frac{1}{x + 1} - \frac{\color{blue}{1 \cdot 2}}{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}}\right) + \frac{1}{x - 1}\]
    5. Applied times-frac1.5

      \[\leadsto \left(\frac{1}{x + 1} - \color{blue}{\frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{2}{\sqrt[3]{x}}}\right) + \frac{1}{x - 1}\]
    6. Applied *-un-lft-identity1.5

      \[\leadsto \left(\frac{1}{\color{blue}{1 \cdot \left(x + 1\right)}} - \frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{2}{\sqrt[3]{x}}\right) + \frac{1}{x - 1}\]
    7. Applied *-un-lft-identity1.5

      \[\leadsto \left(\frac{\color{blue}{1 \cdot 1}}{1 \cdot \left(x + 1\right)} - \frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{2}{\sqrt[3]{x}}\right) + \frac{1}{x - 1}\]
    8. Applied times-frac1.5

      \[\leadsto \left(\color{blue}{\frac{1}{1} \cdot \frac{1}{x + 1}} - \frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{2}{\sqrt[3]{x}}\right) + \frac{1}{x - 1}\]
    9. Applied prod-diff1.5

      \[\leadsto \color{blue}{\left((\left(\frac{1}{1}\right) \cdot \left(\frac{1}{x + 1}\right) + \left(-\frac{2}{\sqrt[3]{x}} \cdot \frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right))_* + (\left(-\frac{2}{\sqrt[3]{x}}\right) \cdot \left(\frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right) + \left(\frac{2}{\sqrt[3]{x}} \cdot \frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right))_*\right)} + \frac{1}{x - 1}\]
    10. Applied associate-+l+1.5

      \[\leadsto \color{blue}{(\left(\frac{1}{1}\right) \cdot \left(\frac{1}{x + 1}\right) + \left(-\frac{2}{\sqrt[3]{x}} \cdot \frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right))_* + \left((\left(-\frac{2}{\sqrt[3]{x}}\right) \cdot \left(\frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right) + \left(\frac{2}{\sqrt[3]{x}} \cdot \frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right))_* + \frac{1}{x - 1}\right)}\]
    11. Simplified0.0

      \[\leadsto \color{blue}{\left(\frac{1}{1 + x} - \frac{2}{x}\right)} + \left((\left(-\frac{2}{\sqrt[3]{x}}\right) \cdot \left(\frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right) + \left(\frac{2}{\sqrt[3]{x}} \cdot \frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right))_* + \frac{1}{x - 1}\right)\]

    if 104.89296465505318 < 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.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 div-inv0.1

      \[\leadsto \frac{2}{{x}^{7}} + \left(\color{blue}{\frac{2}{x} \cdot \frac{1}{x \cdot x}} + \frac{2}{{x}^{5}}\right)\]
    6. Applied fma-def0.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -94.26011724378388:\\ \;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{2}{\left(x \cdot x\right) \cdot x}\right)\\ \mathbf{elif}\;x \le 104.89296465505318:\\ \;\;\;\;\left(\frac{1}{1 + x} - \frac{2}{x}\right) + \left((\left(\frac{-2}{\sqrt[3]{x}}\right) \cdot \left(\frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right) + \left(\frac{2}{\sqrt[3]{x}} \cdot \frac{1}{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right))_* + \frac{1}{x - 1}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{{x}^{7}} + (\left(\frac{2}{x}\right) \cdot \left(\frac{1}{x \cdot x}\right) + \left(\frac{2}{{x}^{5}}\right))_*\\ \end{array}\]

Reproduce

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