Average Error: 9.6 → 0.1
Time: 3.5m
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -117.98170921583495:\\ \;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{\frac{\frac{2}{x}}{x}}{x}\right)\\ \mathbf{elif}\;x \le 111.71801060653577:\\ \;\;\;\;\left(\frac{1}{1 + x} - \frac{2}{x}\right) + \left(\mathsf{fma}\left(\left(-\sqrt[3]{\frac{2}{x}}\right), \left(\sqrt[3]{\frac{2}{x}} \cdot \sqrt[3]{\frac{2}{x}}\right), \left(\left(\sqrt[3]{\frac{2}{x}} \cdot \sqrt[3]{\frac{2}{x}}\right) \cdot \sqrt[3]{\frac{2}{x}}\right)\right) + \frac{1}{x - 1}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{\frac{2}{x}}{x \cdot x} + \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 -117.98170921583495:\\
\;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{\frac{\frac{2}{x}}{x}}{x}\right)\\

\mathbf{elif}\;x \le 111.71801060653577:\\
\;\;\;\;\left(\frac{1}{1 + x} - \frac{2}{x}\right) + \left(\mathsf{fma}\left(\left(-\sqrt[3]{\frac{2}{x}}\right), \left(\sqrt[3]{\frac{2}{x}} \cdot \sqrt[3]{\frac{2}{x}}\right), \left(\left(\sqrt[3]{\frac{2}{x}} \cdot \sqrt[3]{\frac{2}{x}}\right) \cdot \sqrt[3]{\frac{2}{x}}\right)\right) + \frac{1}{x - 1}\right)\\

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

\end{array}
double f(double x) {
        double r12579134 = 1.0;
        double r12579135 = x;
        double r12579136 = r12579135 + r12579134;
        double r12579137 = r12579134 / r12579136;
        double r12579138 = 2.0;
        double r12579139 = r12579138 / r12579135;
        double r12579140 = r12579137 - r12579139;
        double r12579141 = r12579135 - r12579134;
        double r12579142 = r12579134 / r12579141;
        double r12579143 = r12579140 + r12579142;
        return r12579143;
}

double f(double x) {
        double r12579144 = x;
        double r12579145 = -117.98170921583495;
        bool r12579146 = r12579144 <= r12579145;
        double r12579147 = 2.0;
        double r12579148 = 7.0;
        double r12579149 = pow(r12579144, r12579148);
        double r12579150 = r12579147 / r12579149;
        double r12579151 = 5.0;
        double r12579152 = pow(r12579144, r12579151);
        double r12579153 = r12579147 / r12579152;
        double r12579154 = r12579147 / r12579144;
        double r12579155 = r12579154 / r12579144;
        double r12579156 = r12579155 / r12579144;
        double r12579157 = r12579153 + r12579156;
        double r12579158 = r12579150 + r12579157;
        double r12579159 = 111.71801060653577;
        bool r12579160 = r12579144 <= r12579159;
        double r12579161 = 1.0;
        double r12579162 = r12579161 + r12579144;
        double r12579163 = r12579161 / r12579162;
        double r12579164 = r12579163 - r12579154;
        double r12579165 = cbrt(r12579154);
        double r12579166 = -r12579165;
        double r12579167 = r12579165 * r12579165;
        double r12579168 = r12579167 * r12579165;
        double r12579169 = fma(r12579166, r12579167, r12579168);
        double r12579170 = r12579144 - r12579161;
        double r12579171 = r12579161 / r12579170;
        double r12579172 = r12579169 + r12579171;
        double r12579173 = r12579164 + r12579172;
        double r12579174 = r12579144 * r12579144;
        double r12579175 = r12579154 / r12579174;
        double r12579176 = r12579175 + r12579153;
        double r12579177 = r12579150 + r12579176;
        double r12579178 = r12579160 ? r12579173 : r12579177;
        double r12579179 = r12579146 ? r12579158 : r12579178;
        return r12579179;
}

Error

Bits error versus x

Target

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

Derivation

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

    1. Initial program 19.0

      \[\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 -117.98170921583495 < x < 111.71801060653577

    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.3

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

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

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

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

      \[\leadsto \color{blue}{\left(\mathsf{fma}\left(\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt{x + 1}}\right), \left(\frac{\sqrt[3]{1}}{\sqrt{x + 1}}\right), \left(-\sqrt[3]{\frac{2}{x}} \cdot \left(\sqrt[3]{\frac{2}{x}} \cdot \sqrt[3]{\frac{2}{x}}\right)\right)\right) + \mathsf{fma}\left(\left(-\sqrt[3]{\frac{2}{x}}\right), \left(\sqrt[3]{\frac{2}{x}} \cdot \sqrt[3]{\frac{2}{x}}\right), \left(\sqrt[3]{\frac{2}{x}} \cdot \left(\sqrt[3]{\frac{2}{x}} \cdot \sqrt[3]{\frac{2}{x}}\right)\right)\right)\right)} + \frac{1}{x - 1}\]
    8. Applied associate-+l+1.5

      \[\leadsto \color{blue}{\mathsf{fma}\left(\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt{x + 1}}\right), \left(\frac{\sqrt[3]{1}}{\sqrt{x + 1}}\right), \left(-\sqrt[3]{\frac{2}{x}} \cdot \left(\sqrt[3]{\frac{2}{x}} \cdot \sqrt[3]{\frac{2}{x}}\right)\right)\right) + \left(\mathsf{fma}\left(\left(-\sqrt[3]{\frac{2}{x}}\right), \left(\sqrt[3]{\frac{2}{x}} \cdot \sqrt[3]{\frac{2}{x}}\right), \left(\sqrt[3]{\frac{2}{x}} \cdot \left(\sqrt[3]{\frac{2}{x}} \cdot \sqrt[3]{\frac{2}{x}}\right)\right)\right) + \frac{1}{x - 1}\right)}\]
    9. Simplified0.1

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

    if 111.71801060653577 < x

    1. Initial program 19.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)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification0.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -117.98170921583495:\\ \;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{2}{{x}^{5}} + \frac{\frac{\frac{2}{x}}{x}}{x}\right)\\ \mathbf{elif}\;x \le 111.71801060653577:\\ \;\;\;\;\left(\frac{1}{1 + x} - \frac{2}{x}\right) + \left(\mathsf{fma}\left(\left(-\sqrt[3]{\frac{2}{x}}\right), \left(\sqrt[3]{\frac{2}{x}} \cdot \sqrt[3]{\frac{2}{x}}\right), \left(\left(\sqrt[3]{\frac{2}{x}} \cdot \sqrt[3]{\frac{2}{x}}\right) \cdot \sqrt[3]{\frac{2}{x}}\right)\right) + \frac{1}{x - 1}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{{x}^{7}} + \left(\frac{\frac{2}{x}}{x \cdot x} + \frac{2}{{x}^{5}}\right)\\ \end{array}\]

Reproduce

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