Average Error: 9.8 → 0.3
Time: 14.3s
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -111.6084415544053598523532855324447154999 \lor \neg \left(x \le 100.9969367948411189672697219066321849823\right):\\ \;\;\;\;1 \cdot \mathsf{fma}\left(2, \frac{1}{{x}^{7}}, \mathsf{fma}\left(2, \frac{1}{{x}^{5}}, \frac{2}{{x}^{3}}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;1 \cdot \left(\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \left(\sqrt[3]{\frac{1}{x - 1}} \cdot \sqrt[3]{\frac{1}{x - 1}}\right) \cdot \sqrt[3]{\frac{1}{x - 1}}\right)\\ \end{array}\]
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -111.6084415544053598523532855324447154999 \lor \neg \left(x \le 100.9969367948411189672697219066321849823\right):\\
\;\;\;\;1 \cdot \mathsf{fma}\left(2, \frac{1}{{x}^{7}}, \mathsf{fma}\left(2, \frac{1}{{x}^{5}}, \frac{2}{{x}^{3}}\right)\right)\\

\mathbf{else}:\\
\;\;\;\;1 \cdot \left(\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \left(\sqrt[3]{\frac{1}{x - 1}} \cdot \sqrt[3]{\frac{1}{x - 1}}\right) \cdot \sqrt[3]{\frac{1}{x - 1}}\right)\\

\end{array}
double f(double x) {
        double r168778 = 1.0;
        double r168779 = x;
        double r168780 = r168779 + r168778;
        double r168781 = r168778 / r168780;
        double r168782 = 2.0;
        double r168783 = r168782 / r168779;
        double r168784 = r168781 - r168783;
        double r168785 = r168779 - r168778;
        double r168786 = r168778 / r168785;
        double r168787 = r168784 + r168786;
        return r168787;
}

double f(double x) {
        double r168788 = x;
        double r168789 = -111.60844155440536;
        bool r168790 = r168788 <= r168789;
        double r168791 = 100.99693679484112;
        bool r168792 = r168788 <= r168791;
        double r168793 = !r168792;
        bool r168794 = r168790 || r168793;
        double r168795 = 1.0;
        double r168796 = 2.0;
        double r168797 = 7.0;
        double r168798 = pow(r168788, r168797);
        double r168799 = r168795 / r168798;
        double r168800 = 5.0;
        double r168801 = pow(r168788, r168800);
        double r168802 = r168795 / r168801;
        double r168803 = 3.0;
        double r168804 = pow(r168788, r168803);
        double r168805 = r168796 / r168804;
        double r168806 = fma(r168796, r168802, r168805);
        double r168807 = fma(r168796, r168799, r168806);
        double r168808 = r168795 * r168807;
        double r168809 = 1.0;
        double r168810 = r168788 + r168809;
        double r168811 = r168809 / r168810;
        double r168812 = r168796 / r168788;
        double r168813 = r168811 - r168812;
        double r168814 = r168788 - r168809;
        double r168815 = r168809 / r168814;
        double r168816 = cbrt(r168815);
        double r168817 = r168816 * r168816;
        double r168818 = r168817 * r168816;
        double r168819 = r168813 + r168818;
        double r168820 = r168795 * r168819;
        double r168821 = r168794 ? r168808 : r168820;
        return r168821;
}

Error

Bits error versus x

Target

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

Derivation

  1. Split input into 2 regimes
  2. if x < -111.60844155440536 or 100.99693679484112 < x

    1. Initial program 19.7

      \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    2. Using strategy rm
    3. Applied flip-+19.7

      \[\leadsto \color{blue}{\frac{\left(\frac{1}{x + 1} - \frac{2}{x}\right) \cdot \left(\frac{1}{x + 1} - \frac{2}{x}\right) - \frac{1}{x - 1} \cdot \frac{1}{x - 1}}{\left(\frac{1}{x + 1} - \frac{2}{x}\right) - \frac{1}{x - 1}}}\]
    4. Using strategy rm
    5. Applied flip--63.2

      \[\leadsto \frac{\left(\frac{1}{x + 1} - \frac{2}{x}\right) \cdot \left(\frac{1}{x + 1} - \frac{2}{x}\right) - \frac{1}{x - 1} \cdot \frac{1}{x - 1}}{\color{blue}{\frac{\left(\frac{1}{x + 1} - \frac{2}{x}\right) \cdot \left(\frac{1}{x + 1} - \frac{2}{x}\right) - \frac{1}{x - 1} \cdot \frac{1}{x - 1}}{\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}}}}\]
    6. Applied associate-/r/63.2

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

      \[\leadsto \color{blue}{1} \cdot \left(\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\right)\]
    8. Using strategy rm
    9. Applied add-cube-cbrt52.2

      \[\leadsto 1 \cdot \left(\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \color{blue}{\left(\sqrt[3]{\frac{1}{x - 1}} \cdot \sqrt[3]{\frac{1}{x - 1}}\right) \cdot \sqrt[3]{\frac{1}{x - 1}}}\right)\]
    10. Taylor expanded around inf 0.5

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

      \[\leadsto 1 \cdot \color{blue}{\mathsf{fma}\left(2, \frac{1}{{x}^{7}}, \mathsf{fma}\left(2, \frac{1}{{x}^{5}}, \frac{2}{{x}^{3}}\right)\right)}\]

    if -111.60844155440536 < x < 100.99693679484112

    1. Initial program 0.1

      \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    2. Using strategy rm
    3. Applied flip-+32.0

      \[\leadsto \color{blue}{\frac{\left(\frac{1}{x + 1} - \frac{2}{x}\right) \cdot \left(\frac{1}{x + 1} - \frac{2}{x}\right) - \frac{1}{x - 1} \cdot \frac{1}{x - 1}}{\left(\frac{1}{x + 1} - \frac{2}{x}\right) - \frac{1}{x - 1}}}\]
    4. Using strategy rm
    5. Applied flip--31.9

      \[\leadsto \frac{\left(\frac{1}{x + 1} - \frac{2}{x}\right) \cdot \left(\frac{1}{x + 1} - \frac{2}{x}\right) - \frac{1}{x - 1} \cdot \frac{1}{x - 1}}{\color{blue}{\frac{\left(\frac{1}{x + 1} - \frac{2}{x}\right) \cdot \left(\frac{1}{x + 1} - \frac{2}{x}\right) - \frac{1}{x - 1} \cdot \frac{1}{x - 1}}{\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}}}}\]
    6. Applied associate-/r/31.9

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

      \[\leadsto \color{blue}{1} \cdot \left(\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\right)\]
    8. Using strategy rm
    9. Applied add-cube-cbrt0.1

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

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

Reproduce

herbie shell --seed 2019362 +o rules:numerics
(FPCore (x)
  :name "3frac (problem 3.3.3)"
  :precision binary64

  :herbie-target
  (/ 2 (* x (- (* x x) 1)))

  (+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1))))