Average Error: 7.8 → 5.1
Time: 9.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 r132919 = x0;
        double r132920 = 1.0;
        double r132921 = x1;
        double r132922 = r132920 - r132921;
        double r132923 = r132919 / r132922;
        double r132924 = r132923 - r132919;
        return r132924;
}

double f(double x0, double x1) {
        double r132925 = x0;
        double r132926 = 1.0;
        double r132927 = x1;
        double r132928 = r132926 - r132927;
        double r132929 = r132925 / r132928;
        double r132930 = r132926 * r132926;
        double r132931 = r132927 * r132927;
        double r132932 = r132930 - r132931;
        double r132933 = r132925 / r132932;
        double r132934 = r132933 * r132926;
        double r132935 = r132929 * r132934;
        double r132936 = r132933 * r132927;
        double r132937 = r132929 * r132936;
        double r132938 = r132925 * r132925;
        double r132939 = r132937 - r132938;
        double r132940 = r132935 + r132939;
        double r132941 = exp(r132940);
        double r132942 = log(r132941);
        double r132943 = r132925 + r132929;
        double r132944 = r132942 / r132943;
        return r132944;
}

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.8
Target0.3
Herbie5.1
\[\frac{x0 \cdot x1}{1 - x1}\]

Derivation

  1. Initial program 7.8

    \[\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 2019209 
(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))