Average Error: 2.0 → 2.4
Time: 14.5s
Precision: 64
\[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
\[\begin{array}{l} \mathbf{if}\;b \le -4.56357796438428046 \cdot 10^{-228} \lor \neg \left(b \le 1.2486298280538037 \cdot 10^{-238}\right):\\ \;\;\;\;\frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}\\ \mathbf{else}:\\ \;\;\;\;x \cdot \left(\frac{{\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt{a}}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b}} \cdot \frac{\frac{{\left(\frac{\sqrt[3]{1}}{\sqrt{a}}\right)}^{1}}{{\left(\frac{1}{z}\right)}^{y}}}{y}\right)\\ \end{array}\]
\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}
\begin{array}{l}
\mathbf{if}\;b \le -4.56357796438428046 \cdot 10^{-228} \lor \neg \left(b \le 1.2486298280538037 \cdot 10^{-238}\right):\\
\;\;\;\;\frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}\\

\mathbf{else}:\\
\;\;\;\;x \cdot \left(\frac{{\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt{a}}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b}} \cdot \frac{\frac{{\left(\frac{\sqrt[3]{1}}{\sqrt{a}}\right)}^{1}}{{\left(\frac{1}{z}\right)}^{y}}}{y}\right)\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r551294 = x;
        double r551295 = y;
        double r551296 = z;
        double r551297 = log(r551296);
        double r551298 = r551295 * r551297;
        double r551299 = t;
        double r551300 = 1.0;
        double r551301 = r551299 - r551300;
        double r551302 = a;
        double r551303 = log(r551302);
        double r551304 = r551301 * r551303;
        double r551305 = r551298 + r551304;
        double r551306 = b;
        double r551307 = r551305 - r551306;
        double r551308 = exp(r551307);
        double r551309 = r551294 * r551308;
        double r551310 = r551309 / r551295;
        return r551310;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r551311 = b;
        double r551312 = -4.5635779643842805e-228;
        bool r551313 = r551311 <= r551312;
        double r551314 = 1.2486298280538037e-238;
        bool r551315 = r551311 <= r551314;
        double r551316 = !r551315;
        bool r551317 = r551313 || r551316;
        double r551318 = x;
        double r551319 = 1.0;
        double r551320 = a;
        double r551321 = r551319 / r551320;
        double r551322 = 1.0;
        double r551323 = pow(r551321, r551322);
        double r551324 = y;
        double r551325 = z;
        double r551326 = r551319 / r551325;
        double r551327 = log(r551326);
        double r551328 = r551324 * r551327;
        double r551329 = log(r551321);
        double r551330 = t;
        double r551331 = r551329 * r551330;
        double r551332 = r551331 + r551311;
        double r551333 = r551328 + r551332;
        double r551334 = exp(r551333);
        double r551335 = r551323 / r551334;
        double r551336 = r551318 * r551335;
        double r551337 = r551336 / r551324;
        double r551338 = cbrt(r551319);
        double r551339 = r551338 * r551338;
        double r551340 = sqrt(r551320);
        double r551341 = r551339 / r551340;
        double r551342 = pow(r551341, r551322);
        double r551343 = exp(r551332);
        double r551344 = r551342 / r551343;
        double r551345 = r551338 / r551340;
        double r551346 = pow(r551345, r551322);
        double r551347 = pow(r551326, r551324);
        double r551348 = r551346 / r551347;
        double r551349 = r551348 / r551324;
        double r551350 = r551344 * r551349;
        double r551351 = r551318 * r551350;
        double r551352 = r551317 ? r551337 : r551351;
        return r551352;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original2.0
Target11.2
Herbie2.4
\[\begin{array}{l} \mathbf{if}\;t \lt -0.88458485041274715:\\ \;\;\;\;\frac{x \cdot \frac{{a}^{\left(t - 1\right)}}{y}}{\left(b + 1\right) - y \cdot \log z}\\ \mathbf{elif}\;t \lt 852031.22883740731:\\ \;\;\;\;\frac{\frac{x}{y} \cdot {a}^{\left(t - 1\right)}}{e^{b - \log z \cdot y}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x \cdot \frac{{a}^{\left(t - 1\right)}}{y}}{\left(b + 1\right) - y \cdot \log z}\\ \end{array}\]

Derivation

  1. Split input into 2 regimes
  2. if b < -4.5635779643842805e-228 or 1.2486298280538037e-238 < b

    1. Initial program 1.7

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

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

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

    if -4.5635779643842805e-228 < b < 1.2486298280538037e-238

    1. Initial program 3.8

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

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

      \[\leadsto \frac{x \cdot \color{blue}{\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}}{y}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity2.5

      \[\leadsto \frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{\color{blue}{1 \cdot y}}\]
    6. Applied times-frac2.8

      \[\leadsto \color{blue}{\frac{x}{1} \cdot \frac{\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}}\]
    7. Simplified2.8

      \[\leadsto \color{blue}{x} \cdot \frac{\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}\]
    8. Simplified9.8

      \[\leadsto x \cdot \color{blue}{\frac{\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b} \cdot {\left(\frac{1}{z}\right)}^{y}}}{y}}\]
    9. Using strategy rm
    10. Applied *-un-lft-identity9.8

      \[\leadsto x \cdot \frac{\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b} \cdot {\left(\frac{1}{z}\right)}^{y}}}{\color{blue}{1 \cdot y}}\]
    11. Applied add-sqr-sqrt9.8

      \[\leadsto x \cdot \frac{\frac{{\left(\frac{1}{\color{blue}{\sqrt{a} \cdot \sqrt{a}}}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b} \cdot {\left(\frac{1}{z}\right)}^{y}}}{1 \cdot y}\]
    12. Applied add-cube-cbrt9.8

      \[\leadsto x \cdot \frac{\frac{{\left(\frac{\color{blue}{\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \sqrt[3]{1}}}{\sqrt{a} \cdot \sqrt{a}}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b} \cdot {\left(\frac{1}{z}\right)}^{y}}}{1 \cdot y}\]
    13. Applied times-frac9.9

      \[\leadsto x \cdot \frac{\frac{{\color{blue}{\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt{a}} \cdot \frac{\sqrt[3]{1}}{\sqrt{a}}\right)}}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b} \cdot {\left(\frac{1}{z}\right)}^{y}}}{1 \cdot y}\]
    14. Applied unpow-prod-down9.9

      \[\leadsto x \cdot \frac{\frac{\color{blue}{{\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt{a}}\right)}^{1} \cdot {\left(\frac{\sqrt[3]{1}}{\sqrt{a}}\right)}^{1}}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b} \cdot {\left(\frac{1}{z}\right)}^{y}}}{1 \cdot y}\]
    15. Applied times-frac9.9

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

      \[\leadsto x \cdot \color{blue}{\left(\frac{\frac{{\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt{a}}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b}}}{1} \cdot \frac{\frac{{\left(\frac{\sqrt[3]{1}}{\sqrt{a}}\right)}^{1}}{{\left(\frac{1}{z}\right)}^{y}}}{y}\right)}\]
    17. Simplified11.5

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -4.56357796438428046 \cdot 10^{-228} \lor \neg \left(b \le 1.2486298280538037 \cdot 10^{-238}\right):\\ \;\;\;\;\frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}\\ \mathbf{else}:\\ \;\;\;\;x \cdot \left(\frac{{\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt{a}}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b}} \cdot \frac{\frac{{\left(\frac{\sqrt[3]{1}}{\sqrt{a}}\right)}^{1}}{{\left(\frac{1}{z}\right)}^{y}}}{y}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020027 
(FPCore (x y z t a b)
  :name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2, A"
  :precision binary64

  :herbie-target
  (if (< t -0.8845848504127471) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z)))) (if (< t 852031.2288374073) (/ (* (/ x y) (pow a (- t 1))) (exp (- b (* (log z) y)))) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z))))))

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