Average Error: 5.6 → 0.3
Time: 26.9s
Precision: 64
\[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le 29155066420271276.0:\\ \;\;\;\;\left(\left(\left(\log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467\right) + \left(x - 0.5\right) \cdot \log \left({x}^{\frac{1}{3}} \cdot \sqrt[3]{x}\right)\right) + \frac{0.083333333333333 + \left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z}{x}\\ \mathbf{else}:\\ \;\;\;\;\left(0.91893853320467 + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) + \log \left({x}^{\frac{1}{3}}\right) \cdot \left(x - 0.5\right)\right) - x\right)\right) + \left(\frac{z}{\frac{x}{z}} \cdot \left(y + 0.0007936500793651\right) - \frac{0.0027777777777778 \cdot z}{x}\right)\\ \end{array}\]
\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}
\begin{array}{l}
\mathbf{if}\;x \le 29155066420271276.0:\\
\;\;\;\;\left(\left(\left(\log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467\right) + \left(x - 0.5\right) \cdot \log \left({x}^{\frac{1}{3}} \cdot \sqrt[3]{x}\right)\right) + \frac{0.083333333333333 + \left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z}{x}\\

\mathbf{else}:\\
\;\;\;\;\left(0.91893853320467 + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) + \log \left({x}^{\frac{1}{3}}\right) \cdot \left(x - 0.5\right)\right) - x\right)\right) + \left(\frac{z}{\frac{x}{z}} \cdot \left(y + 0.0007936500793651\right) - \frac{0.0027777777777778 \cdot z}{x}\right)\\

\end{array}
double f(double x, double y, double z) {
        double r26979575 = x;
        double r26979576 = 0.5;
        double r26979577 = r26979575 - r26979576;
        double r26979578 = log(r26979575);
        double r26979579 = r26979577 * r26979578;
        double r26979580 = r26979579 - r26979575;
        double r26979581 = 0.91893853320467;
        double r26979582 = r26979580 + r26979581;
        double r26979583 = y;
        double r26979584 = 0.0007936500793651;
        double r26979585 = r26979583 + r26979584;
        double r26979586 = z;
        double r26979587 = r26979585 * r26979586;
        double r26979588 = 0.0027777777777778;
        double r26979589 = r26979587 - r26979588;
        double r26979590 = r26979589 * r26979586;
        double r26979591 = 0.083333333333333;
        double r26979592 = r26979590 + r26979591;
        double r26979593 = r26979592 / r26979575;
        double r26979594 = r26979582 + r26979593;
        return r26979594;
}

double f(double x, double y, double z) {
        double r26979595 = x;
        double r26979596 = 29155066420271276.0;
        bool r26979597 = r26979595 <= r26979596;
        double r26979598 = cbrt(r26979595);
        double r26979599 = log(r26979598);
        double r26979600 = 0.5;
        double r26979601 = r26979595 - r26979600;
        double r26979602 = r26979599 * r26979601;
        double r26979603 = r26979602 - r26979595;
        double r26979604 = 0.91893853320467;
        double r26979605 = r26979603 + r26979604;
        double r26979606 = 0.3333333333333333;
        double r26979607 = pow(r26979595, r26979606);
        double r26979608 = r26979607 * r26979598;
        double r26979609 = log(r26979608);
        double r26979610 = r26979601 * r26979609;
        double r26979611 = r26979605 + r26979610;
        double r26979612 = 0.083333333333333;
        double r26979613 = y;
        double r26979614 = 0.0007936500793651;
        double r26979615 = r26979613 + r26979614;
        double r26979616 = z;
        double r26979617 = r26979615 * r26979616;
        double r26979618 = 0.0027777777777778;
        double r26979619 = r26979617 - r26979618;
        double r26979620 = r26979619 * r26979616;
        double r26979621 = r26979612 + r26979620;
        double r26979622 = r26979621 / r26979595;
        double r26979623 = r26979611 + r26979622;
        double r26979624 = r26979598 * r26979598;
        double r26979625 = log(r26979624);
        double r26979626 = r26979601 * r26979625;
        double r26979627 = log(r26979607);
        double r26979628 = r26979627 * r26979601;
        double r26979629 = r26979626 + r26979628;
        double r26979630 = r26979629 - r26979595;
        double r26979631 = r26979604 + r26979630;
        double r26979632 = r26979595 / r26979616;
        double r26979633 = r26979616 / r26979632;
        double r26979634 = r26979633 * r26979615;
        double r26979635 = r26979618 * r26979616;
        double r26979636 = r26979635 / r26979595;
        double r26979637 = r26979634 - r26979636;
        double r26979638 = r26979631 + r26979637;
        double r26979639 = r26979597 ? r26979623 : r26979638;
        return r26979639;
}

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

Original5.6
Target1.1
Herbie0.3
\[\left(\left(\left(x - 0.5\right) \cdot \log x + \left(0.91893853320467 - x\right)\right) + \frac{0.083333333333333}{x}\right) + \frac{z}{x} \cdot \left(z \cdot \left(y + 0.0007936500793651\right) - 0.0027777777777778\right)\]

Derivation

  1. Split input into 2 regimes
  2. if x < 29155066420271276.0

    1. Initial program 0.1

      \[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt0.1

      \[\leadsto \left(\left(\left(x - 0.5\right) \cdot \log \color{blue}{\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}\right)} - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    4. Applied log-prod0.1

      \[\leadsto \left(\left(\left(x - 0.5\right) \cdot \color{blue}{\left(\log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) + \log \left(\sqrt[3]{x}\right)\right)} - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    5. Applied distribute-rgt-in0.1

      \[\leadsto \left(\left(\color{blue}{\left(\log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(x - 0.5\right) + \log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right)\right)} - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    6. Applied associate--l+0.1

      \[\leadsto \left(\color{blue}{\left(\log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(x - 0.5\right) + \left(\log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right) - x\right)\right)} + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    7. Applied associate-+l+0.1

      \[\leadsto \color{blue}{\left(\log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(x - 0.5\right) + \left(\left(\log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467\right)\right)} + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    8. Using strategy rm
    9. Applied pow1/30.1

      \[\leadsto \left(\log \left(\color{blue}{{x}^{\frac{1}{3}}} \cdot \sqrt[3]{x}\right) \cdot \left(x - 0.5\right) + \left(\left(\log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467\right)\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]

    if 29155066420271276.0 < x

    1. Initial program 10.0

      \[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt10.0

      \[\leadsto \left(\left(\left(x - 0.5\right) \cdot \log \color{blue}{\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}\right)} - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    4. Applied log-prod10.0

      \[\leadsto \left(\left(\left(x - 0.5\right) \cdot \color{blue}{\left(\log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) + \log \left(\sqrt[3]{x}\right)\right)} - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    5. Applied distribute-lft-in10.1

      \[\leadsto \left(\left(\color{blue}{\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right)\right)} - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    6. Using strategy rm
    7. Applied pow1/310.0

      \[\leadsto \left(\left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) + \left(x - 0.5\right) \cdot \log \color{blue}{\left({x}^{\frac{1}{3}}\right)}\right) - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    8. Taylor expanded around inf 10.1

      \[\leadsto \left(\left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) + \left(x - 0.5\right) \cdot \log \left({x}^{\frac{1}{3}}\right)\right) - x\right) + 0.91893853320467\right) + \color{blue}{\left(\left(0.0007936500793651 \cdot \frac{{z}^{2}}{x} + \frac{{z}^{2} \cdot y}{x}\right) - 0.0027777777777778 \cdot \frac{z}{x}\right)}\]
    9. Simplified0.5

      \[\leadsto \left(\left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) + \left(x - 0.5\right) \cdot \log \left({x}^{\frac{1}{3}}\right)\right) - x\right) + 0.91893853320467\right) + \color{blue}{\left(\frac{z}{\frac{x}{z}} \cdot \left(0.0007936500793651 + y\right) - \frac{z \cdot 0.0027777777777778}{x}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le 29155066420271276.0:\\ \;\;\;\;\left(\left(\left(\log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right) - x\right) + 0.91893853320467\right) + \left(x - 0.5\right) \cdot \log \left({x}^{\frac{1}{3}} \cdot \sqrt[3]{x}\right)\right) + \frac{0.083333333333333 + \left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z}{x}\\ \mathbf{else}:\\ \;\;\;\;\left(0.91893853320467 + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) + \log \left({x}^{\frac{1}{3}}\right) \cdot \left(x - 0.5\right)\right) - x\right)\right) + \left(\frac{z}{\frac{x}{z}} \cdot \left(y + 0.0007936500793651\right) - \frac{0.0027777777777778 \cdot z}{x}\right)\\ \end{array}\]

Reproduce

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

  :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)))