Average Error: 6.0 → 5.4
Time: 9.7s
Precision: 64
\[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le 1.40851047968568016 \cdot 10^{69}:\\ \;\;\;\;\left(\sqrt{\left(x - 0.5\right) \cdot \left(2 \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)} \cdot \sqrt{\left(x - 0.5\right) \cdot \left(2 \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)} + \left(\left(\log \left(\sqrt{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467001\right)\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \left(\left(7.93650079365100015 \cdot 10^{-4} \cdot \frac{{z}^{2}}{x} + 0.0833333333333329956 \cdot \frac{1}{x}\right) - 0.0027777777777778 \cdot \frac{z}{x}\right)\\ \end{array}\]
\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}
\begin{array}{l}
\mathbf{if}\;x \le 1.40851047968568016 \cdot 10^{69}:\\
\;\;\;\;\left(\sqrt{\left(x - 0.5\right) \cdot \left(2 \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)} \cdot \sqrt{\left(x - 0.5\right) \cdot \left(2 \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)} + \left(\left(\log \left(\sqrt{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467001\right)\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \left(\left(7.93650079365100015 \cdot 10^{-4} \cdot \frac{{z}^{2}}{x} + 0.0833333333333329956 \cdot \frac{1}{x}\right) - 0.0027777777777778 \cdot \frac{z}{x}\right)\\

\end{array}
double f(double x, double y, double z) {
        double r486661 = x;
        double r486662 = 0.5;
        double r486663 = r486661 - r486662;
        double r486664 = log(r486661);
        double r486665 = r486663 * r486664;
        double r486666 = r486665 - r486661;
        double r486667 = 0.91893853320467;
        double r486668 = r486666 + r486667;
        double r486669 = y;
        double r486670 = 0.0007936500793651;
        double r486671 = r486669 + r486670;
        double r486672 = z;
        double r486673 = r486671 * r486672;
        double r486674 = 0.0027777777777778;
        double r486675 = r486673 - r486674;
        double r486676 = r486675 * r486672;
        double r486677 = 0.083333333333333;
        double r486678 = r486676 + r486677;
        double r486679 = r486678 / r486661;
        double r486680 = r486668 + r486679;
        return r486680;
}

double f(double x, double y, double z) {
        double r486681 = x;
        double r486682 = 1.4085104796856802e+69;
        bool r486683 = r486681 <= r486682;
        double r486684 = 0.5;
        double r486685 = r486681 - r486684;
        double r486686 = 2.0;
        double r486687 = sqrt(r486681);
        double r486688 = cbrt(r486687);
        double r486689 = log(r486688);
        double r486690 = r486686 * r486689;
        double r486691 = r486685 * r486690;
        double r486692 = r486685 * r486689;
        double r486693 = r486691 + r486692;
        double r486694 = sqrt(r486693);
        double r486695 = r486694 * r486694;
        double r486696 = log(r486687);
        double r486697 = r486696 * r486685;
        double r486698 = r486697 - r486681;
        double r486699 = 0.91893853320467;
        double r486700 = r486698 + r486699;
        double r486701 = r486695 + r486700;
        double r486702 = y;
        double r486703 = 0.0007936500793651;
        double r486704 = r486702 + r486703;
        double r486705 = z;
        double r486706 = r486704 * r486705;
        double r486707 = 0.0027777777777778;
        double r486708 = r486706 - r486707;
        double r486709 = r486708 * r486705;
        double r486710 = 0.083333333333333;
        double r486711 = r486709 + r486710;
        double r486712 = r486711 / r486681;
        double r486713 = r486701 + r486712;
        double r486714 = log(r486681);
        double r486715 = r486685 * r486714;
        double r486716 = r486715 - r486681;
        double r486717 = r486716 + r486699;
        double r486718 = pow(r486705, r486686);
        double r486719 = r486718 / r486681;
        double r486720 = r486703 * r486719;
        double r486721 = 1.0;
        double r486722 = r486721 / r486681;
        double r486723 = r486710 * r486722;
        double r486724 = r486720 + r486723;
        double r486725 = r486705 / r486681;
        double r486726 = r486707 * r486725;
        double r486727 = r486724 - r486726;
        double r486728 = r486717 + r486727;
        double r486729 = r486683 ? r486713 : r486728;
        return r486729;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original6.0
Target1.3
Herbie5.4
\[\left(\left(\left(x - 0.5\right) \cdot \log x + \left(0.91893853320467001 - x\right)\right) + \frac{0.0833333333333329956}{x}\right) + \frac{z}{x} \cdot \left(z \cdot \left(y + 7.93650079365100015 \cdot 10^{-4}\right) - 0.0027777777777778\right)\]

Derivation

  1. Split input into 2 regimes
  2. if x < 1.4085104796856802e+69

    1. Initial program 0.9

      \[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt0.9

      \[\leadsto \left(\left(\left(x - 0.5\right) \cdot \log \color{blue}{\left(\sqrt{x} \cdot \sqrt{x}\right)} - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    4. Applied log-prod0.9

      \[\leadsto \left(\left(\left(x - 0.5\right) \cdot \color{blue}{\left(\log \left(\sqrt{x}\right) + \log \left(\sqrt{x}\right)\right)} - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    5. Applied distribute-lft-in0.9

      \[\leadsto \left(\left(\color{blue}{\left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right)\right)} - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    6. Applied associate--l+0.9

      \[\leadsto \left(\color{blue}{\left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) - x\right)\right)} + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    7. Applied associate-+l+0.9

      \[\leadsto \color{blue}{\left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) - x\right) + 0.91893853320467001\right)\right)} + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    8. Simplified0.9

      \[\leadsto \left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \color{blue}{\left(\left(\log \left(\sqrt{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467001\right)}\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    9. Using strategy rm
    10. Applied add-cube-cbrt0.9

      \[\leadsto \left(\left(x - 0.5\right) \cdot \log \color{blue}{\left(\left(\sqrt[3]{\sqrt{x}} \cdot \sqrt[3]{\sqrt{x}}\right) \cdot \sqrt[3]{\sqrt{x}}\right)} + \left(\left(\log \left(\sqrt{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467001\right)\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    11. Applied log-prod0.9

      \[\leadsto \left(\left(x - 0.5\right) \cdot \color{blue}{\left(\log \left(\sqrt[3]{\sqrt{x}} \cdot \sqrt[3]{\sqrt{x}}\right) + \log \left(\sqrt[3]{\sqrt{x}}\right)\right)} + \left(\left(\log \left(\sqrt{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467001\right)\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    12. Applied distribute-lft-in0.9

      \[\leadsto \left(\color{blue}{\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}} \cdot \sqrt[3]{\sqrt{x}}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)\right)} + \left(\left(\log \left(\sqrt{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467001\right)\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    13. Simplified0.9

      \[\leadsto \left(\left(\color{blue}{\left(x - 0.5\right) \cdot \left(2 \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)\right)} + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)\right) + \left(\left(\log \left(\sqrt{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467001\right)\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    14. Using strategy rm
    15. Applied add-sqr-sqrt1.0

      \[\leadsto \left(\color{blue}{\sqrt{\left(x - 0.5\right) \cdot \left(2 \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)} \cdot \sqrt{\left(x - 0.5\right) \cdot \left(2 \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)}} + \left(\left(\log \left(\sqrt{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467001\right)\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]

    if 1.4085104796856802e+69 < x

    1. Initial program 11.8

      \[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    2. Taylor expanded around 0 10.6

      \[\leadsto \left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \color{blue}{\left(\left(7.93650079365100015 \cdot 10^{-4} \cdot \frac{{z}^{2}}{x} + 0.0833333333333329956 \cdot \frac{1}{x}\right) - 0.0027777777777778 \cdot \frac{z}{x}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification5.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le 1.40851047968568016 \cdot 10^{69}:\\ \;\;\;\;\left(\sqrt{\left(x - 0.5\right) \cdot \left(2 \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)} \cdot \sqrt{\left(x - 0.5\right) \cdot \left(2 \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)} + \left(\left(\log \left(\sqrt{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467001\right)\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \left(\left(7.93650079365100015 \cdot 10^{-4} \cdot \frac{{z}^{2}}{x} + 0.0833333333333329956 \cdot \frac{1}{x}\right) - 0.0027777777777778 \cdot \frac{z}{x}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020018 
(FPCore (x y z)
  :name "Numeric.SpecFunctions:$slogFactorial from math-functions-0.1.5.2, B"
  :precision binary64

  :herbie-target
  (+ (+ (+ (* (- x 0.5) (log x)) (- 0.91893853320467 x)) (/ 0.083333333333333 x)) (* (/ z x) (- (* z (+ y 0.0007936500793651)) 0.0027777777777778)))

  (+ (+ (- (* (- x 0.5) (log x)) x) 0.91893853320467) (/ (+ (* (- (* (+ y 0.0007936500793651) z) 0.0027777777777778) z) 0.083333333333333) x)))