Average Error: 5.8 → 4.1
Time: 21.1s
Precision: 64
\[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le 2.2891311917030867 \cdot 10^{63}:\\ \;\;\;\;\left(\frac{{\left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right)\right)}^{3} - {x}^{3}}{\left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right)\right) \cdot \left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right) + x\right) + x \cdot x} + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \left(\frac{{z}^{2}}{x} \cdot \left(y + 7.93650079365100015 \cdot 10^{-4}\right) - 0.0027777777777778 \cdot \frac{z}{x}\right)\\ \end{array}\]
\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}
\begin{array}{l}
\mathbf{if}\;x \le 2.2891311917030867 \cdot 10^{63}:\\
\;\;\;\;\left(\frac{{\left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right)\right)}^{3} - {x}^{3}}{\left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right)\right) \cdot \left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right) + x\right) + x \cdot x} + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \left(\frac{{z}^{2}}{x} \cdot \left(y + 7.93650079365100015 \cdot 10^{-4}\right) - 0.0027777777777778 \cdot \frac{z}{x}\right)\\

\end{array}
double f(double x, double y, double z) {
        double r584169 = x;
        double r584170 = 0.5;
        double r584171 = r584169 - r584170;
        double r584172 = log(r584169);
        double r584173 = r584171 * r584172;
        double r584174 = r584173 - r584169;
        double r584175 = 0.91893853320467;
        double r584176 = r584174 + r584175;
        double r584177 = y;
        double r584178 = 0.0007936500793651;
        double r584179 = r584177 + r584178;
        double r584180 = z;
        double r584181 = r584179 * r584180;
        double r584182 = 0.0027777777777778;
        double r584183 = r584181 - r584182;
        double r584184 = r584183 * r584180;
        double r584185 = 0.083333333333333;
        double r584186 = r584184 + r584185;
        double r584187 = r584186 / r584169;
        double r584188 = r584176 + r584187;
        return r584188;
}

double f(double x, double y, double z) {
        double r584189 = x;
        double r584190 = 2.2891311917030867e+63;
        bool r584191 = r584189 <= r584190;
        double r584192 = -r584189;
        double r584193 = cbrt(r584192);
        double r584194 = -1.0;
        double r584195 = cbrt(r584194);
        double r584196 = r584193 * r584195;
        double r584197 = log(r584196);
        double r584198 = 3.0;
        double r584199 = r584198 * r584189;
        double r584200 = 1.5;
        double r584201 = r584199 - r584200;
        double r584202 = r584197 * r584201;
        double r584203 = pow(r584202, r584198);
        double r584204 = pow(r584189, r584198);
        double r584205 = r584203 - r584204;
        double r584206 = r584202 + r584189;
        double r584207 = r584202 * r584206;
        double r584208 = r584189 * r584189;
        double r584209 = r584207 + r584208;
        double r584210 = r584205 / r584209;
        double r584211 = 0.91893853320467;
        double r584212 = r584210 + r584211;
        double r584213 = y;
        double r584214 = 0.0007936500793651;
        double r584215 = r584213 + r584214;
        double r584216 = z;
        double r584217 = r584215 * r584216;
        double r584218 = 0.0027777777777778;
        double r584219 = r584217 - r584218;
        double r584220 = r584219 * r584216;
        double r584221 = 0.083333333333333;
        double r584222 = r584220 + r584221;
        double r584223 = r584222 / r584189;
        double r584224 = r584212 + r584223;
        double r584225 = 0.5;
        double r584226 = r584189 - r584225;
        double r584227 = log(r584189);
        double r584228 = r584226 * r584227;
        double r584229 = r584228 - r584189;
        double r584230 = r584229 + r584211;
        double r584231 = 2.0;
        double r584232 = pow(r584216, r584231);
        double r584233 = r584232 / r584189;
        double r584234 = r584233 * r584215;
        double r584235 = r584216 / r584189;
        double r584236 = r584218 * r584235;
        double r584237 = r584234 - r584236;
        double r584238 = r584230 + r584237;
        double r584239 = r584191 ? r584224 : r584238;
        return r584239;
}

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.8
Target1.2
Herbie4.1
\[\left(\left(\left(x - 0.5\right) \cdot \log x + \left(0.91893853320467001 - x\right)\right) + \frac{0.0833333333333329956}{x}\right) + \frac{z}{x} \cdot \left(z \cdot \left(y + 7.93650079365100015 \cdot 10^{-4}\right) - 0.0027777777777778\right)\]

Derivation

  1. Split input into 2 regimes
  2. if x < 2.2891311917030867e+63

    1. Initial program 0.8

      \[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt0.8

      \[\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.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    4. Applied log-prod0.8

      \[\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.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    5. Applied distribute-lft-in0.8

      \[\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.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    6. Simplified0.8

      \[\leadsto \left(\left(\left(\color{blue}{\left(2 \cdot \log \left(\sqrt[3]{x}\right)\right) \cdot \left(x - 0.5\right)} + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{x}\right)\right) - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    7. Taylor expanded around -inf 64.0

      \[\leadsto \left(\left(\color{blue}{\left(3 \cdot \left(x \cdot \log \left({\left(-1 \cdot x\right)}^{\frac{1}{3}} \cdot \sqrt[3]{-1}\right)\right) - 1.5 \cdot \log \left({\left(-1 \cdot x\right)}^{\frac{1}{3}} \cdot \sqrt[3]{-1}\right)\right)} - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    8. Simplified0.8

      \[\leadsto \left(\left(\color{blue}{\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right)} - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    9. Using strategy rm
    10. Applied flip3--0.8

      \[\leadsto \left(\color{blue}{\frac{{\left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right)\right)}^{3} - {x}^{3}}{\left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right)\right) \cdot \left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right)\right) + \left(x \cdot x + \left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right)\right) \cdot x\right)}} + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    11. Simplified0.8

      \[\leadsto \left(\frac{{\left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right)\right)}^{3} - {x}^{3}}{\color{blue}{\left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right)\right) \cdot \left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right) + x\right) + x \cdot x}} + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]

    if 2.2891311917030867e+63 < x

    1. Initial program 11.2

      \[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\]
    2. Taylor expanded around inf 11.3

      \[\leadsto \left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \color{blue}{\left(\left(7.93650079365100015 \cdot 10^{-4} \cdot \frac{{z}^{2}}{x} + \frac{{z}^{2} \cdot y}{x}\right) - 0.0027777777777778 \cdot \frac{z}{x}\right)}\]
    3. Simplified7.6

      \[\leadsto \left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \color{blue}{\left(\frac{{z}^{2}}{x} \cdot \left(y + 7.93650079365100015 \cdot 10^{-4}\right) - 0.0027777777777778 \cdot \frac{z}{x}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification4.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le 2.2891311917030867 \cdot 10^{63}:\\ \;\;\;\;\left(\frac{{\left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right)\right)}^{3} - {x}^{3}}{\left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right)\right) \cdot \left(\log \left(\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) \cdot \left(3 \cdot x - 1.5\right) + x\right) + x \cdot x} + 0.91893853320467001\right) + \frac{\left(\left(y + 7.93650079365100015 \cdot 10^{-4}\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.0833333333333329956}{x}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467001\right) + \left(\frac{{z}^{2}}{x} \cdot \left(y + 7.93650079365100015 \cdot 10^{-4}\right) - 0.0027777777777778 \cdot \frac{z}{x}\right)\\ \end{array}\]

Reproduce

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