Average Error: 5.9 → 5.9
Time: 21.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}\]
\[\left(\left(x - 0.5\right) \cdot \log x - \left(x - 0.9189385332046700050057097541866824030876\right)\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}\]
\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}
\left(\left(x - 0.5\right) \cdot \log x - \left(x - 0.9189385332046700050057097541866824030876\right)\right) + \frac{\left(\left(y + 7.936500793651000149400709382518925849581 \cdot 10^{-4}\right) \cdot z - 0.002777777777777800001512975569539776188321\right) \cdot z + 0.08333333333333299564049667651488562114537}{x}
double f(double x, double y, double z) {
        double r356067 = x;
        double r356068 = 0.5;
        double r356069 = r356067 - r356068;
        double r356070 = log(r356067);
        double r356071 = r356069 * r356070;
        double r356072 = r356071 - r356067;
        double r356073 = 0.91893853320467;
        double r356074 = r356072 + r356073;
        double r356075 = y;
        double r356076 = 0.0007936500793651;
        double r356077 = r356075 + r356076;
        double r356078 = z;
        double r356079 = r356077 * r356078;
        double r356080 = 0.0027777777777778;
        double r356081 = r356079 - r356080;
        double r356082 = r356081 * r356078;
        double r356083 = 0.083333333333333;
        double r356084 = r356082 + r356083;
        double r356085 = r356084 / r356067;
        double r356086 = r356074 + r356085;
        return r356086;
}

double f(double x, double y, double z) {
        double r356087 = x;
        double r356088 = 0.5;
        double r356089 = r356087 - r356088;
        double r356090 = log(r356087);
        double r356091 = r356089 * r356090;
        double r356092 = 0.91893853320467;
        double r356093 = r356087 - r356092;
        double r356094 = r356091 - r356093;
        double r356095 = y;
        double r356096 = 0.0007936500793651;
        double r356097 = r356095 + r356096;
        double r356098 = z;
        double r356099 = r356097 * r356098;
        double r356100 = 0.0027777777777778;
        double r356101 = r356099 - r356100;
        double r356102 = r356101 * r356098;
        double r356103 = 0.083333333333333;
        double r356104 = r356102 + r356103;
        double r356105 = r356104 / r356087;
        double r356106 = r356094 + r356105;
        return r356106;
}

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

    \[\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 associate-+l-5.9

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

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

Reproduce

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