Average Error: 9.8 → 0.3
Time: 24.2s
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right) \le -466.53243413121805:\\ \;\;\;\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right)\\ \mathbf{elif}\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right) \le 3.060711163327054 \cdot 10^{-07}:\\ \;\;\;\;\left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right) + \frac{\frac{2}{x \cdot x}}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right)\\ \end{array}\]
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
\begin{array}{l}
\mathbf{if}\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right) \le -466.53243413121805:\\
\;\;\;\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right)\\

\mathbf{elif}\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right) \le 3.060711163327054 \cdot 10^{-07}:\\
\;\;\;\;\left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right) + \frac{\frac{2}{x \cdot x}}{x}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right)\\

\end{array}
double f(double x) {
        double r1373192 = 1.0;
        double r1373193 = x;
        double r1373194 = r1373193 + r1373192;
        double r1373195 = r1373192 / r1373194;
        double r1373196 = 2.0;
        double r1373197 = r1373196 / r1373193;
        double r1373198 = r1373195 - r1373197;
        double r1373199 = r1373193 - r1373192;
        double r1373200 = r1373192 / r1373199;
        double r1373201 = r1373198 + r1373200;
        return r1373201;
}

double f(double x) {
        double r1373202 = 1.0;
        double r1373203 = x;
        double r1373204 = r1373203 - r1373202;
        double r1373205 = r1373202 / r1373204;
        double r1373206 = r1373203 + r1373202;
        double r1373207 = r1373202 / r1373206;
        double r1373208 = 2.0;
        double r1373209 = r1373208 / r1373203;
        double r1373210 = r1373207 - r1373209;
        double r1373211 = r1373205 + r1373210;
        double r1373212 = -466.53243413121805;
        bool r1373213 = r1373211 <= r1373212;
        double r1373214 = 3.060711163327054e-07;
        bool r1373215 = r1373211 <= r1373214;
        double r1373216 = 7.0;
        double r1373217 = pow(r1373203, r1373216);
        double r1373218 = r1373208 / r1373217;
        double r1373219 = 5.0;
        double r1373220 = pow(r1373203, r1373219);
        double r1373221 = r1373208 / r1373220;
        double r1373222 = r1373218 + r1373221;
        double r1373223 = r1373203 * r1373203;
        double r1373224 = r1373208 / r1373223;
        double r1373225 = r1373224 / r1373203;
        double r1373226 = r1373222 + r1373225;
        double r1373227 = r1373215 ? r1373226 : r1373211;
        double r1373228 = r1373213 ? r1373211 : r1373227;
        return r1373228;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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 (+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1))) < -466.53243413121805 or 3.060711163327054e-07 < (+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1)))

    1. Initial program 0.0

      \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity0.0

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

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

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

    if -466.53243413121805 < (+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1))) < 3.060711163327054e-07

    1. Initial program 19.5

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

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

      \[\leadsto \color{blue}{\left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right) + \frac{2}{\left(x \cdot x\right) \cdot x}}\]
    4. Taylor expanded around -inf 1.1

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right) \le -466.53243413121805:\\ \;\;\;\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right)\\ \mathbf{elif}\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right) \le 3.060711163327054 \cdot 10^{-07}:\\ \;\;\;\;\left(\frac{2}{{x}^{7}} + \frac{2}{{x}^{5}}\right) + \frac{\frac{2}{x \cdot x}}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{x - 1} + \left(\frac{1}{x + 1} - \frac{2}{x}\right)\\ \end{array}\]

Reproduce

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