Average Error: 29.5 → 28.8
Time: 9.8s
Precision: 64
\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
\[\begin{array}{l} \mathbf{if}\;\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i} \le 1.0848236090199319 \cdot 10^{299}:\\ \;\;\;\;\frac{\left(\left(\left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \left(\sqrt[3]{x \cdot y + z} \cdot y\right) + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\\ \mathbf{else}:\\ \;\;\;\;\log \left({\left(e^{\frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}}\right)}^{\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right), y, 230661.510616000014\right), y, t\right)\right)}\right)\\ \end{array}\]
\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\begin{array}{l}
\mathbf{if}\;\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i} \le 1.0848236090199319 \cdot 10^{299}:\\
\;\;\;\;\frac{\left(\left(\left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \left(\sqrt[3]{x \cdot y + z} \cdot y\right) + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\\

\mathbf{else}:\\
\;\;\;\;\log \left({\left(e^{\frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}}\right)}^{\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right), y, 230661.510616000014\right), y, t\right)\right)}\right)\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r85587 = x;
        double r85588 = y;
        double r85589 = r85587 * r85588;
        double r85590 = z;
        double r85591 = r85589 + r85590;
        double r85592 = r85591 * r85588;
        double r85593 = 27464.7644705;
        double r85594 = r85592 + r85593;
        double r85595 = r85594 * r85588;
        double r85596 = 230661.510616;
        double r85597 = r85595 + r85596;
        double r85598 = r85597 * r85588;
        double r85599 = t;
        double r85600 = r85598 + r85599;
        double r85601 = a;
        double r85602 = r85588 + r85601;
        double r85603 = r85602 * r85588;
        double r85604 = b;
        double r85605 = r85603 + r85604;
        double r85606 = r85605 * r85588;
        double r85607 = c;
        double r85608 = r85606 + r85607;
        double r85609 = r85608 * r85588;
        double r85610 = i;
        double r85611 = r85609 + r85610;
        double r85612 = r85600 / r85611;
        return r85612;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r85613 = x;
        double r85614 = y;
        double r85615 = r85613 * r85614;
        double r85616 = z;
        double r85617 = r85615 + r85616;
        double r85618 = r85617 * r85614;
        double r85619 = 27464.7644705;
        double r85620 = r85618 + r85619;
        double r85621 = r85620 * r85614;
        double r85622 = 230661.510616;
        double r85623 = r85621 + r85622;
        double r85624 = r85623 * r85614;
        double r85625 = t;
        double r85626 = r85624 + r85625;
        double r85627 = a;
        double r85628 = r85614 + r85627;
        double r85629 = r85628 * r85614;
        double r85630 = b;
        double r85631 = r85629 + r85630;
        double r85632 = r85631 * r85614;
        double r85633 = c;
        double r85634 = r85632 + r85633;
        double r85635 = r85634 * r85614;
        double r85636 = i;
        double r85637 = r85635 + r85636;
        double r85638 = r85626 / r85637;
        double r85639 = 1.0848236090199319e+299;
        bool r85640 = r85638 <= r85639;
        double r85641 = cbrt(r85617);
        double r85642 = r85641 * r85641;
        double r85643 = r85641 * r85614;
        double r85644 = r85642 * r85643;
        double r85645 = r85644 + r85619;
        double r85646 = r85645 * r85614;
        double r85647 = r85646 + r85622;
        double r85648 = r85647 * r85614;
        double r85649 = r85648 + r85625;
        double r85650 = r85649 / r85637;
        double r85651 = 1.0;
        double r85652 = fma(r85628, r85614, r85630);
        double r85653 = fma(r85652, r85614, r85633);
        double r85654 = fma(r85653, r85614, r85636);
        double r85655 = r85651 / r85654;
        double r85656 = exp(r85655);
        double r85657 = fma(r85613, r85614, r85616);
        double r85658 = fma(r85657, r85614, r85619);
        double r85659 = fma(r85658, r85614, r85622);
        double r85660 = fma(r85659, r85614, r85625);
        double r85661 = pow(r85656, r85660);
        double r85662 = log(r85661);
        double r85663 = r85640 ? r85650 : r85662;
        return r85663;
}

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

Bits error versus c

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)) < 1.0848236090199319e+299

    1. Initial program 5.4

      \[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt5.6

      \[\leadsto \frac{\left(\left(\color{blue}{\left(\left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \sqrt[3]{x \cdot y + z}\right)} \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
    4. Applied associate-*l*5.6

      \[\leadsto \frac{\left(\left(\color{blue}{\left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \left(\sqrt[3]{x \cdot y + z} \cdot y\right)} + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]

    if 1.0848236090199319e+299 < (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i))

    1. Initial program 63.7

      \[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
    2. Using strategy rm
    3. Applied clear-num63.7

      \[\leadsto \color{blue}{\frac{1}{\frac{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}}}\]
    4. Using strategy rm
    5. Applied associate-/r/63.7

      \[\leadsto \color{blue}{\frac{1}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i} \cdot \left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right)}\]
    6. Simplified63.7

      \[\leadsto \color{blue}{\frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}} \cdot \left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right)\]
    7. Using strategy rm
    8. Applied add-log-exp64.0

      \[\leadsto \color{blue}{\log \left(e^{\frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)} \cdot \left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right)}\right)}\]
    9. Simplified61.8

      \[\leadsto \log \color{blue}{\left({\left(e^{\frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}}\right)}^{\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right), y, 230661.510616000014\right), y, t\right)\right)}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification28.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i} \le 1.0848236090199319 \cdot 10^{299}:\\ \;\;\;\;\frac{\left(\left(\left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \left(\sqrt[3]{x \cdot y + z} \cdot y\right) + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\\ \mathbf{else}:\\ \;\;\;\;\log \left({\left(e^{\frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}}\right)}^{\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right), y, 230661.510616000014\right), y, t\right)\right)}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020034 +o rules:numerics
(FPCore (x y z t a b c i)
  :name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2"
  :precision binary64
  (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))