Average Error: 6.2 → 0.5
Time: 21.6s
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}\;x \le 48560186668524628869120:\\ \;\;\;\;\sqrt{\log x \cdot \left(x - 0.5\right) - x} \cdot \sqrt{\log x \cdot \left(x - 0.5\right) - x} + \left(\frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x} + 0.9189385332046700050057097541866824030876\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(x - 0.5\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) - x\right)\right) + \left(\left(\frac{z}{\frac{x}{z}} \cdot \left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) - \frac{z \cdot 0.002777777777777800001512975569539776188321}{x}\right) + 0.9189385332046700050057097541866824030876\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}\;x \le 48560186668524628869120:\\
\;\;\;\;\sqrt{\log x \cdot \left(x - 0.5\right) - x} \cdot \sqrt{\log x \cdot \left(x - 0.5\right) - x} + \left(\frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x} + 0.9189385332046700050057097541866824030876\right)\\

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

\end{array}
double f(double x, double y, double z) {
        double r400188 = x;
        double r400189 = 0.5;
        double r400190 = r400188 - r400189;
        double r400191 = log(r400188);
        double r400192 = r400190 * r400191;
        double r400193 = r400192 - r400188;
        double r400194 = 0.91893853320467;
        double r400195 = r400193 + r400194;
        double r400196 = y;
        double r400197 = 0.0007936500793651;
        double r400198 = r400196 + r400197;
        double r400199 = z;
        double r400200 = r400198 * r400199;
        double r400201 = 0.0027777777777778;
        double r400202 = r400200 - r400201;
        double r400203 = r400202 * r400199;
        double r400204 = 0.083333333333333;
        double r400205 = r400203 + r400204;
        double r400206 = r400205 / r400188;
        double r400207 = r400195 + r400206;
        return r400207;
}

double f(double x, double y, double z) {
        double r400208 = x;
        double r400209 = 4.856018666852463e+22;
        bool r400210 = r400208 <= r400209;
        double r400211 = log(r400208);
        double r400212 = 0.5;
        double r400213 = r400208 - r400212;
        double r400214 = r400211 * r400213;
        double r400215 = r400214 - r400208;
        double r400216 = sqrt(r400215);
        double r400217 = r400216 * r400216;
        double r400218 = y;
        double r400219 = 0.0007936500793651;
        double r400220 = r400218 + r400219;
        double r400221 = z;
        double r400222 = r400220 * r400221;
        double r400223 = 0.0027777777777778;
        double r400224 = r400222 - r400223;
        double r400225 = r400224 * r400221;
        double r400226 = 0.083333333333333;
        double r400227 = r400225 + r400226;
        double r400228 = r400227 / r400208;
        double r400229 = 0.91893853320467;
        double r400230 = r400228 + r400229;
        double r400231 = r400217 + r400230;
        double r400232 = cbrt(r400208);
        double r400233 = r400232 * r400232;
        double r400234 = log(r400233);
        double r400235 = r400234 * r400213;
        double r400236 = log(r400232);
        double r400237 = r400213 * r400236;
        double r400238 = r400237 - r400208;
        double r400239 = r400235 + r400238;
        double r400240 = r400208 / r400221;
        double r400241 = r400221 / r400240;
        double r400242 = r400241 * r400220;
        double r400243 = r400221 * r400223;
        double r400244 = r400243 / r400208;
        double r400245 = r400242 - r400244;
        double r400246 = r400245 + r400229;
        double r400247 = r400239 + r400246;
        double r400248 = r400210 ? r400231 : r400247;
        return r400248;
}

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.2
Target1.2
Herbie0.5
\[\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 x < 4.856018666852463e+22

    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. Simplified0.2

      \[\leadsto \color{blue}{\left(\left(x - 0.5\right) \cdot \log x - x\right) + \left(0.9189385332046700050057097541866824030876 + \frac{0.08333333333333299564049667651488562114537 + z \cdot \left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right)}{x}\right)}\]
    3. Using strategy rm
    4. Applied add-sqr-sqrt0.5

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

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

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

    if 4.856018666852463e+22 < x

    1. Initial program 11.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. Simplified11.2

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

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

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

      \[\leadsto \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) + \left(0.9189385332046700050057097541866824030876 + \frac{0.08333333333333299564049667651488562114537 + z \cdot \left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right)}{x}\right)\]
    7. Applied associate--l+11.2

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

      \[\leadsto \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) - x\right)\right) + \left(0.9189385332046700050057097541866824030876 + \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)}\right)\]
    9. Simplified0.5

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

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

Reproduce

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