Average Error: 6.1 → 5.4
Time: 16.1s
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 6.743725811360242913044849532668067028984 \cdot 10^{87}:\\ \;\;\;\;\frac{{\left(\left(x - 0.5\right) \cdot \log x - x\right)}^{3} + {0.9189385332046700050057097541866824030876}^{3}}{0.9189385332046700050057097541866824030876 \cdot \left(0.9189385332046700050057097541866824030876 - \left(\left(x - 0.5\right) \cdot \log x - x\right)\right) + \left(\left(x - 0.5\right) \cdot \log x - x\right) \cdot \left(\left(x - 0.5\right) \cdot \log x - x\right)} + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\\ \mathbf{else}:\\ \;\;\;\;\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) + \left(\left(7.936500793651000149400709382518925849581 \cdot 10^{-4} \cdot \frac{{z}^{2}}{x} + 0.08333333333333299564049667651488562114537 \cdot \frac{1}{x}\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 6.743725811360242913044849532668067028984 \cdot 10^{87}:\\
\;\;\;\;\frac{{\left(\left(x - 0.5\right) \cdot \log x - x\right)}^{3} + {0.9189385332046700050057097541866824030876}^{3}}{0.9189385332046700050057097541866824030876 \cdot \left(0.9189385332046700050057097541866824030876 - \left(\left(x - 0.5\right) \cdot \log x - x\right)\right) + \left(\left(x - 0.5\right) \cdot \log x - x\right) \cdot \left(\left(x - 0.5\right) \cdot \log x - x\right)} + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\\

\mathbf{else}:\\
\;\;\;\;\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) + \left(\left(7.936500793651000149400709382518925849581 \cdot 10^{-4} \cdot \frac{{z}^{2}}{x} + 0.08333333333333299564049667651488562114537 \cdot \frac{1}{x}\right) - 0.002777777777777800001512975569539776188321 \cdot \frac{z}{x}\right)\\

\end{array}
double f(double x, double y, double z) {
        double r344482 = x;
        double r344483 = 0.5;
        double r344484 = r344482 - r344483;
        double r344485 = log(r344482);
        double r344486 = r344484 * r344485;
        double r344487 = r344486 - r344482;
        double r344488 = 0.91893853320467;
        double r344489 = r344487 + r344488;
        double r344490 = y;
        double r344491 = 0.0007936500793651;
        double r344492 = r344490 + r344491;
        double r344493 = z;
        double r344494 = r344492 * r344493;
        double r344495 = 0.0027777777777778;
        double r344496 = r344494 - r344495;
        double r344497 = r344496 * r344493;
        double r344498 = 0.083333333333333;
        double r344499 = r344497 + r344498;
        double r344500 = r344499 / r344482;
        double r344501 = r344489 + r344500;
        return r344501;
}

double f(double x, double y, double z) {
        double r344502 = x;
        double r344503 = 6.743725811360243e+87;
        bool r344504 = r344502 <= r344503;
        double r344505 = 0.5;
        double r344506 = r344502 - r344505;
        double r344507 = log(r344502);
        double r344508 = r344506 * r344507;
        double r344509 = r344508 - r344502;
        double r344510 = 3.0;
        double r344511 = pow(r344509, r344510);
        double r344512 = 0.91893853320467;
        double r344513 = pow(r344512, r344510);
        double r344514 = r344511 + r344513;
        double r344515 = r344512 - r344509;
        double r344516 = r344512 * r344515;
        double r344517 = r344509 * r344509;
        double r344518 = r344516 + r344517;
        double r344519 = r344514 / r344518;
        double r344520 = y;
        double r344521 = 0.0007936500793651;
        double r344522 = r344520 + r344521;
        double r344523 = z;
        double r344524 = r344522 * r344523;
        double r344525 = 0.0027777777777778;
        double r344526 = r344524 - r344525;
        double r344527 = r344526 * r344523;
        double r344528 = 0.083333333333333;
        double r344529 = r344527 + r344528;
        double r344530 = r344529 / r344502;
        double r344531 = r344519 + r344530;
        double r344532 = cbrt(r344502);
        double r344533 = r344532 * r344532;
        double r344534 = log(r344533);
        double r344535 = r344534 * r344506;
        double r344536 = log(r344532);
        double r344537 = r344536 * r344506;
        double r344538 = r344537 - r344502;
        double r344539 = r344538 + r344512;
        double r344540 = r344535 + r344539;
        double r344541 = 2.0;
        double r344542 = pow(r344523, r344541);
        double r344543 = r344542 / r344502;
        double r344544 = r344521 * r344543;
        double r344545 = 1.0;
        double r344546 = r344545 / r344502;
        double r344547 = r344528 * r344546;
        double r344548 = r344544 + r344547;
        double r344549 = r344523 / r344502;
        double r344550 = r344525 * r344549;
        double r344551 = r344548 - r344550;
        double r344552 = r344540 + r344551;
        double r344553 = r344504 ? r344531 : r344552;
        return r344553;
}

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.1
Target1.2
Herbie5.4
\[\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 < 6.743725811360243e+87

    1. Initial program 1.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 flip3-+1.1

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

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

    if 6.743725811360243e+87 < x

    1. Initial program 12.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-cbrt12.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-prod12.5

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

      \[\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+12.5

      \[\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+12.5

      \[\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. Taylor expanded around 0 10.9

      \[\leadsto \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) + \color{blue}{\left(\left(7.936500793651000149400709382518925849581 \cdot 10^{-4} \cdot \frac{{z}^{2}}{x} + 0.08333333333333299564049667651488562114537 \cdot \frac{1}{x}\right) - 0.002777777777777800001512975569539776188321 \cdot \frac{z}{x}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification5.4

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

Reproduce

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