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

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

\mathbf{else}:\\
\;\;\;\;\sqrt[3]{\mathsf{fma}\left(z \cdot y - a \cdot t, x, \sqrt[3]{\mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\right)} \cdot \sqrt[3]{\mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\right)}\right)\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(z \cdot y - a \cdot t, x, \mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(z \cdot y - a \cdot t, x, \mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\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 r3916588 = x;
        double r3916589 = y;
        double r3916590 = z;
        double r3916591 = r3916589 * r3916590;
        double r3916592 = t;
        double r3916593 = a;
        double r3916594 = r3916592 * r3916593;
        double r3916595 = r3916591 - r3916594;
        double r3916596 = r3916588 * r3916595;
        double r3916597 = b;
        double r3916598 = c;
        double r3916599 = r3916598 * r3916590;
        double r3916600 = i;
        double r3916601 = r3916600 * r3916593;
        double r3916602 = r3916599 - r3916601;
        double r3916603 = r3916597 * r3916602;
        double r3916604 = r3916596 - r3916603;
        double r3916605 = j;
        double r3916606 = r3916598 * r3916592;
        double r3916607 = r3916600 * r3916589;
        double r3916608 = r3916606 - r3916607;
        double r3916609 = r3916605 * r3916608;
        double r3916610 = r3916604 + r3916609;
        return r3916610;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r3916611 = b;
        double r3916612 = -3.388397820042072e-90;
        bool r3916613 = r3916611 <= r3916612;
        double r3916614 = z;
        double r3916615 = y;
        double r3916616 = r3916614 * r3916615;
        double r3916617 = a;
        double r3916618 = t;
        double r3916619 = r3916617 * r3916618;
        double r3916620 = r3916616 - r3916619;
        double r3916621 = x;
        double r3916622 = i;
        double r3916623 = r3916622 * r3916617;
        double r3916624 = c;
        double r3916625 = r3916614 * r3916624;
        double r3916626 = r3916623 - r3916625;
        double r3916627 = r3916622 * r3916615;
        double r3916628 = -r3916627;
        double r3916629 = fma(r3916618, r3916624, r3916628);
        double r3916630 = j;
        double r3916631 = r3916629 * r3916630;
        double r3916632 = fma(r3916611, r3916626, r3916631);
        double r3916633 = cbrt(r3916632);
        double r3916634 = r3916633 * r3916633;
        double r3916635 = r3916633 * r3916634;
        double r3916636 = fma(r3916620, r3916621, r3916635);
        double r3916637 = cbrt(r3916636);
        double r3916638 = fma(r3916620, r3916621, r3916632);
        double r3916639 = cbrt(r3916638);
        double r3916640 = r3916639 * r3916639;
        double r3916641 = r3916637 * r3916640;
        double r3916642 = 8.771814504689122e-152;
        bool r3916643 = r3916611 <= r3916642;
        double r3916644 = r3916618 * r3916630;
        double r3916645 = r3916614 * r3916611;
        double r3916646 = r3916644 - r3916645;
        double r3916647 = r3916624 * r3916646;
        double r3916648 = r3916627 * r3916630;
        double r3916649 = r3916647 - r3916648;
        double r3916650 = fma(r3916620, r3916621, r3916649);
        double r3916651 = r3916643 ? r3916650 : r3916641;
        double r3916652 = r3916613 ? r3916641 : r3916651;
        return r3916652;
}

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.388397820042072e-90 or 8.771814504689122e-152 < b

    1. Initial program 9.3

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

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

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

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

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

    if -3.388397820042072e-90 < b < 8.771814504689122e-152

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

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

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

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

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

Reproduce

herbie shell --seed 2019144 +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)))))