Average Error: 0.0 → 0.0
Time: 11.3s
Precision: 64
\[\frac{1}{x - 1} + \frac{x}{x + 1}\]
\[\frac{\left(\frac{1}{\mathsf{fma}\left(x, x, -1\right)} \cdot \left(x + 1\right)\right) \cdot \left(\frac{1}{\mathsf{fma}\left(x, x, -1\right)} \cdot \left(x + 1\right)\right) - \frac{x}{x + 1} \cdot \frac{x}{x + 1}}{\frac{1}{\mathsf{fma}\left(x, x, -1\right)} \cdot \left(x + 1\right) - \frac{x}{x + 1}}\]
\frac{1}{x - 1} + \frac{x}{x + 1}
\frac{\left(\frac{1}{\mathsf{fma}\left(x, x, -1\right)} \cdot \left(x + 1\right)\right) \cdot \left(\frac{1}{\mathsf{fma}\left(x, x, -1\right)} \cdot \left(x + 1\right)\right) - \frac{x}{x + 1} \cdot \frac{x}{x + 1}}{\frac{1}{\mathsf{fma}\left(x, x, -1\right)} \cdot \left(x + 1\right) - \frac{x}{x + 1}}
double f(double x) {
        double r4320350 = 1.0;
        double r4320351 = x;
        double r4320352 = r4320351 - r4320350;
        double r4320353 = r4320350 / r4320352;
        double r4320354 = r4320351 + r4320350;
        double r4320355 = r4320351 / r4320354;
        double r4320356 = r4320353 + r4320355;
        return r4320356;
}

double f(double x) {
        double r4320357 = 1.0;
        double r4320358 = x;
        double r4320359 = -1.0;
        double r4320360 = fma(r4320358, r4320358, r4320359);
        double r4320361 = r4320357 / r4320360;
        double r4320362 = r4320358 + r4320357;
        double r4320363 = r4320361 * r4320362;
        double r4320364 = r4320363 * r4320363;
        double r4320365 = r4320358 / r4320362;
        double r4320366 = r4320365 * r4320365;
        double r4320367 = r4320364 - r4320366;
        double r4320368 = r4320363 - r4320365;
        double r4320369 = r4320367 / r4320368;
        return r4320369;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.0

    \[\frac{1}{x - 1} + \frac{x}{x + 1}\]
  2. Using strategy rm
  3. Applied flip--0.0

    \[\leadsto \frac{1}{\color{blue}{\frac{x \cdot x - 1 \cdot 1}{x + 1}}} + \frac{x}{x + 1}\]
  4. Applied associate-/r/0.0

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

    \[\leadsto \color{blue}{\frac{1}{\mathsf{fma}\left(x, x, -1\right)}} \cdot \left(x + 1\right) + \frac{x}{x + 1}\]
  6. Using strategy rm
  7. Applied flip-+0.0

    \[\leadsto \color{blue}{\frac{\left(\frac{1}{\mathsf{fma}\left(x, x, -1\right)} \cdot \left(x + 1\right)\right) \cdot \left(\frac{1}{\mathsf{fma}\left(x, x, -1\right)} \cdot \left(x + 1\right)\right) - \frac{x}{x + 1} \cdot \frac{x}{x + 1}}{\frac{1}{\mathsf{fma}\left(x, x, -1\right)} \cdot \left(x + 1\right) - \frac{x}{x + 1}}}\]
  8. Final simplification0.0

    \[\leadsto \frac{\left(\frac{1}{\mathsf{fma}\left(x, x, -1\right)} \cdot \left(x + 1\right)\right) \cdot \left(\frac{1}{\mathsf{fma}\left(x, x, -1\right)} \cdot \left(x + 1\right)\right) - \frac{x}{x + 1} \cdot \frac{x}{x + 1}}{\frac{1}{\mathsf{fma}\left(x, x, -1\right)} \cdot \left(x + 1\right) - \frac{x}{x + 1}}\]

Reproduce

herbie shell --seed 2019158 +o rules:numerics
(FPCore (x)
  :name "Asymptote B"
  (+ (/ 1 (- x 1)) (/ x (+ x 1))))