Average Error: 6.0 → 2.6
Time: 27.7s
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 33927.194853528519161045551300048828125:\\ \;\;\;\;\frac{z \cdot \left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) + 0.08333333333333299564049667651488562114537}{x} + \left(0.9189385332046700050057097541866824030876 + \left(\sqrt[3]{\left(\left(\left(x - 0.5\right) \cdot \log x\right) \cdot \left(\left(x - 0.5\right) \cdot \log x\right)\right) \cdot \left(\left(x - 0.5\right) \cdot \log x\right)} - x\right)\right)\\ \mathbf{elif}\;x \le 3.969255511687771800217701409925025577478 \cdot 10^{177}:\\ \;\;\;\;\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) - \frac{z}{x} \cdot 0.002777777777777800001512975569539776188321\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{z \cdot \left(0.4000000000000064059868520871532382443547 \cdot x - x \cdot \left(z \cdot 0.1009522780952416126654114236771420110017\right)\right) + x \cdot 12.00000000000004796163466380676254630089} + \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)\\ \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 33927.194853528519161045551300048828125:\\
\;\;\;\;\frac{z \cdot \left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) + 0.08333333333333299564049667651488562114537}{x} + \left(0.9189385332046700050057097541866824030876 + \left(\sqrt[3]{\left(\left(\left(x - 0.5\right) \cdot \log x\right) \cdot \left(\left(x - 0.5\right) \cdot \log x\right)\right) \cdot \left(\left(x - 0.5\right) \cdot \log x\right)} - x\right)\right)\\

\mathbf{elif}\;x \le 3.969255511687771800217701409925025577478 \cdot 10^{177}:\\
\;\;\;\;\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) - \frac{z}{x} \cdot 0.002777777777777800001512975569539776188321\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{z \cdot \left(0.4000000000000064059868520871532382443547 \cdot x - x \cdot \left(z \cdot 0.1009522780952416126654114236771420110017\right)\right) + x \cdot 12.00000000000004796163466380676254630089} + \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)\\

\end{array}
double f(double x, double y, double z) {
        double r24333951 = x;
        double r24333952 = 0.5;
        double r24333953 = r24333951 - r24333952;
        double r24333954 = log(r24333951);
        double r24333955 = r24333953 * r24333954;
        double r24333956 = r24333955 - r24333951;
        double r24333957 = 0.91893853320467;
        double r24333958 = r24333956 + r24333957;
        double r24333959 = y;
        double r24333960 = 0.0007936500793651;
        double r24333961 = r24333959 + r24333960;
        double r24333962 = z;
        double r24333963 = r24333961 * r24333962;
        double r24333964 = 0.0027777777777778;
        double r24333965 = r24333963 - r24333964;
        double r24333966 = r24333965 * r24333962;
        double r24333967 = 0.083333333333333;
        double r24333968 = r24333966 + r24333967;
        double r24333969 = r24333968 / r24333951;
        double r24333970 = r24333958 + r24333969;
        return r24333970;
}

double f(double x, double y, double z) {
        double r24333971 = x;
        double r24333972 = 33927.19485352852;
        bool r24333973 = r24333971 <= r24333972;
        double r24333974 = z;
        double r24333975 = y;
        double r24333976 = 0.0007936500793651;
        double r24333977 = r24333975 + r24333976;
        double r24333978 = r24333977 * r24333974;
        double r24333979 = 0.0027777777777778;
        double r24333980 = r24333978 - r24333979;
        double r24333981 = r24333974 * r24333980;
        double r24333982 = 0.083333333333333;
        double r24333983 = r24333981 + r24333982;
        double r24333984 = r24333983 / r24333971;
        double r24333985 = 0.91893853320467;
        double r24333986 = 0.5;
        double r24333987 = r24333971 - r24333986;
        double r24333988 = log(r24333971);
        double r24333989 = r24333987 * r24333988;
        double r24333990 = r24333989 * r24333989;
        double r24333991 = r24333990 * r24333989;
        double r24333992 = cbrt(r24333991);
        double r24333993 = r24333992 - r24333971;
        double r24333994 = r24333985 + r24333993;
        double r24333995 = r24333984 + r24333994;
        double r24333996 = 3.969255511687772e+177;
        bool r24333997 = r24333971 <= r24333996;
        double r24333998 = r24333989 - r24333971;
        double r24333999 = r24333998 + r24333985;
        double r24334000 = r24333974 * r24333974;
        double r24334001 = r24334000 / r24333971;
        double r24334002 = r24334001 * r24333977;
        double r24334003 = r24333974 / r24333971;
        double r24334004 = r24334003 * r24333979;
        double r24334005 = r24334002 - r24334004;
        double r24334006 = r24333999 + r24334005;
        double r24334007 = 1.0;
        double r24334008 = 0.4000000000000064;
        double r24334009 = r24334008 * r24333971;
        double r24334010 = 0.10095227809524161;
        double r24334011 = r24333974 * r24334010;
        double r24334012 = r24333971 * r24334011;
        double r24334013 = r24334009 - r24334012;
        double r24334014 = r24333974 * r24334013;
        double r24334015 = 12.000000000000048;
        double r24334016 = r24333971 * r24334015;
        double r24334017 = r24334014 + r24334016;
        double r24334018 = r24334007 / r24334017;
        double r24334019 = cbrt(r24333971);
        double r24334020 = r24334019 * r24334019;
        double r24334021 = log(r24334020);
        double r24334022 = r24333987 * r24334021;
        double r24334023 = log(r24334019);
        double r24334024 = r24333987 * r24334023;
        double r24334025 = r24334024 - r24333971;
        double r24334026 = r24334025 + r24333985;
        double r24334027 = r24334022 + r24334026;
        double r24334028 = r24334018 + r24334027;
        double r24334029 = r24333997 ? r24334006 : r24334028;
        double r24334030 = r24333973 ? r24333995 : r24334029;
        return r24334030;
}

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
Herbie2.6
\[\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 3 regimes
  2. if x < 33927.19485352852

    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-cbrt-cube0.1

      \[\leadsto \left(\left(\left(x - 0.5\right) \cdot \color{blue}{\sqrt[3]{\left(\log x \cdot \log x\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}\]
    4. Applied add-cbrt-cube0.1

      \[\leadsto \left(\left(\color{blue}{\sqrt[3]{\left(\left(x - 0.5\right) \cdot \left(x - 0.5\right)\right) \cdot \left(x - 0.5\right)}} \cdot \sqrt[3]{\left(\log x \cdot \log x\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}\]
    5. Applied cbrt-unprod0.1

      \[\leadsto \left(\left(\color{blue}{\sqrt[3]{\left(\left(\left(x - 0.5\right) \cdot \left(x - 0.5\right)\right) \cdot \left(x - 0.5\right)\right) \cdot \left(\left(\log x \cdot \log x\right) \cdot \log 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}\]
    6. Simplified0.1

      \[\leadsto \left(\left(\sqrt[3]{\color{blue}{\left(\left(x - 0.5\right) \cdot \log x\right) \cdot \left(\left(\left(x - 0.5\right) \cdot \log x\right) \cdot \left(\left(x - 0.5\right) \cdot \log 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}\]

    if 33927.19485352852 < x < 3.969255511687772e+177

    1. Initial program 6.7

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

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

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

    if 3.969255511687772e+177 < x

    1. Initial program 14.0

      \[\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-cbrt14.0

      \[\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-prod14.0

      \[\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-in14.0

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

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

      \[\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 clear-num14.0

      \[\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}{\frac{1}{\frac{x}{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}}}\]
    10. Taylor expanded around 0 12.3

      \[\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) + \frac{1}{\color{blue}{\left(12.00000000000004796163466380676254630089 \cdot x + 0.4000000000000064059868520871532382443547 \cdot \left(x \cdot z\right)\right) - 0.1009522780952416126654114236771420110017 \cdot \left(x \cdot {z}^{2}\right)}}\]
    11. Simplified4.4

      \[\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) + \frac{1}{\color{blue}{x \cdot 12.00000000000004796163466380676254630089 + z \cdot \left(x \cdot 0.4000000000000064059868520871532382443547 - x \cdot \left(0.1009522780952416126654114236771420110017 \cdot z\right)\right)}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification2.6

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

Reproduce

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