Average Error: 2.0 → 0.7
Time: 32.1s
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}\;\left(t - 1\right) \cdot \log a \le 52.279119054873007 \lor \neg \left(\left(t - 1\right) \cdot \log a \le 567.847783482109776\right):\\ \;\;\;\;\frac{x}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}} \cdot \frac{\frac{\frac{1}{{a}^{1}}}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}}{y}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)}^{1}}}{\frac{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}{\frac{\sqrt[3]{x}}{{\left(\sqrt[3]{a}\right)}^{1}}}}}{y}\\ \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}\;\left(t - 1\right) \cdot \log a \le 52.279119054873007 \lor \neg \left(\left(t - 1\right) \cdot \log a \le 567.847783482109776\right):\\
\;\;\;\;\frac{x}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}} \cdot \frac{\frac{\frac{1}{{a}^{1}}}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}}{y}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r551243 = x;
        double r551244 = y;
        double r551245 = z;
        double r551246 = log(r551245);
        double r551247 = r551244 * r551246;
        double r551248 = t;
        double r551249 = 1.0;
        double r551250 = r551248 - r551249;
        double r551251 = a;
        double r551252 = log(r551251);
        double r551253 = r551250 * r551252;
        double r551254 = r551247 + r551253;
        double r551255 = b;
        double r551256 = r551254 - r551255;
        double r551257 = exp(r551256);
        double r551258 = r551243 * r551257;
        double r551259 = r551258 / r551244;
        return r551259;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r551260 = t;
        double r551261 = 1.0;
        double r551262 = r551260 - r551261;
        double r551263 = a;
        double r551264 = log(r551263);
        double r551265 = r551262 * r551264;
        double r551266 = 52.27911905487301;
        bool r551267 = r551265 <= r551266;
        double r551268 = 567.8477834821098;
        bool r551269 = r551265 <= r551268;
        double r551270 = !r551269;
        bool r551271 = r551267 || r551270;
        double r551272 = x;
        double r551273 = y;
        double r551274 = z;
        double r551275 = log(r551274);
        double r551276 = -r551275;
        double r551277 = -r551264;
        double r551278 = b;
        double r551279 = fma(r551277, r551260, r551278);
        double r551280 = fma(r551273, r551276, r551279);
        double r551281 = exp(r551280);
        double r551282 = sqrt(r551281);
        double r551283 = r551272 / r551282;
        double r551284 = 1.0;
        double r551285 = pow(r551263, r551261);
        double r551286 = r551284 / r551285;
        double r551287 = r551286 / r551282;
        double r551288 = r551287 / r551273;
        double r551289 = r551283 * r551288;
        double r551290 = cbrt(r551272);
        double r551291 = r551290 * r551290;
        double r551292 = cbrt(r551263);
        double r551293 = r551292 * r551292;
        double r551294 = pow(r551293, r551261);
        double r551295 = r551291 / r551294;
        double r551296 = pow(r551292, r551261);
        double r551297 = r551290 / r551296;
        double r551298 = r551281 / r551297;
        double r551299 = r551295 / r551298;
        double r551300 = r551299 / r551273;
        double r551301 = r551271 ? r551289 : r551300;
        return r551301;
}

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

Target

Original2.0
Target11.2
Herbie0.7
\[\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 (* (- t 1.0) (log a)) < 52.27911905487301 or 567.8477834821098 < (* (- t 1.0) (log a))

    1. Initial program 2.1

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

      \[\leadsto \color{blue}{\frac{x \cdot 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. Simplified7.5

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

      \[\leadsto \frac{\frac{\frac{x}{{a}^{1}}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}{\color{blue}{1 \cdot y}}\]
    6. Applied add-sqr-sqrt7.5

      \[\leadsto \frac{\frac{\frac{x}{{a}^{1}}}{\color{blue}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}} \cdot \sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}}}{1 \cdot y}\]
    7. Applied div-inv7.5

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

      \[\leadsto \frac{\color{blue}{\frac{x}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}} \cdot \frac{\frac{1}{{a}^{1}}}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}}}{1 \cdot y}\]
    9. Applied times-frac0.4

      \[\leadsto \color{blue}{\frac{\frac{x}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}}{1} \cdot \frac{\frac{\frac{1}{{a}^{1}}}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}}{y}}\]
    10. Simplified0.4

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

    if 52.27911905487301 < (* (- t 1.0) (log a)) < 567.8477834821098

    1. Initial program 1.5

      \[\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.5

      \[\leadsto \color{blue}{\frac{x \cdot 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. Simplified11.2

      \[\leadsto \color{blue}{\frac{\frac{\frac{x}{{a}^{1}}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}{y}}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt11.5

      \[\leadsto \frac{\frac{\frac{x}{{\color{blue}{\left(\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}\right)}}^{1}}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}{y}\]
    6. Applied unpow-prod-down11.5

      \[\leadsto \frac{\frac{\frac{x}{\color{blue}{{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)}^{1} \cdot {\left(\sqrt[3]{a}\right)}^{1}}}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}{y}\]
    7. Applied add-cube-cbrt11.6

      \[\leadsto \frac{\frac{\frac{\color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}}}{{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)}^{1} \cdot {\left(\sqrt[3]{a}\right)}^{1}}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}{y}\]
    8. Applied times-frac11.6

      \[\leadsto \frac{\frac{\color{blue}{\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)}^{1}} \cdot \frac{\sqrt[3]{x}}{{\left(\sqrt[3]{a}\right)}^{1}}}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}{y}\]
    9. Applied associate-/l*1.7

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(t - 1\right) \cdot \log a \le 52.279119054873007 \lor \neg \left(\left(t - 1\right) \cdot \log a \le 567.847783482109776\right):\\ \;\;\;\;\frac{x}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}} \cdot \frac{\frac{\frac{1}{{a}^{1}}}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}}{y}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)}^{1}}}{\frac{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}{\frac{\sqrt[3]{x}}{{\left(\sqrt[3]{a}\right)}^{1}}}}}{y}\\ \end{array}\]

Reproduce

herbie shell --seed 2020047 +o rules:numerics
(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))