Average Error: 10.2 → 0.0
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 -101.7757910098267331022725556977093219757 \lor \neg \left(x \le 98.00054950125780806047259829938411712646\right):\\ \;\;\;\;2 \cdot \left(\frac{1}{{x}^{7}} + \left(\frac{1}{{x}^{5}} + {x}^{\left(-3\right)}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\sqrt[3]{\frac{1}{x + 1}} \cdot \sqrt[3]{\frac{1}{x + 1}}\right) \cdot \sqrt[3]{\frac{1}{x + 1}} - \frac{2}{x}\right) + \frac{1}{x - 1}\\ \end{array}\]
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -101.7757910098267331022725556977093219757 \lor \neg \left(x \le 98.00054950125780806047259829938411712646\right):\\
\;\;\;\;2 \cdot \left(\frac{1}{{x}^{7}} + \left(\frac{1}{{x}^{5}} + {x}^{\left(-3\right)}\right)\right)\\

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

\end{array}
double f(double x) {
        double r291026 = 1.0;
        double r291027 = x;
        double r291028 = r291027 + r291026;
        double r291029 = r291026 / r291028;
        double r291030 = 2.0;
        double r291031 = r291030 / r291027;
        double r291032 = r291029 - r291031;
        double r291033 = r291027 - r291026;
        double r291034 = r291026 / r291033;
        double r291035 = r291032 + r291034;
        return r291035;
}

double f(double x) {
        double r291036 = x;
        double r291037 = -101.77579100982673;
        bool r291038 = r291036 <= r291037;
        double r291039 = 98.00054950125781;
        bool r291040 = r291036 <= r291039;
        double r291041 = !r291040;
        bool r291042 = r291038 || r291041;
        double r291043 = 2.0;
        double r291044 = 1.0;
        double r291045 = 7.0;
        double r291046 = pow(r291036, r291045);
        double r291047 = r291044 / r291046;
        double r291048 = 5.0;
        double r291049 = pow(r291036, r291048);
        double r291050 = r291044 / r291049;
        double r291051 = 3.0;
        double r291052 = -r291051;
        double r291053 = pow(r291036, r291052);
        double r291054 = r291050 + r291053;
        double r291055 = r291047 + r291054;
        double r291056 = r291043 * r291055;
        double r291057 = 1.0;
        double r291058 = r291036 + r291057;
        double r291059 = r291057 / r291058;
        double r291060 = cbrt(r291059);
        double r291061 = r291060 * r291060;
        double r291062 = r291061 * r291060;
        double r291063 = r291043 / r291036;
        double r291064 = r291062 - r291063;
        double r291065 = r291036 - r291057;
        double r291066 = r291057 / r291065;
        double r291067 = r291064 + r291066;
        double r291068 = r291042 ? r291056 : r291067;
        return r291068;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

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

Derivation

  1. Split input into 2 regimes
  2. if x < -101.77579100982673 or 98.00054950125781 < x

    1. Initial program 20.2

      \[\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}^{5}} + 2 \cdot \frac{1}{{x}^{3}}\right)}\]
    3. Simplified0.5

      \[\leadsto \color{blue}{2 \cdot \left(\frac{1}{{x}^{7}} + \left(\frac{1}{{x}^{5}} + \frac{1}{{x}^{3}}\right)\right)}\]
    4. Using strategy rm
    5. Applied pow-flip0.0

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

    if -101.77579100982673 < x < 98.00054950125781

    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-cbrt0.0

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

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

Reproduce

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