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

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

\end{array}
double f(double x, double y, double z) {
        double r90017392 = x;
        double r90017393 = 0.5;
        double r90017394 = r90017392 - r90017393;
        double r90017395 = log(r90017392);
        double r90017396 = r90017394 * r90017395;
        double r90017397 = r90017396 - r90017392;
        double r90017398 = 0.91893853320467;
        double r90017399 = r90017397 + r90017398;
        double r90017400 = y;
        double r90017401 = 0.0007936500793651;
        double r90017402 = r90017400 + r90017401;
        double r90017403 = z;
        double r90017404 = r90017402 * r90017403;
        double r90017405 = 0.0027777777777778;
        double r90017406 = r90017404 - r90017405;
        double r90017407 = r90017406 * r90017403;
        double r90017408 = 0.083333333333333;
        double r90017409 = r90017407 + r90017408;
        double r90017410 = r90017409 / r90017392;
        double r90017411 = r90017399 + r90017410;
        return r90017411;
}

double f(double x, double y, double z) {
        double r90017412 = x;
        double r90017413 = 11293960185246276.0;
        bool r90017414 = r90017412 <= r90017413;
        double r90017415 = 0.5;
        double r90017416 = r90017412 - r90017415;
        double r90017417 = cbrt(r90017412);
        double r90017418 = r90017417 * r90017417;
        double r90017419 = log(r90017418);
        double r90017420 = r90017416 * r90017419;
        double r90017421 = 0.3333333333333333;
        double r90017422 = cbrt(r90017421);
        double r90017423 = r90017422 * r90017422;
        double r90017424 = pow(r90017412, r90017423);
        double r90017425 = pow(r90017424, r90017422);
        double r90017426 = log(r90017425);
        double r90017427 = r90017416 * r90017426;
        double r90017428 = r90017427 - r90017412;
        double r90017429 = 0.91893853320467;
        double r90017430 = r90017428 + r90017429;
        double r90017431 = r90017420 + r90017430;
        double r90017432 = y;
        double r90017433 = 0.0007936500793651;
        double r90017434 = r90017432 + r90017433;
        double r90017435 = z;
        double r90017436 = r90017434 * r90017435;
        double r90017437 = 0.0027777777777778;
        double r90017438 = r90017436 - r90017437;
        double r90017439 = r90017438 * r90017435;
        double r90017440 = 0.083333333333333;
        double r90017441 = r90017439 + r90017440;
        double r90017442 = r90017441 / r90017412;
        double r90017443 = r90017431 + r90017442;
        double r90017444 = log(r90017412);
        double r90017445 = r90017416 * r90017444;
        double r90017446 = r90017445 - r90017412;
        double r90017447 = r90017446 + r90017429;
        double r90017448 = r90017435 * r90017435;
        double r90017449 = r90017448 / r90017412;
        double r90017450 = r90017449 * r90017434;
        double r90017451 = r90017435 / r90017412;
        double r90017452 = r90017437 * r90017451;
        double r90017453 = r90017450 - r90017452;
        double r90017454 = r90017447 + r90017453;
        double r90017455 = r90017414 ? r90017443 : r90017454;
        return r90017455;
}

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.9
Target1.3
Herbie4.0
\[\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 < 11293960185246276.0

    1. Initial program 0.1

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

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

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

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

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

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

    if 11293960185246276.0 < x

    1. Initial program 10.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. Taylor expanded around inf 10.5

      \[\leadsto \left(\left(\left(x - 0.5\right) \cdot \log x - 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)}\]
    3. Simplified7.0

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

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

Reproduce

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