Average Error: 11.7 → 11.7
Time: 30.6s
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.109685036748723 \cdot 10^{-15}:\\ \;\;\;\;\left(\sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)}\\ \mathbf{elif}\;b \le 3.5516828515061712 \cdot 10^{-109}:\\ \;\;\;\;\mathsf{fma}\left(t \cdot c - y \cdot i, j, \left(y \cdot z - t \cdot a\right) \cdot x - c \cdot \left(z \cdot b\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\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.109685036748723 \cdot 10^{-15}:\\
\;\;\;\;\left(\sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)}\\

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

\mathbf{else}:\\
\;\;\;\;\left(\sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\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 r3802697 = x;
        double r3802698 = y;
        double r3802699 = z;
        double r3802700 = r3802698 * r3802699;
        double r3802701 = t;
        double r3802702 = a;
        double r3802703 = r3802701 * r3802702;
        double r3802704 = r3802700 - r3802703;
        double r3802705 = r3802697 * r3802704;
        double r3802706 = b;
        double r3802707 = c;
        double r3802708 = r3802707 * r3802699;
        double r3802709 = i;
        double r3802710 = r3802709 * r3802702;
        double r3802711 = r3802708 - r3802710;
        double r3802712 = r3802706 * r3802711;
        double r3802713 = r3802705 - r3802712;
        double r3802714 = j;
        double r3802715 = r3802707 * r3802701;
        double r3802716 = r3802709 * r3802698;
        double r3802717 = r3802715 - r3802716;
        double r3802718 = r3802714 * r3802717;
        double r3802719 = r3802713 + r3802718;
        return r3802719;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r3802720 = b;
        double r3802721 = -3.109685036748723e-15;
        bool r3802722 = r3802720 <= r3802721;
        double r3802723 = t;
        double r3802724 = c;
        double r3802725 = r3802723 * r3802724;
        double r3802726 = y;
        double r3802727 = i;
        double r3802728 = r3802726 * r3802727;
        double r3802729 = r3802725 - r3802728;
        double r3802730 = j;
        double r3802731 = a;
        double r3802732 = r3802731 * r3802727;
        double r3802733 = z;
        double r3802734 = r3802724 * r3802733;
        double r3802735 = r3802732 - r3802734;
        double r3802736 = r3802726 * r3802733;
        double r3802737 = r3802723 * r3802731;
        double r3802738 = r3802736 - r3802737;
        double r3802739 = x;
        double r3802740 = r3802738 * r3802739;
        double r3802741 = fma(r3802735, r3802720, r3802740);
        double r3802742 = fma(r3802729, r3802730, r3802741);
        double r3802743 = cbrt(r3802742);
        double r3802744 = r3802743 * r3802743;
        double r3802745 = r3802744 * r3802743;
        double r3802746 = 3.5516828515061712e-109;
        bool r3802747 = r3802720 <= r3802746;
        double r3802748 = r3802733 * r3802720;
        double r3802749 = r3802724 * r3802748;
        double r3802750 = r3802740 - r3802749;
        double r3802751 = fma(r3802729, r3802730, r3802750);
        double r3802752 = r3802747 ? r3802751 : r3802745;
        double r3802753 = r3802722 ? r3802745 : r3802752;
        return r3802753;
}

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 2 regimes
  2. if b < -3.109685036748723e-15 or 3.5516828515061712e-109 < b

    1. Initial program 8.0

      \[\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. Simplified7.9

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

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

    if -3.109685036748723e-15 < b < 3.5516828515061712e-109

    1. Initial program 15.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. Simplified15.4

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

      \[\leadsto \mathsf{fma}\left(t \cdot c - i \cdot y, j, \color{blue}{x \cdot \left(z \cdot y\right) - \left(z \cdot \left(b \cdot c\right) + t \cdot \left(x \cdot a\right)\right)}\right)\]
    4. Simplified14.6

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -3.109685036748723 \cdot 10^{-15}:\\ \;\;\;\;\left(\sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)}\\ \mathbf{elif}\;b \le 3.5516828515061712 \cdot 10^{-109}:\\ \;\;\;\;\mathsf{fma}\left(t \cdot c - y \cdot i, j, \left(y \cdot z - t \cdot a\right) \cdot x - c \cdot \left(z \cdot b\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(y \cdot z - t \cdot a\right) \cdot x\right)\right)}\\ \end{array}\]

Reproduce

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