Average Error: 6.0 → 3.1
Time: 8.3s
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 3.766513859273963841353065981247573842567 \cdot 10^{142}:\\ \;\;\;\;\sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.9189385332046700050057097541866824030876} \cdot \sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.9189385332046700050057097541866824030876} + \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) + \frac{1}{x \cdot \left(z \cdot 0.4000000000000064059868520871532382443547 - {z}^{2} \cdot 0.1009522780952416126654114236771420110017\right) + 12.00000000000004796163466380676254630089 \cdot x}\\ \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 3.766513859273963841353065981247573842567 \cdot 10^{142}:\\
\;\;\;\;\sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.9189385332046700050057097541866824030876} \cdot \sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.9189385332046700050057097541866824030876} + \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) + \frac{1}{x \cdot \left(z \cdot 0.4000000000000064059868520871532382443547 - {z}^{2} \cdot 0.1009522780952416126654114236771420110017\right) + 12.00000000000004796163466380676254630089 \cdot x}\\

\end{array}
double f(double x, double y, double z) {
        double r432226 = x;
        double r432227 = 0.5;
        double r432228 = r432226 - r432227;
        double r432229 = log(r432226);
        double r432230 = r432228 * r432229;
        double r432231 = r432230 - r432226;
        double r432232 = 0.91893853320467;
        double r432233 = r432231 + r432232;
        double r432234 = y;
        double r432235 = 0.0007936500793651;
        double r432236 = r432234 + r432235;
        double r432237 = z;
        double r432238 = r432236 * r432237;
        double r432239 = 0.0027777777777778;
        double r432240 = r432238 - r432239;
        double r432241 = r432240 * r432237;
        double r432242 = 0.083333333333333;
        double r432243 = r432241 + r432242;
        double r432244 = r432243 / r432226;
        double r432245 = r432233 + r432244;
        return r432245;
}

double f(double x, double y, double z) {
        double r432246 = x;
        double r432247 = 3.766513859273964e+142;
        bool r432248 = r432246 <= r432247;
        double r432249 = 0.5;
        double r432250 = r432246 - r432249;
        double r432251 = log(r432246);
        double r432252 = r432250 * r432251;
        double r432253 = r432252 - r432246;
        double r432254 = 0.91893853320467;
        double r432255 = r432253 + r432254;
        double r432256 = sqrt(r432255);
        double r432257 = r432256 * r432256;
        double r432258 = y;
        double r432259 = 0.0007936500793651;
        double r432260 = r432258 + r432259;
        double r432261 = z;
        double r432262 = r432260 * r432261;
        double r432263 = 0.0027777777777778;
        double r432264 = r432262 - r432263;
        double r432265 = r432264 * r432261;
        double r432266 = 0.083333333333333;
        double r432267 = r432265 + r432266;
        double r432268 = r432267 / r432246;
        double r432269 = r432257 + r432268;
        double r432270 = cbrt(r432246);
        double r432271 = r432270 * r432270;
        double r432272 = log(r432271);
        double r432273 = r432272 * r432250;
        double r432274 = log(r432270);
        double r432275 = r432274 * r432250;
        double r432276 = r432275 - r432246;
        double r432277 = r432276 + r432254;
        double r432278 = r432273 + r432277;
        double r432279 = 1.0;
        double r432280 = 0.4000000000000064;
        double r432281 = r432261 * r432280;
        double r432282 = 2.0;
        double r432283 = pow(r432261, r432282);
        double r432284 = 0.10095227809524161;
        double r432285 = r432283 * r432284;
        double r432286 = r432281 - r432285;
        double r432287 = r432246 * r432286;
        double r432288 = 12.000000000000048;
        double r432289 = r432288 * r432246;
        double r432290 = r432287 + r432289;
        double r432291 = r432279 / r432290;
        double r432292 = r432278 + r432291;
        double r432293 = r432248 ? r432269 : r432292;
        return r432293;
}

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.1
Herbie3.1
\[\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 < 3.766513859273964e+142

    1. Initial program 1.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. Using strategy rm
    3. Applied add-sqr-sqrt1.9

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

    if 3.766513859273964e+142 < x

    1. Initial program 14.2

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

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

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

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

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

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

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

      \[\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(0.4000000000000064059868520871532382443547 \cdot \left(x \cdot z\right) + 12.00000000000004796163466380676254630089 \cdot x\right) - 0.1009522780952416126654114236771420110017 \cdot \left(x \cdot {z}^{2}\right)}}\]
    11. Simplified5.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 \left(z \cdot 0.4000000000000064059868520871532382443547 - {z}^{2} \cdot 0.1009522780952416126654114236771420110017\right) + 12.00000000000004796163466380676254630089 \cdot x}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification3.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le 3.766513859273963841353065981247573842567 \cdot 10^{142}:\\ \;\;\;\;\sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.9189385332046700050057097541866824030876} \cdot \sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.9189385332046700050057097541866824030876} + \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) + \frac{1}{x \cdot \left(z \cdot 0.4000000000000064059868520871532382443547 - {z}^{2} \cdot 0.1009522780952416126654114236771420110017\right) + 12.00000000000004796163466380676254630089 \cdot x}\\ \end{array}\]

Reproduce

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