Average Error: 5.9 → 1.7
Time: 5.5s
Precision: 64
\[x + \frac{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}{y}\]
\[\begin{array}{l} \mathbf{if}\;y \le 3.60262967360523412 \cdot 10^{-171}:\\ \;\;\;\;x + \frac{e^{y \cdot 0}}{y}\\ \mathbf{else}:\\ \;\;\;\;x + \left|{\left(\frac{y}{z + y}\right)}^{\left(\frac{y}{2}\right)}\right| \cdot \frac{\sqrt{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}}{y}\\ \end{array}\]
x + \frac{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}{y}
\begin{array}{l}
\mathbf{if}\;y \le 3.60262967360523412 \cdot 10^{-171}:\\
\;\;\;\;x + \frac{e^{y \cdot 0}}{y}\\

\mathbf{else}:\\
\;\;\;\;x + \left|{\left(\frac{y}{z + y}\right)}^{\left(\frac{y}{2}\right)}\right| \cdot \frac{\sqrt{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}}{y}\\

\end{array}
double f(double x, double y, double z) {
        double r456207 = x;
        double r456208 = y;
        double r456209 = z;
        double r456210 = r456209 + r456208;
        double r456211 = r456208 / r456210;
        double r456212 = log(r456211);
        double r456213 = r456208 * r456212;
        double r456214 = exp(r456213);
        double r456215 = r456214 / r456208;
        double r456216 = r456207 + r456215;
        return r456216;
}

double f(double x, double y, double z) {
        double r456217 = y;
        double r456218 = 3.602629673605234e-171;
        bool r456219 = r456217 <= r456218;
        double r456220 = x;
        double r456221 = 0.0;
        double r456222 = r456217 * r456221;
        double r456223 = exp(r456222);
        double r456224 = r456223 / r456217;
        double r456225 = r456220 + r456224;
        double r456226 = z;
        double r456227 = r456226 + r456217;
        double r456228 = r456217 / r456227;
        double r456229 = 2.0;
        double r456230 = r456217 / r456229;
        double r456231 = pow(r456228, r456230);
        double r456232 = fabs(r456231);
        double r456233 = log(r456228);
        double r456234 = r456217 * r456233;
        double r456235 = exp(r456234);
        double r456236 = sqrt(r456235);
        double r456237 = r456236 / r456217;
        double r456238 = r456232 * r456237;
        double r456239 = r456220 + r456238;
        double r456240 = r456219 ? r456225 : r456239;
        return r456240;
}

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.0
Herbie1.7
\[\begin{array}{l} \mathbf{if}\;\frac{y}{z + y} \lt 7.1154157598 \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 y < 3.602629673605234e-171

    1. Initial program 8.6

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

      \[\leadsto x + \frac{e^{y \cdot \color{blue}{0}}}{y}\]

    if 3.602629673605234e-171 < y

    1. Initial program 2.3

      \[x + \frac{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}{y}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity2.3

      \[\leadsto x + \frac{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}{\color{blue}{1 \cdot y}}\]
    4. Applied add-sqr-sqrt2.3

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

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

      \[\leadsto x + \color{blue}{\left|{\left(\frac{y}{z + y}\right)}^{\left(\frac{y}{2}\right)}\right|} \cdot \frac{\sqrt{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}}{y}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le 3.60262967360523412 \cdot 10^{-171}:\\ \;\;\;\;x + \frac{e^{y \cdot 0}}{y}\\ \mathbf{else}:\\ \;\;\;\;x + \left|{\left(\frac{y}{z + y}\right)}^{\left(\frac{y}{2}\right)}\right| \cdot \frac{\sqrt{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}}{y}\\ \end{array}\]

Reproduce

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