Average Error: 6.0 → 0.7
Time: 24.5s
Precision: 64
\[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.9189385332046700050057097541866824030876\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
\[\begin{array}{l} \mathbf{if}\;z \le -18206639466674118656:\\ \;\;\;\;\left(0.9189385332046700050057097541866824030876 + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right)\right)\right) - x\right)\right) + \left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot \frac{z}{\frac{x}{z}} - \frac{z \cdot 0.002777777777777800001512975569539776188321}{x}\right)\\ \mathbf{elif}\;z \le 5.256216319270169315831795453690469448551 \cdot 10^{-14}:\\ \;\;\;\;\left(\left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left({x}^{\frac{1}{3}}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right)\right)\right) - x\right) + 0.9189385332046700050057097541866824030876\right) + \frac{0.08333333333333299564049667651488562114537 + \left(z \cdot \left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) - 0.002777777777777800001512975569539776188321\right) \cdot z}{x}\\ \mathbf{else}:\\ \;\;\;\;\left(0.9189385332046700050057097541866824030876 + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right)\right)\right) - x\right)\right) + \left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot \frac{z}{\frac{x}{z}} - \frac{z \cdot 0.002777777777777800001512975569539776188321}{x}\right)\\ \end{array}\]
\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.9189385332046700050057097541866824030876\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}
\begin{array}{l}
\mathbf{if}\;z \le -18206639466674118656:\\
\;\;\;\;\left(0.9189385332046700050057097541866824030876 + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right)\right)\right) - x\right)\right) + \left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot \frac{z}{\frac{x}{z}} - \frac{z \cdot 0.002777777777777800001512975569539776188321}{x}\right)\\

\mathbf{elif}\;z \le 5.256216319270169315831795453690469448551 \cdot 10^{-14}:\\
\;\;\;\;\left(\left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left({x}^{\frac{1}{3}}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right)\right)\right) - x\right) + 0.9189385332046700050057097541866824030876\right) + \frac{0.08333333333333299564049667651488562114537 + \left(z \cdot \left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) - 0.002777777777777800001512975569539776188321\right) \cdot z}{x}\\

\mathbf{else}:\\
\;\;\;\;\left(0.9189385332046700050057097541866824030876 + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right)\right)\right) - x\right)\right) + \left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot \frac{z}{\frac{x}{z}} - \frac{z \cdot 0.002777777777777800001512975569539776188321}{x}\right)\\

\end{array}
double f(double x, double y, double z) {
        double r19828031 = x;
        double r19828032 = 0.5;
        double r19828033 = r19828031 - r19828032;
        double r19828034 = log(r19828031);
        double r19828035 = r19828033 * r19828034;
        double r19828036 = r19828035 - r19828031;
        double r19828037 = 0.91893853320467;
        double r19828038 = r19828036 + r19828037;
        double r19828039 = y;
        double r19828040 = 0.0007936500793651;
        double r19828041 = r19828039 + r19828040;
        double r19828042 = z;
        double r19828043 = r19828041 * r19828042;
        double r19828044 = 0.0027777777777778;
        double r19828045 = r19828043 - r19828044;
        double r19828046 = r19828045 * r19828042;
        double r19828047 = 0.083333333333333;
        double r19828048 = r19828046 + r19828047;
        double r19828049 = r19828048 / r19828031;
        double r19828050 = r19828038 + r19828049;
        return r19828050;
}

double f(double x, double y, double z) {
        double r19828051 = z;
        double r19828052 = -1.8206639466674119e+19;
        bool r19828053 = r19828051 <= r19828052;
        double r19828054 = 0.91893853320467;
        double r19828055 = x;
        double r19828056 = 0.5;
        double r19828057 = r19828055 - r19828056;
        double r19828058 = cbrt(r19828055);
        double r19828059 = log(r19828058);
        double r19828060 = r19828057 * r19828059;
        double r19828061 = r19828060 + r19828060;
        double r19828062 = r19828060 + r19828061;
        double r19828063 = r19828062 - r19828055;
        double r19828064 = r19828054 + r19828063;
        double r19828065 = y;
        double r19828066 = 0.0007936500793651;
        double r19828067 = r19828065 + r19828066;
        double r19828068 = r19828055 / r19828051;
        double r19828069 = r19828051 / r19828068;
        double r19828070 = r19828067 * r19828069;
        double r19828071 = 0.0027777777777778;
        double r19828072 = r19828051 * r19828071;
        double r19828073 = r19828072 / r19828055;
        double r19828074 = r19828070 - r19828073;
        double r19828075 = r19828064 + r19828074;
        double r19828076 = 5.2562163192701693e-14;
        bool r19828077 = r19828051 <= r19828076;
        double r19828078 = 0.3333333333333333;
        double r19828079 = pow(r19828055, r19828078);
        double r19828080 = log(r19828079);
        double r19828081 = r19828057 * r19828080;
        double r19828082 = r19828081 + r19828060;
        double r19828083 = r19828060 + r19828082;
        double r19828084 = r19828083 - r19828055;
        double r19828085 = r19828084 + r19828054;
        double r19828086 = 0.083333333333333;
        double r19828087 = r19828051 * r19828067;
        double r19828088 = r19828087 - r19828071;
        double r19828089 = r19828088 * r19828051;
        double r19828090 = r19828086 + r19828089;
        double r19828091 = r19828090 / r19828055;
        double r19828092 = r19828085 + r19828091;
        double r19828093 = r19828077 ? r19828092 : r19828075;
        double r19828094 = r19828053 ? r19828075 : r19828093;
        return r19828094;
}

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.2
Herbie0.7
\[\left(\left(\left(x - 0.5\right) \cdot \log x + \left(0.9189385332046700050057097541866824030876 - x\right)\right) + \frac{0.08333333333333299564049667651488562114537}{x}\right) + \frac{z}{x} \cdot \left(z \cdot \left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) - 0.002777777777777800001512975569539776188321\right)\]

Derivation

  1. Split input into 2 regimes
  2. if z < -1.8206639466674119e+19 or 5.2562163192701693e-14 < z

    1. Initial program 20.4

      \[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.9189385332046700050057097541866824030876\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt20.4

      \[\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.9189385332046700050057097541866824030876\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
    4. Applied log-prod20.4

      \[\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.9189385332046700050057097541866824030876\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
    5. Applied distribute-rgt-in20.4

      \[\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.9189385332046700050057097541866824030876\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
    6. Simplified20.4

      \[\leadsto \left(\left(\left(\color{blue}{\left(\log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right) + \log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right)\right)} + \log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right)\right) - x\right) + 0.9189385332046700050057097541866824030876\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
    7. Taylor expanded around inf 21.7

      \[\leadsto \left(\left(\left(\left(\log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right) + \log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right)\right) + \log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right)\right) - x\right) + 0.9189385332046700050057097541866824030876\right) + \color{blue}{\left(\left(7.936500793651000149400709382518925849581 \cdot 10^{-4} \cdot \frac{{z}^{2}}{x} + \frac{{z}^{2} \cdot y}{x}\right) - 0.002777777777777800001512975569539776188321 \cdot \frac{z}{x}\right)}\]
    8. Simplified1.6

      \[\leadsto \left(\left(\left(\left(\log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right) + \log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right)\right) + \log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right)\right) - x\right) + 0.9189385332046700050057097541866824030876\right) + \color{blue}{\left(\frac{z}{\frac{x}{z}} \cdot \left(7.936500793651000149400709382518925849581 \cdot 10^{-4} + y\right) - \frac{z \cdot 0.002777777777777800001512975569539776188321}{x}\right)}\]

    if -1.8206639466674119e+19 < z < 5.2562163192701693e-14

    1. Initial program 0.2

      \[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.9189385332046700050057097541866824030876\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt0.2

      \[\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.9189385332046700050057097541866824030876\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
    4. Applied log-prod0.3

      \[\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.9189385332046700050057097541866824030876\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
    5. Applied distribute-rgt-in0.3

      \[\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.9189385332046700050057097541866824030876\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
    6. Simplified0.3

      \[\leadsto \left(\left(\left(\color{blue}{\left(\log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right) + \log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right)\right)} + \log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right)\right) - x\right) + 0.9189385332046700050057097541866824030876\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
    7. Using strategy rm
    8. Applied pow1/30.3

      \[\leadsto \left(\left(\left(\left(\log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right) + \log \color{blue}{\left({x}^{\frac{1}{3}}\right)} \cdot \left(x - 0.5\right)\right) + \log \left(\sqrt[3]{x}\right) \cdot \left(x - 0.5\right)\right) - x\right) + 0.9189385332046700050057097541866824030876\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -18206639466674118656:\\ \;\;\;\;\left(0.9189385332046700050057097541866824030876 + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right)\right)\right) - x\right)\right) + \left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot \frac{z}{\frac{x}{z}} - \frac{z \cdot 0.002777777777777800001512975569539776188321}{x}\right)\\ \mathbf{elif}\;z \le 5.256216319270169315831795453690469448551 \cdot 10^{-14}:\\ \;\;\;\;\left(\left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left({x}^{\frac{1}{3}}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right)\right)\right) - x\right) + 0.9189385332046700050057097541866824030876\right) + \frac{0.08333333333333299564049667651488562114537 + \left(z \cdot \left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) - 0.002777777777777800001512975569539776188321\right) \cdot z}{x}\\ \mathbf{else}:\\ \;\;\;\;\left(0.9189385332046700050057097541866824030876 + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right)\right)\right) - x\right)\right) + \left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot \frac{z}{\frac{x}{z}} - \frac{z \cdot 0.002777777777777800001512975569539776188321}{x}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019192 
(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)))