Average Error: 9.8 → 0.1
Time: 3.7s
Precision: 64
\[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
\[\frac{1}{\left(x + 1\right) \cdot x} \cdot \frac{2}{x - 1}\]
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}
\frac{1}{\left(x + 1\right) \cdot x} \cdot \frac{2}{x - 1}
double f(double x) {
        double r145213 = 1.0;
        double r145214 = x;
        double r145215 = r145214 + r145213;
        double r145216 = r145213 / r145215;
        double r145217 = 2.0;
        double r145218 = r145217 / r145214;
        double r145219 = r145216 - r145218;
        double r145220 = r145214 - r145213;
        double r145221 = r145213 / r145220;
        double r145222 = r145219 + r145221;
        return r145222;
}

double f(double x) {
        double r145223 = 1.0;
        double r145224 = x;
        double r145225 = 1.0;
        double r145226 = r145224 + r145225;
        double r145227 = r145226 * r145224;
        double r145228 = r145223 / r145227;
        double r145229 = 2.0;
        double r145230 = r145224 - r145225;
        double r145231 = r145229 / r145230;
        double r145232 = r145228 * r145231;
        return r145232;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

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

Derivation

  1. Initial program 9.8

    \[\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
  2. Using strategy rm
  3. Applied *-un-lft-identity9.8

    \[\leadsto \left(\frac{1}{\color{blue}{1 \cdot \left(x + 1\right)}} - \frac{2}{x}\right) + \frac{1}{x - 1}\]
  4. Applied *-un-lft-identity9.8

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

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

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

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

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

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

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

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

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

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

Reproduce

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

  :herbie-target
  (/ 2 (* x (- (* x x) 1)))

  (+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1))))