Average Error: 25.6 → 14.3
Time: 8.5s
Precision: 64
\[x - \frac{\log \left(\left(1 - y\right) + y \cdot e^{z}\right)}{t}\]
\[\begin{array}{l} \mathbf{if}\;y \le -1.152892260263348607747194563956545567434 \cdot 10^{210}:\\ \;\;\;\;x - \frac{\log \left(1 + \left({z}^{2} \cdot \left(\frac{1}{2} + z \cdot \frac{1}{6}\right) + z\right) \cdot y\right)}{t}\\ \mathbf{elif}\;y \le -2.469031949062149442410480885508201558103 \cdot 10^{131}:\\ \;\;\;\;x - \left(\frac{\log \left(1 - e^{z}\right)}{t} - \left(1 \cdot \frac{1}{\left(1 - e^{z}\right) \cdot \left(y \cdot t\right)} + \frac{\log \left(\frac{-1}{y}\right)}{t}\right)\right)\\ \mathbf{elif}\;y \le -1.297671033110611467296589409782087111976 \cdot 10^{105}:\\ \;\;\;\;x - \frac{1}{\frac{t}{\log 1 + y \cdot \left(0.5 \cdot {z}^{2} + 1 \cdot z\right)}}\\ \mathbf{elif}\;y \le -6.569041928042183231455829851483351473071 \cdot 10^{103}:\\ \;\;\;\;x - \left(\frac{\log \left(1 - e^{z}\right)}{t} - \left(1 \cdot \frac{1}{\left(1 - e^{z}\right) \cdot \left(y \cdot t\right)} + \frac{\log \left(\frac{-1}{y}\right)}{t}\right)\right)\\ \mathbf{elif}\;y \le 2.445855841223627624785485148522430782767 \cdot 10^{-124}:\\ \;\;\;\;x - \left(\frac{\log \left({1}^{3} + {\left(\left(e^{z} - 1\right) \cdot y\right)}^{3}\right)}{t} - \frac{\log \left(1 \cdot 1 + \left(\left(\left(e^{z} - 1\right) \cdot y\right) \cdot \left(\left(e^{z} - 1\right) \cdot y\right) - 1 \cdot \left(\left(e^{z} - 1\right) \cdot y\right)\right)\right)}{t}\right)\\ \mathbf{elif}\;y \le 1.449609952745778752399845107288990046227 \cdot 10^{165}:\\ \;\;\;\;x - \left(1 \cdot \frac{z \cdot y}{t} + \frac{\log 1}{t}\right)\\ \mathbf{else}:\\ \;\;\;\;x - \frac{\log \left(1 + \left({z}^{2} \cdot \left(\frac{1}{2} + z \cdot \frac{1}{6}\right) + z\right) \cdot y\right)}{t}\\ \end{array}\]
x - \frac{\log \left(\left(1 - y\right) + y \cdot e^{z}\right)}{t}
\begin{array}{l}
\mathbf{if}\;y \le -1.152892260263348607747194563956545567434 \cdot 10^{210}:\\
\;\;\;\;x - \frac{\log \left(1 + \left({z}^{2} \cdot \left(\frac{1}{2} + z \cdot \frac{1}{6}\right) + z\right) \cdot y\right)}{t}\\

\mathbf{elif}\;y \le -2.469031949062149442410480885508201558103 \cdot 10^{131}:\\
\;\;\;\;x - \left(\frac{\log \left(1 - e^{z}\right)}{t} - \left(1 \cdot \frac{1}{\left(1 - e^{z}\right) \cdot \left(y \cdot t\right)} + \frac{\log \left(\frac{-1}{y}\right)}{t}\right)\right)\\

\mathbf{elif}\;y \le -1.297671033110611467296589409782087111976 \cdot 10^{105}:\\
\;\;\;\;x - \frac{1}{\frac{t}{\log 1 + y \cdot \left(0.5 \cdot {z}^{2} + 1 \cdot z\right)}}\\

\mathbf{elif}\;y \le -6.569041928042183231455829851483351473071 \cdot 10^{103}:\\
\;\;\;\;x - \left(\frac{\log \left(1 - e^{z}\right)}{t} - \left(1 \cdot \frac{1}{\left(1 - e^{z}\right) \cdot \left(y \cdot t\right)} + \frac{\log \left(\frac{-1}{y}\right)}{t}\right)\right)\\

\mathbf{elif}\;y \le 2.445855841223627624785485148522430782767 \cdot 10^{-124}:\\
\;\;\;\;x - \left(\frac{\log \left({1}^{3} + {\left(\left(e^{z} - 1\right) \cdot y\right)}^{3}\right)}{t} - \frac{\log \left(1 \cdot 1 + \left(\left(\left(e^{z} - 1\right) \cdot y\right) \cdot \left(\left(e^{z} - 1\right) \cdot y\right) - 1 \cdot \left(\left(e^{z} - 1\right) \cdot y\right)\right)\right)}{t}\right)\\

\mathbf{elif}\;y \le 1.449609952745778752399845107288990046227 \cdot 10^{165}:\\
\;\;\;\;x - \left(1 \cdot \frac{z \cdot y}{t} + \frac{\log 1}{t}\right)\\

\mathbf{else}:\\
\;\;\;\;x - \frac{\log \left(1 + \left({z}^{2} \cdot \left(\frac{1}{2} + z \cdot \frac{1}{6}\right) + z\right) \cdot y\right)}{t}\\

\end{array}
double f(double x, double y, double z, double t) {
        double r302026 = x;
        double r302027 = 1.0;
        double r302028 = y;
        double r302029 = r302027 - r302028;
        double r302030 = z;
        double r302031 = exp(r302030);
        double r302032 = r302028 * r302031;
        double r302033 = r302029 + r302032;
        double r302034 = log(r302033);
        double r302035 = t;
        double r302036 = r302034 / r302035;
        double r302037 = r302026 - r302036;
        return r302037;
}

double f(double x, double y, double z, double t) {
        double r302038 = y;
        double r302039 = -1.1528922602633486e+210;
        bool r302040 = r302038 <= r302039;
        double r302041 = x;
        double r302042 = 1.0;
        double r302043 = z;
        double r302044 = 2.0;
        double r302045 = pow(r302043, r302044);
        double r302046 = 0.5;
        double r302047 = 0.16666666666666666;
        double r302048 = r302043 * r302047;
        double r302049 = r302046 + r302048;
        double r302050 = r302045 * r302049;
        double r302051 = r302050 + r302043;
        double r302052 = r302051 * r302038;
        double r302053 = r302042 + r302052;
        double r302054 = log(r302053);
        double r302055 = t;
        double r302056 = r302054 / r302055;
        double r302057 = r302041 - r302056;
        double r302058 = -2.4690319490621494e+131;
        bool r302059 = r302038 <= r302058;
        double r302060 = 1.0;
        double r302061 = exp(r302043);
        double r302062 = r302060 - r302061;
        double r302063 = log(r302062);
        double r302064 = r302063 / r302055;
        double r302065 = r302038 * r302055;
        double r302066 = r302062 * r302065;
        double r302067 = r302060 / r302066;
        double r302068 = r302042 * r302067;
        double r302069 = -1.0;
        double r302070 = r302069 / r302038;
        double r302071 = log(r302070);
        double r302072 = r302071 / r302055;
        double r302073 = r302068 + r302072;
        double r302074 = r302064 - r302073;
        double r302075 = r302041 - r302074;
        double r302076 = -1.2976710331106115e+105;
        bool r302077 = r302038 <= r302076;
        double r302078 = log(r302042);
        double r302079 = 0.5;
        double r302080 = r302079 * r302045;
        double r302081 = r302042 * r302043;
        double r302082 = r302080 + r302081;
        double r302083 = r302038 * r302082;
        double r302084 = r302078 + r302083;
        double r302085 = r302055 / r302084;
        double r302086 = r302060 / r302085;
        double r302087 = r302041 - r302086;
        double r302088 = -6.569041928042183e+103;
        bool r302089 = r302038 <= r302088;
        double r302090 = 2.4458558412236276e-124;
        bool r302091 = r302038 <= r302090;
        double r302092 = 3.0;
        double r302093 = pow(r302042, r302092);
        double r302094 = r302061 - r302060;
        double r302095 = r302094 * r302038;
        double r302096 = pow(r302095, r302092);
        double r302097 = r302093 + r302096;
        double r302098 = log(r302097);
        double r302099 = r302098 / r302055;
        double r302100 = r302042 * r302042;
        double r302101 = r302095 * r302095;
        double r302102 = r302042 * r302095;
        double r302103 = r302101 - r302102;
        double r302104 = r302100 + r302103;
        double r302105 = log(r302104);
        double r302106 = r302105 / r302055;
        double r302107 = r302099 - r302106;
        double r302108 = r302041 - r302107;
        double r302109 = 1.4496099527457788e+165;
        bool r302110 = r302038 <= r302109;
        double r302111 = r302043 * r302038;
        double r302112 = r302111 / r302055;
        double r302113 = r302042 * r302112;
        double r302114 = r302078 / r302055;
        double r302115 = r302113 + r302114;
        double r302116 = r302041 - r302115;
        double r302117 = r302110 ? r302116 : r302057;
        double r302118 = r302091 ? r302108 : r302117;
        double r302119 = r302089 ? r302075 : r302118;
        double r302120 = r302077 ? r302087 : r302119;
        double r302121 = r302059 ? r302075 : r302120;
        double r302122 = r302040 ? r302057 : r302121;
        return r302122;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original25.6
Target16.0
Herbie14.3
\[\begin{array}{l} \mathbf{if}\;z \lt -2.887462308820794658905265984545350618896 \cdot 10^{119}:\\ \;\;\;\;\left(x - \frac{\frac{-0.5}{y \cdot t}}{z \cdot z}\right) - \frac{-0.5}{y \cdot t} \cdot \frac{\frac{2}{z}}{z \cdot z}\\ \mathbf{else}:\\ \;\;\;\;x - \frac{\log \left(1 + z \cdot y\right)}{t}\\ \end{array}\]

Derivation

  1. Split input into 5 regimes
  2. if y < -1.1528922602633486e+210 or 1.4496099527457788e+165 < y

    1. Initial program 46.7

      \[x - \frac{\log \left(\left(1 - y\right) + y \cdot e^{z}\right)}{t}\]
    2. Using strategy rm
    3. Applied sub-neg46.7

      \[\leadsto x - \frac{\log \left(\color{blue}{\left(1 + \left(-y\right)\right)} + y \cdot e^{z}\right)}{t}\]
    4. Applied associate-+l+21.4

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

      \[\leadsto x - \frac{\log \left(1 + \color{blue}{\left(e^{z} - 1\right) \cdot y}\right)}{t}\]
    6. Taylor expanded around 0 20.7

      \[\leadsto x - \frac{\log \left(1 + \color{blue}{\left(z + \left(\frac{1}{6} \cdot {z}^{3} + \frac{1}{2} \cdot {z}^{2}\right)\right)} \cdot y\right)}{t}\]
    7. Simplified20.7

      \[\leadsto x - \frac{\log \left(1 + \color{blue}{\left({z}^{2} \cdot \left(\frac{1}{2} + z \cdot \frac{1}{6}\right) + z\right)} \cdot y\right)}{t}\]

    if -1.1528922602633486e+210 < y < -2.4690319490621494e+131 or -1.2976710331106115e+105 < y < -6.569041928042183e+103

    1. Initial program 38.0

      \[x - \frac{\log \left(\left(1 - y\right) + y \cdot e^{z}\right)}{t}\]
    2. Using strategy rm
    3. Applied sub-neg38.0

      \[\leadsto x - \frac{\log \left(\color{blue}{\left(1 + \left(-y\right)\right)} + y \cdot e^{z}\right)}{t}\]
    4. Applied associate-+l+17.9

      \[\leadsto x - \frac{\log \color{blue}{\left(1 + \left(\left(-y\right) + y \cdot e^{z}\right)\right)}}{t}\]
    5. Simplified17.9

      \[\leadsto x - \frac{\log \left(1 + \color{blue}{\left(e^{z} - 1\right) \cdot y}\right)}{t}\]
    6. Taylor expanded around -inf 38.0

      \[\leadsto x - \color{blue}{\left(\frac{\log \left(1 - e^{z}\right)}{t} - \left(1 \cdot \frac{1}{\left(1 - e^{z}\right) \cdot \left(y \cdot t\right)} + \frac{\log \left(\frac{-1}{y}\right)}{t}\right)\right)}\]

    if -2.4690319490621494e+131 < y < -1.2976710331106115e+105

    1. Initial program 41.8

      \[x - \frac{\log \left(\left(1 - y\right) + y \cdot e^{z}\right)}{t}\]
    2. Taylor expanded around 0 25.5

      \[\leadsto x - \frac{\color{blue}{0.5 \cdot \left({z}^{2} \cdot y\right) + \left(1 \cdot \left(z \cdot y\right) + \log 1\right)}}{t}\]
    3. Simplified25.5

      \[\leadsto x - \frac{\color{blue}{\log 1 + y \cdot \left(0.5 \cdot {z}^{2} + 1 \cdot z\right)}}{t}\]
    4. Using strategy rm
    5. Applied clear-num25.5

      \[\leadsto x - \color{blue}{\frac{1}{\frac{t}{\log 1 + y \cdot \left(0.5 \cdot {z}^{2} + 1 \cdot z\right)}}}\]

    if -6.569041928042183e+103 < y < 2.4458558412236276e-124

    1. Initial program 15.3

      \[x - \frac{\log \left(\left(1 - y\right) + y \cdot e^{z}\right)}{t}\]
    2. Using strategy rm
    3. Applied sub-neg15.3

      \[\leadsto x - \frac{\log \left(\color{blue}{\left(1 + \left(-y\right)\right)} + y \cdot e^{z}\right)}{t}\]
    4. Applied associate-+l+11.0

      \[\leadsto x - \frac{\log \color{blue}{\left(1 + \left(\left(-y\right) + y \cdot e^{z}\right)\right)}}{t}\]
    5. Simplified11.0

      \[\leadsto x - \frac{\log \left(1 + \color{blue}{\left(e^{z} - 1\right) \cdot y}\right)}{t}\]
    6. Using strategy rm
    7. Applied flip3-+11.1

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

      \[\leadsto x - \frac{\color{blue}{\log \left({1}^{3} + {\left(\left(e^{z} - 1\right) \cdot y\right)}^{3}\right) - \log \left(1 \cdot 1 + \left(\left(\left(e^{z} - 1\right) \cdot y\right) \cdot \left(\left(e^{z} - 1\right) \cdot y\right) - 1 \cdot \left(\left(e^{z} - 1\right) \cdot y\right)\right)\right)}}{t}\]
    9. Applied div-sub11.1

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

    if 2.4458558412236276e-124 < y < 1.4496099527457788e+165

    1. Initial program 34.9

      \[x - \frac{\log \left(\left(1 - y\right) + y \cdot e^{z}\right)}{t}\]
    2. Taylor expanded around 0 13.0

      \[\leadsto x - \frac{\color{blue}{0.5 \cdot \left({z}^{2} \cdot y\right) + \left(1 \cdot \left(z \cdot y\right) + \log 1\right)}}{t}\]
    3. Simplified13.0

      \[\leadsto x - \frac{\color{blue}{\log 1 + y \cdot \left(0.5 \cdot {z}^{2} + 1 \cdot z\right)}}{t}\]
    4. Taylor expanded around 0 10.9

      \[\leadsto \color{blue}{x - \left(1 \cdot \frac{z \cdot y}{t} + \frac{\log 1}{t}\right)}\]
  3. Recombined 5 regimes into one program.
  4. Final simplification14.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le -1.152892260263348607747194563956545567434 \cdot 10^{210}:\\ \;\;\;\;x - \frac{\log \left(1 + \left({z}^{2} \cdot \left(\frac{1}{2} + z \cdot \frac{1}{6}\right) + z\right) \cdot y\right)}{t}\\ \mathbf{elif}\;y \le -2.469031949062149442410480885508201558103 \cdot 10^{131}:\\ \;\;\;\;x - \left(\frac{\log \left(1 - e^{z}\right)}{t} - \left(1 \cdot \frac{1}{\left(1 - e^{z}\right) \cdot \left(y \cdot t\right)} + \frac{\log \left(\frac{-1}{y}\right)}{t}\right)\right)\\ \mathbf{elif}\;y \le -1.297671033110611467296589409782087111976 \cdot 10^{105}:\\ \;\;\;\;x - \frac{1}{\frac{t}{\log 1 + y \cdot \left(0.5 \cdot {z}^{2} + 1 \cdot z\right)}}\\ \mathbf{elif}\;y \le -6.569041928042183231455829851483351473071 \cdot 10^{103}:\\ \;\;\;\;x - \left(\frac{\log \left(1 - e^{z}\right)}{t} - \left(1 \cdot \frac{1}{\left(1 - e^{z}\right) \cdot \left(y \cdot t\right)} + \frac{\log \left(\frac{-1}{y}\right)}{t}\right)\right)\\ \mathbf{elif}\;y \le 2.445855841223627624785485148522430782767 \cdot 10^{-124}:\\ \;\;\;\;x - \left(\frac{\log \left({1}^{3} + {\left(\left(e^{z} - 1\right) \cdot y\right)}^{3}\right)}{t} - \frac{\log \left(1 \cdot 1 + \left(\left(\left(e^{z} - 1\right) \cdot y\right) \cdot \left(\left(e^{z} - 1\right) \cdot y\right) - 1 \cdot \left(\left(e^{z} - 1\right) \cdot y\right)\right)\right)}{t}\right)\\ \mathbf{elif}\;y \le 1.449609952745778752399845107288990046227 \cdot 10^{165}:\\ \;\;\;\;x - \left(1 \cdot \frac{z \cdot y}{t} + \frac{\log 1}{t}\right)\\ \mathbf{else}:\\ \;\;\;\;x - \frac{\log \left(1 + \left({z}^{2} \cdot \left(\frac{1}{2} + z \cdot \frac{1}{6}\right) + z\right) \cdot y\right)}{t}\\ \end{array}\]

Reproduce

herbie shell --seed 2020001 
(FPCore (x y z t)
  :name "System.Random.MWC.Distributions:truncatedExp from mwc-random-0.13.3.2"
  :precision binary64

  :herbie-target
  (if (< z -2.8874623088207947e+119) (- (- x (/ (/ (- 0.5) (* y t)) (* z z))) (* (/ (- 0.5) (* y t)) (/ (/ 2 z) (* z z)))) (- x (/ (log (+ 1 (* z y))) t)))

  (- x (/ (log (+ (- 1 y) (* y (exp z)))) t)))