Average Error: 7.9 → 5.1
Time: 8.8s
Precision: 64
\[x0 = 1.854999999999999982236431605997495353222 \land x1 = 2.090000000000000115064208161541614572343 \cdot 10^{-4} \lor x0 = 2.984999999999999875655021241982467472553 \land x1 = 0.01859999999999999847899445626353553961962\]
\[\frac{x0}{1 - x1} - x0\]
\[\frac{\log \left(e^{\frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot 1\right) + \left(\frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot x1\right) - x0 \cdot x0\right)}\right)}{x0 + \frac{x0}{1 - x1}}\]
\frac{x0}{1 - x1} - x0
\frac{\log \left(e^{\frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot 1\right) + \left(\frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot x1\right) - x0 \cdot x0\right)}\right)}{x0 + \frac{x0}{1 - x1}}
double f(double x0, double x1) {
        double r96308 = x0;
        double r96309 = 1.0;
        double r96310 = x1;
        double r96311 = r96309 - r96310;
        double r96312 = r96308 / r96311;
        double r96313 = r96312 - r96308;
        return r96313;
}

double f(double x0, double x1) {
        double r96314 = x0;
        double r96315 = 1.0;
        double r96316 = x1;
        double r96317 = r96315 - r96316;
        double r96318 = r96314 / r96317;
        double r96319 = r96315 * r96315;
        double r96320 = r96316 * r96316;
        double r96321 = r96319 - r96320;
        double r96322 = r96314 / r96321;
        double r96323 = r96322 * r96315;
        double r96324 = r96318 * r96323;
        double r96325 = r96322 * r96316;
        double r96326 = r96318 * r96325;
        double r96327 = r96314 * r96314;
        double r96328 = r96326 - r96327;
        double r96329 = r96324 + r96328;
        double r96330 = exp(r96329);
        double r96331 = log(r96330);
        double r96332 = r96314 + r96318;
        double r96333 = r96331 / r96332;
        return r96333;
}

Error

Bits error versus x0

Bits error versus x1

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original7.9
Target0.2
Herbie5.1
\[\frac{x0 \cdot x1}{1 - x1}\]

Derivation

  1. Initial program 7.9

    \[\frac{x0}{1 - x1} - x0\]
  2. Using strategy rm
  3. Applied flip--7.3

    \[\leadsto \color{blue}{\frac{\frac{x0}{1 - x1} \cdot \frac{x0}{1 - x1} - x0 \cdot x0}{\frac{x0}{1 - x1} + x0}}\]
  4. Simplified7.3

    \[\leadsto \frac{\frac{x0}{1 - x1} \cdot \frac{x0}{1 - x1} - x0 \cdot x0}{\color{blue}{x0 + \frac{x0}{1 - x1}}}\]
  5. Using strategy rm
  6. Applied flip--5.6

    \[\leadsto \frac{\frac{x0}{1 - x1} \cdot \frac{x0}{\color{blue}{\frac{1 \cdot 1 - x1 \cdot x1}{1 + x1}}} - x0 \cdot x0}{x0 + \frac{x0}{1 - x1}}\]
  7. Applied associate-/r/6.1

    \[\leadsto \frac{\frac{x0}{1 - x1} \cdot \color{blue}{\left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot \left(1 + x1\right)\right)} - x0 \cdot x0}{x0 + \frac{x0}{1 - x1}}\]
  8. Using strategy rm
  9. Applied add-log-exp6.1

    \[\leadsto \frac{\frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot \left(1 + x1\right)\right) - \color{blue}{\log \left(e^{x0 \cdot x0}\right)}}{x0 + \frac{x0}{1 - x1}}\]
  10. Applied add-log-exp6.1

    \[\leadsto \frac{\color{blue}{\log \left(e^{\frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot \left(1 + x1\right)\right)}\right)} - \log \left(e^{x0 \cdot x0}\right)}{x0 + \frac{x0}{1 - x1}}\]
  11. Applied diff-log5.8

    \[\leadsto \frac{\color{blue}{\log \left(\frac{e^{\frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot \left(1 + x1\right)\right)}}{e^{x0 \cdot x0}}\right)}}{x0 + \frac{x0}{1 - x1}}\]
  12. Simplified5.8

    \[\leadsto \frac{\log \color{blue}{\left(e^{\frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot \left(1 + x1\right)\right) - x0 \cdot x0}\right)}}{x0 + \frac{x0}{1 - x1}}\]
  13. Using strategy rm
  14. Applied distribute-lft-in6.3

    \[\leadsto \frac{\log \left(e^{\frac{x0}{1 - x1} \cdot \color{blue}{\left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot 1 + \frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot x1\right)} - x0 \cdot x0}\right)}{x0 + \frac{x0}{1 - x1}}\]
  15. Applied distribute-lft-in5.1

    \[\leadsto \frac{\log \left(e^{\color{blue}{\left(\frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot 1\right) + \frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot x1\right)\right)} - x0 \cdot x0}\right)}{x0 + \frac{x0}{1 - x1}}\]
  16. Applied associate--l+5.1

    \[\leadsto \frac{\log \left(e^{\color{blue}{\frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot 1\right) + \left(\frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot x1\right) - x0 \cdot x0\right)}}\right)}{x0 + \frac{x0}{1 - x1}}\]
  17. Final simplification5.1

    \[\leadsto \frac{\log \left(e^{\frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot 1\right) + \left(\frac{x0}{1 - x1} \cdot \left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot x1\right) - x0 \cdot x0\right)}\right)}{x0 + \frac{x0}{1 - x1}}\]

Reproduce

herbie shell --seed 2019212 
(FPCore (x0 x1)
  :name "(- (/ x0 (- 1 x1)) x0)"
  :precision binary64
  :pre (or (and (== x0 1.855) (== x1 2.09000000000000012e-4)) (and (== x0 2.98499999999999988) (== x1 0.018599999999999998)))

  :herbie-target
  (/ (* x0 x1) (- 1 x1))

  (- (/ x0 (- 1 x1)) x0))