Average Error: 10.0 → 0.1
Time: 3.3s
Precision: binary64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\frac{\frac{2}{x - 1}}{x \cdot \left(x + 1\right)}\]
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
\frac{\frac{2}{x - 1}}{x \cdot \left(x + 1\right)}
(FPCore (x)
 :precision binary64
 (+ (- (/ 1.0 (+ x 1.0)) (/ 2.0 x)) (/ 1.0 (- x 1.0))))
(FPCore (x) :precision binary64 (/ (/ 2.0 (- x 1.0)) (* x (+ x 1.0))))
double code(double x) {
	return ((1.0 / (x + 1.0)) - (2.0 / x)) + (1.0 / (x - 1.0));
}
double code(double x) {
	return (2.0 / (x - 1.0)) / (x * (x + 1.0));
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

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

Derivation

  1. Initial program 10.0

    \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
  2. Using strategy rm
  3. Applied add-cube-cbrt_binary6424.9

    \[\leadsto \left(\frac{1}{\color{blue}{\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot \sqrt[3]{x + 1}}} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
  4. Applied add-sqr-sqrt_binary6424.9

    \[\leadsto \left(\frac{\color{blue}{\sqrt{1} \cdot \sqrt{1}}}{\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot \sqrt[3]{x + 1}} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
  5. Applied times-frac_binary6425.6

    \[\leadsto \left(\color{blue}{\frac{\sqrt{1}}{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \frac{\sqrt{1}}{\sqrt[3]{x + 1}}} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
  6. Simplified25.6

    \[\leadsto \left(\color{blue}{\frac{1}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}} \cdot \frac{\sqrt{1}}{\sqrt[3]{x + 1}} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
  7. Simplified25.6

    \[\leadsto \left(\frac{1}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}} \cdot \color{blue}{\frac{1}{\sqrt[3]{1 + x}}} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
  8. Using strategy rm
  9. Applied frac-times_binary6424.9

    \[\leadsto \left(\color{blue}{\frac{1 \cdot 1}{\left(\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}\right) \cdot \sqrt[3]{1 + x}}} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
  10. Applied frac-sub_binary6429.1

    \[\leadsto \color{blue}{\frac{\left(1 \cdot 1\right) \cdot x - \left(\left(\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}\right) \cdot \sqrt[3]{1 + x}\right) \cdot 2}{\left(\left(\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}\right) \cdot \sqrt[3]{1 + x}\right) \cdot x}} + \frac{1}{x - 1}\]
  11. Applied frac-add_binary6426.3

    \[\leadsto \color{blue}{\frac{\left(\left(1 \cdot 1\right) \cdot x - \left(\left(\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}\right) \cdot \sqrt[3]{1 + x}\right) \cdot 2\right) \cdot \left(x - 1\right) + \left(\left(\left(\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}\right) \cdot \sqrt[3]{1 + x}\right) \cdot x\right) \cdot 1}{\left(\left(\left(\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}\right) \cdot \sqrt[3]{1 + x}\right) \cdot x\right) \cdot \left(x - 1\right)}}\]
  12. Simplified26.0

    \[\leadsto \frac{\color{blue}{\left(x - 1\right) \cdot \left(x - \left(1 + x\right) \cdot 2\right) + x \cdot \left(1 + x\right)}}{\left(\left(\left(\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}\right) \cdot \sqrt[3]{1 + x}\right) \cdot x\right) \cdot \left(x - 1\right)}\]
  13. Simplified25.9

    \[\leadsto \frac{\left(x - 1\right) \cdot \left(x - \left(1 + x\right) \cdot 2\right) + x \cdot \left(1 + x\right)}{\color{blue}{\left(x - 1\right) \cdot \left(x \cdot \left(1 + x\right)\right)}}\]
  14. Taylor expanded around 0 0.3

    \[\leadsto \frac{\color{blue}{2}}{\left(x - 1\right) \cdot \left(x \cdot \left(1 + x\right)\right)}\]
  15. Using strategy rm
  16. Applied associate-/r*_binary640.1

    \[\leadsto \color{blue}{\frac{\frac{2}{x - 1}}{x \cdot \left(1 + x\right)}}\]
  17. Final simplification0.1

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

Reproduce

herbie shell --seed 2020270 
(FPCore (x)
  :name "3frac (problem 3.3.3)"
  :precision binary64

  :herbie-target
  (/ 2.0 (* x (- (* x x) 1.0)))

  (+ (- (/ 1.0 (+ x 1.0)) (/ 2.0 x)) (/ 1.0 (- x 1.0))))