Average Error: 12.4 → 13.7
Time: 12.5s
Precision: 64
\[\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
\[\begin{array}{l} \mathbf{if}\;b \le -3.5447436542332151 \cdot 10^{-127}:\\ \;\;\;\;\mathsf{fma}\left(c \cdot t - i \cdot y, j, \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z - t \cdot a\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right)\\ \mathbf{elif}\;b \le -3.40149356120774805 \cdot 10^{-152}:\\ \;\;\;\;\mathsf{fma}\left(a, i \cdot b, -\mathsf{fma}\left(z, b \cdot c, a \cdot \left(x \cdot t\right)\right)\right)\\ \mathbf{elif}\;b \le 1.8227810540647952 \cdot 10^{-177}:\\ \;\;\;\;\mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - 0\right)\\ \mathbf{elif}\;b \le 1.865590680694256 \cdot 10^{-152}:\\ \;\;\;\;\mathsf{fma}\left(a, i \cdot b, -\mathsf{fma}\left(z, b \cdot c, a \cdot \left(x \cdot t\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - \sqrt{b} \cdot \left(\sqrt{b} \cdot \left(c \cdot z - i \cdot a\right)\right)\right)\\ \end{array}\]
\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)
\begin{array}{l}
\mathbf{if}\;b \le -3.5447436542332151 \cdot 10^{-127}:\\
\;\;\;\;\mathsf{fma}\left(c \cdot t - i \cdot y, j, \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z - t \cdot a\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right)\\

\mathbf{elif}\;b \le -3.40149356120774805 \cdot 10^{-152}:\\
\;\;\;\;\mathsf{fma}\left(a, i \cdot b, -\mathsf{fma}\left(z, b \cdot c, a \cdot \left(x \cdot t\right)\right)\right)\\

\mathbf{elif}\;b \le 1.8227810540647952 \cdot 10^{-177}:\\
\;\;\;\;\mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - 0\right)\\

\mathbf{elif}\;b \le 1.865590680694256 \cdot 10^{-152}:\\
\;\;\;\;\mathsf{fma}\left(a, i \cdot b, -\mathsf{fma}\left(z, b \cdot c, a \cdot \left(x \cdot t\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - \sqrt{b} \cdot \left(\sqrt{b} \cdot \left(c \cdot z - i \cdot a\right)\right)\right)\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r122593 = x;
        double r122594 = y;
        double r122595 = z;
        double r122596 = r122594 * r122595;
        double r122597 = t;
        double r122598 = a;
        double r122599 = r122597 * r122598;
        double r122600 = r122596 - r122599;
        double r122601 = r122593 * r122600;
        double r122602 = b;
        double r122603 = c;
        double r122604 = r122603 * r122595;
        double r122605 = i;
        double r122606 = r122605 * r122598;
        double r122607 = r122604 - r122606;
        double r122608 = r122602 * r122607;
        double r122609 = r122601 - r122608;
        double r122610 = j;
        double r122611 = r122603 * r122597;
        double r122612 = r122605 * r122594;
        double r122613 = r122611 - r122612;
        double r122614 = r122610 * r122613;
        double r122615 = r122609 + r122614;
        return r122615;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r122616 = b;
        double r122617 = -3.544743654233215e-127;
        bool r122618 = r122616 <= r122617;
        double r122619 = c;
        double r122620 = t;
        double r122621 = r122619 * r122620;
        double r122622 = i;
        double r122623 = y;
        double r122624 = r122622 * r122623;
        double r122625 = r122621 - r122624;
        double r122626 = j;
        double r122627 = x;
        double r122628 = cbrt(r122627);
        double r122629 = r122628 * r122628;
        double r122630 = z;
        double r122631 = r122623 * r122630;
        double r122632 = a;
        double r122633 = r122620 * r122632;
        double r122634 = r122631 - r122633;
        double r122635 = r122628 * r122634;
        double r122636 = r122629 * r122635;
        double r122637 = r122619 * r122630;
        double r122638 = r122622 * r122632;
        double r122639 = r122637 - r122638;
        double r122640 = r122616 * r122639;
        double r122641 = r122636 - r122640;
        double r122642 = fma(r122625, r122626, r122641);
        double r122643 = -3.401493561207748e-152;
        bool r122644 = r122616 <= r122643;
        double r122645 = r122622 * r122616;
        double r122646 = r122616 * r122619;
        double r122647 = r122627 * r122620;
        double r122648 = r122632 * r122647;
        double r122649 = fma(r122630, r122646, r122648);
        double r122650 = -r122649;
        double r122651 = fma(r122632, r122645, r122650);
        double r122652 = 1.8227810540647952e-177;
        bool r122653 = r122616 <= r122652;
        double r122654 = r122627 * r122634;
        double r122655 = 0.0;
        double r122656 = r122654 - r122655;
        double r122657 = fma(r122625, r122626, r122656);
        double r122658 = 1.8655906806942557e-152;
        bool r122659 = r122616 <= r122658;
        double r122660 = sqrt(r122616);
        double r122661 = r122660 * r122639;
        double r122662 = r122660 * r122661;
        double r122663 = r122654 - r122662;
        double r122664 = fma(r122625, r122626, r122663);
        double r122665 = r122659 ? r122651 : r122664;
        double r122666 = r122653 ? r122657 : r122665;
        double r122667 = r122644 ? r122651 : r122666;
        double r122668 = r122618 ? r122642 : r122667;
        return r122668;
}

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

Bits error versus j

Derivation

  1. Split input into 4 regimes
  2. if b < -3.544743654233215e-127

    1. Initial program 9.5

      \[\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    2. Simplified9.5

      \[\leadsto \color{blue}{\mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right)}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt9.8

      \[\leadsto \mathsf{fma}\left(c \cdot t - i \cdot y, j, \color{blue}{\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}\right)} \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right)\]
    5. Applied associate-*l*9.8

      \[\leadsto \mathsf{fma}\left(c \cdot t - i \cdot y, j, \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z - t \cdot a\right)\right)} - b \cdot \left(c \cdot z - i \cdot a\right)\right)\]

    if -3.544743654233215e-127 < b < -3.401493561207748e-152 or 1.8227810540647952e-177 < b < 1.8655906806942557e-152

    1. Initial program 16.4

      \[\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    2. Simplified16.4

      \[\leadsto \color{blue}{\mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right)}\]
    3. Taylor expanded around inf 37.2

      \[\leadsto \color{blue}{a \cdot \left(i \cdot b\right) - \left(z \cdot \left(b \cdot c\right) + a \cdot \left(x \cdot t\right)\right)}\]
    4. Simplified37.2

      \[\leadsto \color{blue}{\mathsf{fma}\left(a, i \cdot b, -\mathsf{fma}\left(z, b \cdot c, a \cdot \left(x \cdot t\right)\right)\right)}\]

    if -3.401493561207748e-152 < b < 1.8227810540647952e-177

    1. Initial program 17.7

      \[\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    2. Simplified17.7

      \[\leadsto \color{blue}{\mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right)}\]
    3. Taylor expanded around 0 18.2

      \[\leadsto \mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - \color{blue}{0}\right)\]

    if 1.8655906806942557e-152 < b

    1. Initial program 9.8

      \[\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    2. Simplified9.7

      \[\leadsto \color{blue}{\mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right)}\]
    3. Using strategy rm
    4. Applied add-sqr-sqrt9.9

      \[\leadsto \mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - \color{blue}{\left(\sqrt{b} \cdot \sqrt{b}\right)} \cdot \left(c \cdot z - i \cdot a\right)\right)\]
    5. Applied associate-*l*9.9

      \[\leadsto \mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - \color{blue}{\sqrt{b} \cdot \left(\sqrt{b} \cdot \left(c \cdot z - i \cdot a\right)\right)}\right)\]
  3. Recombined 4 regimes into one program.
  4. Final simplification13.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -3.5447436542332151 \cdot 10^{-127}:\\ \;\;\;\;\mathsf{fma}\left(c \cdot t - i \cdot y, j, \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z - t \cdot a\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right)\\ \mathbf{elif}\;b \le -3.40149356120774805 \cdot 10^{-152}:\\ \;\;\;\;\mathsf{fma}\left(a, i \cdot b, -\mathsf{fma}\left(z, b \cdot c, a \cdot \left(x \cdot t\right)\right)\right)\\ \mathbf{elif}\;b \le 1.8227810540647952 \cdot 10^{-177}:\\ \;\;\;\;\mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - 0\right)\\ \mathbf{elif}\;b \le 1.865590680694256 \cdot 10^{-152}:\\ \;\;\;\;\mathsf{fma}\left(a, i \cdot b, -\mathsf{fma}\left(z, b \cdot c, a \cdot \left(x \cdot t\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(c \cdot t - i \cdot y, j, x \cdot \left(y \cdot z - t \cdot a\right) - \sqrt{b} \cdot \left(\sqrt{b} \cdot \left(c \cdot z - i \cdot a\right)\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020025 +o rules:numerics
(FPCore (x y z t a b c i j)
  :name "Linear.Matrix:det33 from linear-1.19.1.3"
  :precision binary64
  (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))