Average Error: 2.0 → 1.2
Time: 1.3m
Precision: 64
\[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}{y}\]
\[\begin{array}{l} \mathbf{if}\;x \le -5.595323073166741 \cdot 10^{+53}:\\ \;\;\;\;\frac{\left(\left(\sqrt[3]{\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}} \cdot \sqrt[3]{\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}}\right) \cdot \sqrt[3]{\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}}\right) \cdot \left(\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}} \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}\right)\right)}{y}\\ \mathbf{elif}\;x \le 2.2414839806053286 \cdot 10^{-132}:\\ \;\;\;\;e^{\left(\left(\log a \cdot t - b\right) - \log a \cdot 1.0\right) + y \cdot \log z} \cdot \frac{x}{y}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{\frac{1}{3} \cdot \left(\left(-1.0\right) \cdot \log a - \left(\left(\left(b - \log a \cdot t\right) - y \cdot \log z\right) - \log x\right)\right)} \cdot \left(\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}} \cdot \sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}\right)}{y}\\ \end{array}\]
double f(double x, double y, double z, double t, double a, double b) {
        double r10298745 = x;
        double r10298746 = y;
        double r10298747 = z;
        double r10298748 = log(r10298747);
        double r10298749 = r10298746 * r10298748;
        double r10298750 = t;
        double r10298751 = 1.0;
        double r10298752 = r10298750 - r10298751;
        double r10298753 = a;
        double r10298754 = log(r10298753);
        double r10298755 = r10298752 * r10298754;
        double r10298756 = r10298749 + r10298755;
        double r10298757 = b;
        double r10298758 = r10298756 - r10298757;
        double r10298759 = exp(r10298758);
        double r10298760 = r10298745 * r10298759;
        double r10298761 = r10298760 / r10298746;
        return r10298761;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r10298762 = x;
        double r10298763 = -5.595323073166741e+53;
        bool r10298764 = r10298762 <= r10298763;
        double r10298765 = a;
        double r10298766 = log(r10298765);
        double r10298767 = t;
        double r10298768 = 1.0;
        double r10298769 = r10298767 - r10298768;
        double r10298770 = r10298766 * r10298769;
        double r10298771 = y;
        double r10298772 = z;
        double r10298773 = log(r10298772);
        double r10298774 = r10298771 * r10298773;
        double r10298775 = r10298770 + r10298774;
        double r10298776 = b;
        double r10298777 = r10298775 - r10298776;
        double r10298778 = exp(r10298777);
        double r10298779 = r10298762 * r10298778;
        double r10298780 = cbrt(r10298779);
        double r10298781 = cbrt(r10298780);
        double r10298782 = r10298781 * r10298781;
        double r10298783 = r10298782 * r10298781;
        double r10298784 = cbrt(r10298762);
        double r10298785 = cbrt(r10298778);
        double r10298786 = r10298784 * r10298785;
        double r10298787 = r10298780 * r10298786;
        double r10298788 = r10298783 * r10298787;
        double r10298789 = r10298788 / r10298771;
        double r10298790 = 2.2414839806053286e-132;
        bool r10298791 = r10298762 <= r10298790;
        double r10298792 = r10298766 * r10298767;
        double r10298793 = r10298792 - r10298776;
        double r10298794 = r10298766 * r10298768;
        double r10298795 = r10298793 - r10298794;
        double r10298796 = r10298795 + r10298774;
        double r10298797 = exp(r10298796);
        double r10298798 = r10298762 / r10298771;
        double r10298799 = r10298797 * r10298798;
        double r10298800 = 0.3333333333333333;
        double r10298801 = -r10298768;
        double r10298802 = r10298801 * r10298766;
        double r10298803 = r10298776 - r10298792;
        double r10298804 = r10298803 - r10298774;
        double r10298805 = log(r10298762);
        double r10298806 = r10298804 - r10298805;
        double r10298807 = r10298802 - r10298806;
        double r10298808 = r10298800 * r10298807;
        double r10298809 = exp(r10298808);
        double r10298810 = r10298780 * r10298780;
        double r10298811 = r10298809 * r10298810;
        double r10298812 = r10298811 / r10298771;
        double r10298813 = r10298791 ? r10298799 : r10298812;
        double r10298814 = r10298764 ? r10298789 : r10298813;
        return r10298814;
}

\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}{y}
\begin{array}{l}
\mathbf{if}\;x \le -5.595323073166741 \cdot 10^{+53}:\\
\;\;\;\;\frac{\left(\left(\sqrt[3]{\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}} \cdot \sqrt[3]{\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}}\right) \cdot \sqrt[3]{\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}}\right) \cdot \left(\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}} \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}\right)\right)}{y}\\

\mathbf{elif}\;x \le 2.2414839806053286 \cdot 10^{-132}:\\
\;\;\;\;e^{\left(\left(\log a \cdot t - b\right) - \log a \cdot 1.0\right) + y \cdot \log z} \cdot \frac{x}{y}\\

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

\end{array}

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

Derivation

  1. Split input into 3 regimes
  2. if x < -5.595323073166741e+53

    1. Initial program 0.8

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

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}} \cdot \sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}\right) \cdot \sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}}}{y}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt0.8

      \[\leadsto \frac{\left(\sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}} \cdot \sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}\right) \cdot \color{blue}{\left(\left(\sqrt[3]{\sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}} \cdot \sqrt[3]{\sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}}\right) \cdot \sqrt[3]{\sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}}\right)}}{y}\]
    6. Using strategy rm
    7. Applied cbrt-prod0.8

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

    if -5.595323073166741e+53 < x < 2.2414839806053286e-132

    1. Initial program 3.0

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

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}} \cdot \sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}\right) \cdot \sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}}}{y}\]
    4. Taylor expanded around inf 3.0

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

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

    if 2.2414839806053286e-132 < x

    1. Initial program 1.2

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

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}} \cdot \sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}\right) \cdot \sqrt[3]{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}}}{y}\]
    4. Taylor expanded around inf 1.3

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -5.595323073166741 \cdot 10^{+53}:\\ \;\;\;\;\frac{\left(\left(\sqrt[3]{\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}} \cdot \sqrt[3]{\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}}\right) \cdot \sqrt[3]{\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}}\right) \cdot \left(\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}} \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}\right)\right)}{y}\\ \mathbf{elif}\;x \le 2.2414839806053286 \cdot 10^{-132}:\\ \;\;\;\;e^{\left(\left(\log a \cdot t - b\right) - \log a \cdot 1.0\right) + y \cdot \log z} \cdot \frac{x}{y}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{\frac{1}{3} \cdot \left(\left(-1.0\right) \cdot \log a - \left(\left(\left(b - \log a \cdot t\right) - y \cdot \log z\right) - \log x\right)\right)} \cdot \left(\sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}} \cdot \sqrt[3]{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + y \cdot \log z\right) - b}}\right)}{y}\\ \end{array}\]

Reproduce

herbie shell --seed 2019102 
(FPCore (x y z t a b)
  :name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2"
  (/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))