Average Error: 5.9 → 0.4
Time: 25.8s
Precision: 64
\[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le 16108315.755668392:\\ \;\;\;\;\sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467} \cdot \sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467} + \frac{0.083333333333333 + \left(z \cdot \left(y + 0.0007936500793651\right) - 0.0027777777777778\right) \cdot z}{x}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(y + 0.0007936500793651\right) \cdot \left(\frac{z}{x} \cdot z\right) - 0.0027777777777778 \cdot \frac{z}{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(\log \left(\sqrt[3]{\sqrt{x}} \cdot \sqrt[3]{\sqrt{x}}\right) \cdot \left(x - 0.5\right) + \left(0.91893853320467 + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right) - x\right)\right)\right)\right)\\ \end{array}\]
\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}
\begin{array}{l}
\mathbf{if}\;x \le 16108315.755668392:\\
\;\;\;\;\sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467} \cdot \sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467} + \frac{0.083333333333333 + \left(z \cdot \left(y + 0.0007936500793651\right) - 0.0027777777777778\right) \cdot z}{x}\\

\mathbf{else}:\\
\;\;\;\;\left(\left(y + 0.0007936500793651\right) \cdot \left(\frac{z}{x} \cdot z\right) - 0.0027777777777778 \cdot \frac{z}{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(\log \left(\sqrt[3]{\sqrt{x}} \cdot \sqrt[3]{\sqrt{x}}\right) \cdot \left(x - 0.5\right) + \left(0.91893853320467 + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right) - x\right)\right)\right)\right)\\

\end{array}
double f(double x, double y, double z) {
        double r22799518 = x;
        double r22799519 = 0.5;
        double r22799520 = r22799518 - r22799519;
        double r22799521 = log(r22799518);
        double r22799522 = r22799520 * r22799521;
        double r22799523 = r22799522 - r22799518;
        double r22799524 = 0.91893853320467;
        double r22799525 = r22799523 + r22799524;
        double r22799526 = y;
        double r22799527 = 0.0007936500793651;
        double r22799528 = r22799526 + r22799527;
        double r22799529 = z;
        double r22799530 = r22799528 * r22799529;
        double r22799531 = 0.0027777777777778;
        double r22799532 = r22799530 - r22799531;
        double r22799533 = r22799532 * r22799529;
        double r22799534 = 0.083333333333333;
        double r22799535 = r22799533 + r22799534;
        double r22799536 = r22799535 / r22799518;
        double r22799537 = r22799525 + r22799536;
        return r22799537;
}

double f(double x, double y, double z) {
        double r22799538 = x;
        double r22799539 = 16108315.755668392;
        bool r22799540 = r22799538 <= r22799539;
        double r22799541 = 0.5;
        double r22799542 = r22799538 - r22799541;
        double r22799543 = log(r22799538);
        double r22799544 = r22799542 * r22799543;
        double r22799545 = r22799544 - r22799538;
        double r22799546 = 0.91893853320467;
        double r22799547 = r22799545 + r22799546;
        double r22799548 = sqrt(r22799547);
        double r22799549 = r22799548 * r22799548;
        double r22799550 = 0.083333333333333;
        double r22799551 = z;
        double r22799552 = y;
        double r22799553 = 0.0007936500793651;
        double r22799554 = r22799552 + r22799553;
        double r22799555 = r22799551 * r22799554;
        double r22799556 = 0.0027777777777778;
        double r22799557 = r22799555 - r22799556;
        double r22799558 = r22799557 * r22799551;
        double r22799559 = r22799550 + r22799558;
        double r22799560 = r22799559 / r22799538;
        double r22799561 = r22799549 + r22799560;
        double r22799562 = r22799551 / r22799538;
        double r22799563 = r22799562 * r22799551;
        double r22799564 = r22799554 * r22799563;
        double r22799565 = r22799556 * r22799562;
        double r22799566 = r22799564 - r22799565;
        double r22799567 = sqrt(r22799538);
        double r22799568 = log(r22799567);
        double r22799569 = r22799542 * r22799568;
        double r22799570 = cbrt(r22799567);
        double r22799571 = r22799570 * r22799570;
        double r22799572 = log(r22799571);
        double r22799573 = r22799572 * r22799542;
        double r22799574 = log(r22799570);
        double r22799575 = r22799542 * r22799574;
        double r22799576 = r22799575 - r22799538;
        double r22799577 = r22799546 + r22799576;
        double r22799578 = r22799573 + r22799577;
        double r22799579 = r22799569 + r22799578;
        double r22799580 = r22799566 + r22799579;
        double r22799581 = r22799540 ? r22799561 : r22799580;
        return r22799581;
}

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.1
Herbie0.4
\[\left(\left(\left(x - 0.5\right) \cdot \log x + \left(0.91893853320467 - x\right)\right) + \frac{0.083333333333333}{x}\right) + \frac{z}{x} \cdot \left(z \cdot \left(y + 0.0007936500793651\right) - 0.0027777777777778\right)\]

Derivation

  1. Split input into 2 regimes
  2. if x < 16108315.755668392

    1. Initial program 0.1

      \[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt0.2

      \[\leadsto \color{blue}{\sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467} \cdot \sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467}} + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]

    if 16108315.755668392 < x

    1. Initial program 10.1

      \[\left(\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt10.1

      \[\leadsto \left(\left(\left(x - 0.5\right) \cdot \log \color{blue}{\left(\sqrt{x} \cdot \sqrt{x}\right)} - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    4. Applied log-prod10.1

      \[\leadsto \left(\left(\left(x - 0.5\right) \cdot \color{blue}{\left(\log \left(\sqrt{x}\right) + \log \left(\sqrt{x}\right)\right)} - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    5. Applied distribute-lft-in10.1

      \[\leadsto \left(\left(\color{blue}{\left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right)\right)} - x\right) + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    6. Applied associate--l+10.2

      \[\leadsto \left(\color{blue}{\left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) - x\right)\right)} + 0.91893853320467\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    7. Applied associate-+l+10.2

      \[\leadsto \color{blue}{\left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) - x\right) + 0.91893853320467\right)\right)} + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    8. Using strategy rm
    9. Applied add-cube-cbrt10.2

      \[\leadsto \left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(\left(\left(x - 0.5\right) \cdot \log \color{blue}{\left(\left(\sqrt[3]{\sqrt{x}} \cdot \sqrt[3]{\sqrt{x}}\right) \cdot \sqrt[3]{\sqrt{x}}\right)} - x\right) + 0.91893853320467\right)\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    10. Applied log-prod10.2

      \[\leadsto \left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(\left(\left(x - 0.5\right) \cdot \color{blue}{\left(\log \left(\sqrt[3]{\sqrt{x}} \cdot \sqrt[3]{\sqrt{x}}\right) + \log \left(\sqrt[3]{\sqrt{x}}\right)\right)} - x\right) + 0.91893853320467\right)\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    11. Applied distribute-lft-in10.1

      \[\leadsto \left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(\left(\color{blue}{\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}} \cdot \sqrt[3]{\sqrt{x}}\right) + \left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right)\right)} - x\right) + 0.91893853320467\right)\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    12. Applied associate--l+10.1

      \[\leadsto \left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(\color{blue}{\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}} \cdot \sqrt[3]{\sqrt{x}}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right) - x\right)\right)} + 0.91893853320467\right)\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    13. Applied associate-+l+10.1

      \[\leadsto \left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \color{blue}{\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}} \cdot \sqrt[3]{\sqrt{x}}\right) + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right) - x\right) + 0.91893853320467\right)\right)}\right) + \frac{\left(\left(y + 0.0007936500793651\right) \cdot z - 0.0027777777777778\right) \cdot z + 0.083333333333333}{x}\]
    14. Taylor expanded around inf 10.2

      \[\leadsto \left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}} \cdot \sqrt[3]{\sqrt{x}}\right) + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right) - x\right) + 0.91893853320467\right)\right)\right) + \color{blue}{\left(\left(0.0007936500793651 \cdot \frac{{z}^{2}}{x} + \frac{{z}^{2} \cdot y}{x}\right) - 0.0027777777777778 \cdot \frac{z}{x}\right)}\]
    15. Simplified0.4

      \[\leadsto \left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}} \cdot \sqrt[3]{\sqrt{x}}\right) + \left(\left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right) - x\right) + 0.91893853320467\right)\right)\right) + \color{blue}{\left(\left(\frac{z}{x} \cdot z\right) \cdot \left(0.0007936500793651 + y\right) - \frac{z}{x} \cdot 0.0027777777777778\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le 16108315.755668392:\\ \;\;\;\;\sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467} \cdot \sqrt{\left(\left(x - 0.5\right) \cdot \log x - x\right) + 0.91893853320467} + \frac{0.083333333333333 + \left(z \cdot \left(y + 0.0007936500793651\right) - 0.0027777777777778\right) \cdot z}{x}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(y + 0.0007936500793651\right) \cdot \left(\frac{z}{x} \cdot z\right) - 0.0027777777777778 \cdot \frac{z}{x}\right) + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt{x}\right) + \left(\log \left(\sqrt[3]{\sqrt{x}} \cdot \sqrt[3]{\sqrt{x}}\right) \cdot \left(x - 0.5\right) + \left(0.91893853320467 + \left(\left(x - 0.5\right) \cdot \log \left(\sqrt[3]{\sqrt{x}}\right) - x\right)\right)\right)\right)\\ \end{array}\]

Reproduce

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