Average Error: 0.0 → 0.0
Time: 1.2s
Precision: 64
\[\frac{1}{x - 1} + \frac{x}{x + 1}\]
\[\frac{-\mathsf{fma}\left(1, \frac{x + 1}{x}, x - 1\right)}{\left(-\left(x - 1\right)\right) \cdot \frac{x + 1}{x}}\]
\frac{1}{x - 1} + \frac{x}{x + 1}
\frac{-\mathsf{fma}\left(1, \frac{x + 1}{x}, x - 1\right)}{\left(-\left(x - 1\right)\right) \cdot \frac{x + 1}{x}}
double code(double x) {
	return ((1.0 / (x - 1.0)) + (x / (x + 1.0)));
}
double code(double x) {
	return (-fma(1.0, ((x + 1.0) / x), (x - 1.0)) / (-(x - 1.0) * ((x + 1.0) / x)));
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\frac{1}{x - 1} + \frac{x}{x + 1}\]
  2. Using strategy rm
  3. Applied clear-num0.0

    \[\leadsto \frac{1}{x - 1} + \color{blue}{\frac{1}{\frac{x + 1}{x}}}\]
  4. Applied frac-2neg0.0

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

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

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

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

Reproduce

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