Average Error: 6.0 → 6.0
Time: 25.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}\]
\[\frac{0.08333333333333299564049667651488562114537 + z \cdot \left(z \cdot \left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) - 0.002777777777777800001512975569539776188321\right)}{x} + \left(\left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \log \left(\sqrt[3]{x} \cdot {x}^{\frac{1}{3}}\right) \cdot \left(x - 0.5\right)\right) - x\right) + 0.9189385332046700050057097541866824030876\right)\]
\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}
\frac{0.08333333333333299564049667651488562114537 + z \cdot \left(z \cdot \left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) - 0.002777777777777800001512975569539776188321\right)}{x} + \left(\left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right) + \log \left(\sqrt[3]{x} \cdot {x}^{\frac{1}{3}}\right) \cdot \left(x - 0.5\right)\right) - x\right) + 0.9189385332046700050057097541866824030876\right)
double f(double x, double y, double z) {
        double r19296843 = x;
        double r19296844 = 0.5;
        double r19296845 = r19296843 - r19296844;
        double r19296846 = log(r19296843);
        double r19296847 = r19296845 * r19296846;
        double r19296848 = r19296847 - r19296843;
        double r19296849 = 0.91893853320467;
        double r19296850 = r19296848 + r19296849;
        double r19296851 = y;
        double r19296852 = 0.0007936500793651;
        double r19296853 = r19296851 + r19296852;
        double r19296854 = z;
        double r19296855 = r19296853 * r19296854;
        double r19296856 = 0.0027777777777778;
        double r19296857 = r19296855 - r19296856;
        double r19296858 = r19296857 * r19296854;
        double r19296859 = 0.083333333333333;
        double r19296860 = r19296858 + r19296859;
        double r19296861 = r19296860 / r19296843;
        double r19296862 = r19296850 + r19296861;
        return r19296862;
}

double f(double x, double y, double z) {
        double r19296863 = 0.083333333333333;
        double r19296864 = z;
        double r19296865 = y;
        double r19296866 = 0.0007936500793651;
        double r19296867 = r19296865 + r19296866;
        double r19296868 = r19296864 * r19296867;
        double r19296869 = 0.0027777777777778;
        double r19296870 = r19296868 - r19296869;
        double r19296871 = r19296864 * r19296870;
        double r19296872 = r19296863 + r19296871;
        double r19296873 = x;
        double r19296874 = r19296872 / r19296873;
        double r19296875 = 0.5;
        double r19296876 = r19296873 - r19296875;
        double r19296877 = cbrt(r19296873);
        double r19296878 = log(r19296877);
        double r19296879 = r19296876 * r19296878;
        double r19296880 = 0.3333333333333333;
        double r19296881 = pow(r19296873, r19296880);
        double r19296882 = r19296877 * r19296881;
        double r19296883 = log(r19296882);
        double r19296884 = r19296883 * r19296876;
        double r19296885 = r19296879 + r19296884;
        double r19296886 = r19296885 - r19296873;
        double r19296887 = 0.91893853320467;
        double r19296888 = r19296886 + r19296887;
        double r19296889 = r19296874 + r19296888;
        return r19296889;
}

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
Herbie6.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. Initial program 6.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-cbrt6.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-prod6.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-lft-in6.0

    \[\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. Using strategy rm
  7. Applied pow1/36.0

    \[\leadsto \left(\left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x} \cdot \color{blue}{{x}^{\frac{1}{3}}}\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}\]
  8. Final simplification6.0

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

Reproduce

herbie shell --seed 2019192 +o rules:numerics
(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)))