Average Error: 10.0 → 0.1
Time: 15.8s
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\frac{\frac{2}{x \cdot \left(x + 1\right)}}{x - 1}\]
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
\frac{\frac{2}{x \cdot \left(x + 1\right)}}{x - 1}
double f(double x) {
        double r116247 = 1.0;
        double r116248 = x;
        double r116249 = r116248 + r116247;
        double r116250 = r116247 / r116249;
        double r116251 = 2.0;
        double r116252 = r116251 / r116248;
        double r116253 = r116250 - r116252;
        double r116254 = r116248 - r116247;
        double r116255 = r116247 / r116254;
        double r116256 = r116253 + r116255;
        return r116256;
}

double f(double x) {
        double r116257 = 2.0;
        double r116258 = x;
        double r116259 = 1.0;
        double r116260 = r116258 + r116259;
        double r116261 = r116258 * r116260;
        double r116262 = r116257 / r116261;
        double r116263 = r116258 - r116259;
        double r116264 = r116262 / r116263;
        return r116264;
}

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. Simplified10.0

    \[\leadsto \color{blue}{\frac{1}{x - 1} - \left(\frac{2}{x} - \frac{1}{x + 1}\right)}\]
  3. Using strategy rm
  4. Applied frac-sub26.0

    \[\leadsto \frac{1}{x - 1} - \color{blue}{\frac{2 \cdot \left(x + 1\right) - x \cdot 1}{x \cdot \left(x + 1\right)}}\]
  5. Applied frac-sub25.4

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

    \[\leadsto \frac{\color{blue}{2}}{\left(x - 1\right) \cdot \left(x \cdot \left(x + 1\right)\right)}\]
  7. Using strategy rm
  8. Applied *-un-lft-identity0.3

    \[\leadsto \frac{\color{blue}{1 \cdot 2}}{\left(x - 1\right) \cdot \left(x \cdot \left(x + 1\right)\right)}\]
  9. Applied times-frac0.1

    \[\leadsto \color{blue}{\frac{1}{x - 1} \cdot \frac{2}{x \cdot \left(x + 1\right)}}\]
  10. Using strategy rm
  11. Applied *-un-lft-identity0.1

    \[\leadsto \frac{1}{\color{blue}{1 \cdot \left(x - 1\right)}} \cdot \frac{2}{x \cdot \left(x + 1\right)}\]
  12. Applied add-sqr-sqrt0.1

    \[\leadsto \frac{\color{blue}{\sqrt{1} \cdot \sqrt{1}}}{1 \cdot \left(x - 1\right)} \cdot \frac{2}{x \cdot \left(x + 1\right)}\]
  13. Applied times-frac0.1

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

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

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

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

Reproduce

herbie shell --seed 2019198 
(FPCore (x)
  :name "3frac (problem 3.3.3)"

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

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