Average Error: 6.3 → 2.0
Time: 24.6s
Precision: 64
\[x + \frac{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}{y}\]
\[\begin{array}{l} \mathbf{if}\;z \le 2798330066458407314915328 \lor \neg \left(z \le 4.76689686693070055018888846744602636955 \cdot 10^{118}\right):\\ \;\;\;\;x + \frac{e^{y \cdot \left(2 \cdot \log \left(\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right) + \log \left(\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right)\right)}}{y}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{-z}}{y} + x\\ \end{array}\]
x + \frac{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}{y}
\begin{array}{l}
\mathbf{if}\;z \le 2798330066458407314915328 \lor \neg \left(z \le 4.76689686693070055018888846744602636955 \cdot 10^{118}\right):\\
\;\;\;\;x + \frac{e^{y \cdot \left(2 \cdot \log \left(\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right) + \log \left(\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right)\right)}}{y}\\

\mathbf{else}:\\
\;\;\;\;\frac{e^{-z}}{y} + x\\

\end{array}
double f(double x, double y, double z) {
        double r249129 = x;
        double r249130 = y;
        double r249131 = z;
        double r249132 = r249131 + r249130;
        double r249133 = r249130 / r249132;
        double r249134 = log(r249133);
        double r249135 = r249130 * r249134;
        double r249136 = exp(r249135);
        double r249137 = r249136 / r249130;
        double r249138 = r249129 + r249137;
        return r249138;
}

double f(double x, double y, double z) {
        double r249139 = z;
        double r249140 = 2.7983300664584073e+24;
        bool r249141 = r249139 <= r249140;
        double r249142 = 4.7668968669307006e+118;
        bool r249143 = r249139 <= r249142;
        double r249144 = !r249143;
        bool r249145 = r249141 || r249144;
        double r249146 = x;
        double r249147 = y;
        double r249148 = 2.0;
        double r249149 = cbrt(r249147);
        double r249150 = r249139 + r249147;
        double r249151 = cbrt(r249150);
        double r249152 = r249149 / r249151;
        double r249153 = log(r249152);
        double r249154 = r249148 * r249153;
        double r249155 = r249154 + r249153;
        double r249156 = r249147 * r249155;
        double r249157 = exp(r249156);
        double r249158 = r249157 / r249147;
        double r249159 = r249146 + r249158;
        double r249160 = -r249139;
        double r249161 = exp(r249160);
        double r249162 = r249161 / r249147;
        double r249163 = r249162 + r249146;
        double r249164 = r249145 ? r249159 : r249163;
        return r249164;
}

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.3
Target1.1
Herbie2.0
\[\begin{array}{l} \mathbf{if}\;\frac{y}{z + y} \lt 7.115415759790762719541517221498726780517 \cdot 10^{-315}:\\ \;\;\;\;x + \frac{e^{\frac{-1}{z}}}{y}\\ \mathbf{else}:\\ \;\;\;\;x + \frac{e^{\log \left({\left(\frac{y}{y + z}\right)}^{y}\right)}}{y}\\ \end{array}\]

Derivation

  1. Split input into 2 regimes
  2. if z < 2.7983300664584073e+24 or 4.7668968669307006e+118 < z

    1. Initial program 5.9

      \[x + \frac{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}{y}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt19.3

      \[\leadsto x + \frac{e^{y \cdot \log \left(\frac{y}{\color{blue}{\left(\sqrt[3]{z + y} \cdot \sqrt[3]{z + y}\right) \cdot \sqrt[3]{z + y}}}\right)}}{y}\]
    4. Applied add-cube-cbrt5.9

      \[\leadsto x + \frac{e^{y \cdot \log \left(\frac{\color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}}}{\left(\sqrt[3]{z + y} \cdot \sqrt[3]{z + y}\right) \cdot \sqrt[3]{z + y}}\right)}}{y}\]
    5. Applied times-frac5.9

      \[\leadsto x + \frac{e^{y \cdot \log \color{blue}{\left(\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{z + y} \cdot \sqrt[3]{z + y}} \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right)}}}{y}\]
    6. Applied log-prod1.8

      \[\leadsto x + \frac{e^{y \cdot \color{blue}{\left(\log \left(\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{z + y} \cdot \sqrt[3]{z + y}}\right) + \log \left(\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right)\right)}}}{y}\]
    7. Simplified0.7

      \[\leadsto x + \frac{e^{y \cdot \left(\color{blue}{2 \cdot \log \left(\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right)} + \log \left(\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right)\right)}}{y}\]

    if 2.7983300664584073e+24 < z < 4.7668968669307006e+118

    1. Initial program 10.9

      \[x + \frac{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}{y}\]
    2. Taylor expanded around inf 18.4

      \[\leadsto \color{blue}{x + \frac{e^{-1 \cdot z}}{y}}\]
    3. Simplified18.4

      \[\leadsto \color{blue}{\frac{e^{-z}}{y} + x}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le 2798330066458407314915328 \lor \neg \left(z \le 4.76689686693070055018888846744602636955 \cdot 10^{118}\right):\\ \;\;\;\;x + \frac{e^{y \cdot \left(2 \cdot \log \left(\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right) + \log \left(\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right)\right)}}{y}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{-z}}{y} + x\\ \end{array}\]

Reproduce

herbie shell --seed 2019323 +o rules:numerics
(FPCore (x y z)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, G"
  :precision binary64

  :herbie-target
  (if (< (/ y (+ z y)) 7.1154157597908e-315) (+ x (/ (exp (/ -1 z)) y)) (+ x (/ (exp (log (pow (/ y (+ y z)) y))) y)))

  (+ x (/ (exp (* y (log (/ y (+ z y))))) y)))