Average Error: 14.4 → 0.2
Time: 46.8s
Precision: 64
Internal Precision: 832
\[\frac{1}{x + 1} - \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;\frac{1}{x + 1} - \frac{1}{x - 1} \le 0.0:\\ \;\;\;\;\left(-\left(\frac{\frac{2}{x}}{x} + \frac{2}{{x}^{6}}\right)\right) - \frac{2}{{x}^{4}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{x + 1} - \frac{1}{x - 1}\\ \end{array}\]

Error

Bits error versus x

Try it out

  1. Inputs

  2. Original Output:

    Herbie Output:

Derivation

  1. Split input into 2 regimes
  2. if (- (/ 1 (+ x 1)) (/ 1 (- x 1))) < 0.0

    1. Initial program 28.6

      \[\frac{1}{x + 1} - \frac{1}{x - 1}\]
    2. Taylor expanded around inf 1.0

      \[\leadsto \color{blue}{-\left(2 \cdot \frac{1}{{x}^{6}} + \left(2 \cdot \frac{1}{{x}^{4}} + 2 \cdot \frac{1}{{x}^{2}}\right)\right)}\]
    3. Applied simplify1.0

      \[\leadsto \color{blue}{\left(\frac{-2}{x \cdot x} + \frac{-2}{{x}^{6}}\right) - \frac{2}{{x}^{4}}}\]
    4. Using strategy rm
    5. Applied associate-/r*0.4

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

    if 0.0 < (- (/ 1 (+ x 1)) (/ 1 (- x 1)))

    1. Initial program 0.0

      \[\frac{1}{x + 1} - \frac{1}{x - 1}\]
  3. Recombined 2 regimes into one program.
  4. Applied simplify0.2

    \[\leadsto \color{blue}{\begin{array}{l} \mathbf{if}\;\frac{1}{x + 1} - \frac{1}{x - 1} \le 0.0:\\ \;\;\;\;\left(-\left(\frac{\frac{2}{x}}{x} + \frac{2}{{x}^{6}}\right)\right) - \frac{2}{{x}^{4}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{x + 1} - \frac{1}{x - 1}\\ \end{array}}\]

Runtime

Time bar (total: 46.8s)Debug logProfile

herbie shell --seed '#(1072361757 3390613284 2339397988 1175251238 145061547 3101881848)' 
(FPCore (x)
  :name "Asymptote A"
  (- (/ 1 (+ x 1)) (/ 1 (- x 1))))