Average Error: 9.7 → 0.3
Time: 6.2s
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -3491.6129493700505 \lor \neg \left(x \le 461.08483910687289\right):\\ \;\;\;\;2 \cdot \left(\frac{1}{{x}^{7}} + \left(\frac{1}{{x}^{5}} + \frac{1}{{x}^{3}}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot x - \frac{x + 1}{\sqrt[3]{1}} \cdot 2\right) \cdot \left(x - 1\right) + \left(\frac{x + 1}{\sqrt[3]{1}} \cdot x\right) \cdot 1}{\left(\frac{x + 1}{\sqrt[3]{1}} \cdot x\right) \cdot \left(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 -3491.6129493700505 \lor \neg \left(x \le 461.08483910687289\right):\\
\;\;\;\;2 \cdot \left(\frac{1}{{x}^{7}} + \left(\frac{1}{{x}^{5}} + \frac{1}{{x}^{3}}\right)\right)\\

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

\end{array}
double f(double x) {
        double r142913 = 1.0;
        double r142914 = x;
        double r142915 = r142914 + r142913;
        double r142916 = r142913 / r142915;
        double r142917 = 2.0;
        double r142918 = r142917 / r142914;
        double r142919 = r142916 - r142918;
        double r142920 = r142914 - r142913;
        double r142921 = r142913 / r142920;
        double r142922 = r142919 + r142921;
        return r142922;
}

double f(double x) {
        double r142923 = x;
        double r142924 = -3491.6129493700505;
        bool r142925 = r142923 <= r142924;
        double r142926 = 461.0848391068729;
        bool r142927 = r142923 <= r142926;
        double r142928 = !r142927;
        bool r142929 = r142925 || r142928;
        double r142930 = 2.0;
        double r142931 = 1.0;
        double r142932 = 7.0;
        double r142933 = pow(r142923, r142932);
        double r142934 = r142931 / r142933;
        double r142935 = 5.0;
        double r142936 = pow(r142923, r142935);
        double r142937 = r142931 / r142936;
        double r142938 = 3.0;
        double r142939 = pow(r142923, r142938);
        double r142940 = r142931 / r142939;
        double r142941 = r142937 + r142940;
        double r142942 = r142934 + r142941;
        double r142943 = r142930 * r142942;
        double r142944 = 1.0;
        double r142945 = cbrt(r142944);
        double r142946 = r142945 * r142945;
        double r142947 = r142946 * r142923;
        double r142948 = r142923 + r142944;
        double r142949 = r142948 / r142945;
        double r142950 = r142949 * r142930;
        double r142951 = r142947 - r142950;
        double r142952 = r142923 - r142944;
        double r142953 = r142951 * r142952;
        double r142954 = r142949 * r142923;
        double r142955 = r142954 * r142944;
        double r142956 = r142953 + r142955;
        double r142957 = r142954 * r142952;
        double r142958 = r142956 / r142957;
        double r142959 = r142929 ? r142943 : r142958;
        return r142959;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

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

Derivation

  1. Split input into 2 regimes
  2. if x < -3491.6129493700505 or 461.0848391068729 < x

    1. Initial program 19.1

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

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

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

    if -3491.6129493700505 < x < 461.0848391068729

    1. Initial program 0.1

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

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

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

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

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

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

Reproduce

herbie shell --seed 2020018 
(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))))