Average Error: 6.2 → 4.8
Time: 28.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 -5.66491740305808737168727291153012636277 \cdot 10^{-15} \lor \neg \left(z \le 15435257873712398\right):\\ \;\;\;\;\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.9189385332046700050057097541866824030876\right) + \left(\frac{{z}^{2}}{x} \cdot \left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) - 0.002777777777777800001512975569539776188321 \cdot \frac{z}{x}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\log \left(\left(\sqrt[3]{{\left({x}^{\left(\sqrt[3]{\frac{2}{3}} \cdot \sqrt[3]{\frac{2}{3}}\right)}\right)}^{\left(\sqrt[3]{\frac{2}{3}}\right)}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \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.9189385332046700050057097541866824030876\right)\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\\ \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 -5.66491740305808737168727291153012636277 \cdot 10^{-15} \lor \neg \left(z \le 15435257873712398\right):\\
\;\;\;\;\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.9189385332046700050057097541866824030876\right) + \left(\frac{{z}^{2}}{x} \cdot \left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) - 0.002777777777777800001512975569539776188321 \cdot \frac{z}{x}\right)\\

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

\end{array}
double f(double x, double y, double z) {
        double r415332 = x;
        double r415333 = 0.5;
        double r415334 = r415332 - r415333;
        double r415335 = log(r415332);
        double r415336 = r415334 * r415335;
        double r415337 = r415336 - r415332;
        double r415338 = 0.91893853320467;
        double r415339 = r415337 + r415338;
        double r415340 = y;
        double r415341 = 0.0007936500793651;
        double r415342 = r415340 + r415341;
        double r415343 = z;
        double r415344 = r415342 * r415343;
        double r415345 = 0.0027777777777778;
        double r415346 = r415344 - r415345;
        double r415347 = r415346 * r415343;
        double r415348 = 0.083333333333333;
        double r415349 = r415347 + r415348;
        double r415350 = r415349 / r415332;
        double r415351 = r415339 + r415350;
        return r415351;
}

double f(double x, double y, double z) {
        double r415352 = z;
        double r415353 = -5.664917403058087e-15;
        bool r415354 = r415352 <= r415353;
        double r415355 = 15435257873712398.0;
        bool r415356 = r415352 <= r415355;
        double r415357 = !r415356;
        bool r415358 = r415354 || r415357;
        double r415359 = x;
        double r415360 = 0.5;
        double r415361 = r415359 - r415360;
        double r415362 = log(r415359);
        double r415363 = r415361 * r415362;
        double r415364 = r415363 - r415359;
        double r415365 = 0.91893853320467;
        double r415366 = r415364 + r415365;
        double r415367 = 2.0;
        double r415368 = pow(r415352, r415367);
        double r415369 = r415368 / r415359;
        double r415370 = y;
        double r415371 = 0.0007936500793651;
        double r415372 = r415370 + r415371;
        double r415373 = r415369 * r415372;
        double r415374 = 0.0027777777777778;
        double r415375 = r415352 / r415359;
        double r415376 = r415374 * r415375;
        double r415377 = r415373 - r415376;
        double r415378 = r415366 + r415377;
        double r415379 = 0.6666666666666666;
        double r415380 = cbrt(r415379);
        double r415381 = r415380 * r415380;
        double r415382 = pow(r415359, r415381);
        double r415383 = pow(r415382, r415380);
        double r415384 = cbrt(r415383);
        double r415385 = cbrt(r415359);
        double r415386 = cbrt(r415385);
        double r415387 = r415384 * r415386;
        double r415388 = r415387 * r415385;
        double r415389 = log(r415388);
        double r415390 = r415389 * r415361;
        double r415391 = log(r415385);
        double r415392 = r415391 * r415361;
        double r415393 = r415392 - r415359;
        double r415394 = r415393 + r415365;
        double r415395 = r415390 + r415394;
        double r415396 = r415372 * r415352;
        double r415397 = r415396 - r415374;
        double r415398 = r415397 * r415352;
        double r415399 = 0.083333333333333;
        double r415400 = r415398 + r415399;
        double r415401 = r415400 / r415359;
        double r415402 = r415395 + r415401;
        double r415403 = r415358 ? r415378 : r415402;
        return r415403;
}

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
Herbie4.8
\[\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 < -5.664917403058087e-15 or 15435257873712398.0 < z

    1. Initial program 20.3

      \[\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 21.9

      \[\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. Simplified15.5

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

    if -5.664917403058087e-15 < z < 15435257873712398.0

    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. Applied associate--l+0.2

      \[\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.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.2

      \[\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.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 add-cube-cbrt0.2

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

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

      \[\leadsto \left(\log \left(\left(\color{blue}{\sqrt[3]{{x}^{\frac{2}{3}}}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \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.9189385332046700050057097541866824030876\right)\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
    12. Using strategy rm
    13. Applied add-cube-cbrt0.3

      \[\leadsto \left(\log \left(\left(\sqrt[3]{{x}^{\color{blue}{\left(\left(\sqrt[3]{\frac{2}{3}} \cdot \sqrt[3]{\frac{2}{3}}\right) \cdot \sqrt[3]{\frac{2}{3}}\right)}}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \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.9189385332046700050057097541866824030876\right)\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
    14. Applied pow-unpow0.2

      \[\leadsto \left(\log \left(\left(\sqrt[3]{\color{blue}{{\left({x}^{\left(\sqrt[3]{\frac{2}{3}} \cdot \sqrt[3]{\frac{2}{3}}\right)}\right)}^{\left(\sqrt[3]{\frac{2}{3}}\right)}}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \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.9189385332046700050057097541866824030876\right)\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 simplification4.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -5.66491740305808737168727291153012636277 \cdot 10^{-15} \lor \neg \left(z \le 15435257873712398\right):\\ \;\;\;\;\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.9189385332046700050057097541866824030876\right) + \left(\frac{{z}^{2}}{x} \cdot \left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) - 0.002777777777777800001512975569539776188321 \cdot \frac{z}{x}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\log \left(\left(\sqrt[3]{{\left({x}^{\left(\sqrt[3]{\frac{2}{3}} \cdot \sqrt[3]{\frac{2}{3}}\right)}\right)}^{\left(\sqrt[3]{\frac{2}{3}}\right)}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \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.9189385332046700050057097541866824030876\right)\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\\ \end{array}\]

Reproduce

herbie shell --seed 2019306 
(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.91893853320467001 x)) (/ 0.0833333333333329956 x)) (* (/ z x) (- (* z (+ y 7.93650079365100015e-4)) 0.0027777777777778)))

  (+ (+ (- (* (- x 0.5) (log x)) x) 0.91893853320467001) (/ (+ (* (- (* (+ y 7.93650079365100015e-4) z) 0.0027777777777778) z) 0.0833333333333329956) x)))