Average Error: 11.4 → 11.1
Time: 32.2s
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}\;j \le -9.133106398459372 \cdot 10^{-15}:\\ \;\;\;\;\mathsf{fma}\left(\left(i \cdot a - c \cdot z\right), b, \left(\mathsf{fma}\left(\left(t \cdot c - i \cdot y\right), j, \left(\left(x \cdot \left(\sqrt[3]{\sqrt[3]{y \cdot z - t \cdot a} \cdot \sqrt[3]{y \cdot z - t \cdot a}} \cdot \sqrt[3]{\sqrt[3]{y \cdot z - t \cdot a}}\right)\right) \cdot \left(\sqrt[3]{y \cdot z - t \cdot a} \cdot \sqrt[3]{y \cdot z - t \cdot a}\right)\right)\right)\right)\right)\\ \mathbf{elif}\;j \le 1.0565351429208981 \cdot 10^{-230}:\\ \;\;\;\;\mathsf{fma}\left(\left(i \cdot a - c \cdot z\right), b, \left(\left(z \cdot x - i \cdot j\right) \cdot y - \left(t \cdot a\right) \cdot x\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\left(i \cdot a - c \cdot z\right), b, \left(\mathsf{fma}\left(\left(t \cdot c - i \cdot y\right), j, \left(\sqrt[3]{x} \cdot \left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(y \cdot z - t \cdot a\right)\right)\right)\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}\;j \le -9.133106398459372 \cdot 10^{-15}:\\
\;\;\;\;\mathsf{fma}\left(\left(i \cdot a - c \cdot z\right), b, \left(\mathsf{fma}\left(\left(t \cdot c - i \cdot y\right), j, \left(\left(x \cdot \left(\sqrt[3]{\sqrt[3]{y \cdot z - t \cdot a} \cdot \sqrt[3]{y \cdot z - t \cdot a}} \cdot \sqrt[3]{\sqrt[3]{y \cdot z - t \cdot a}}\right)\right) \cdot \left(\sqrt[3]{y \cdot z - t \cdot a} \cdot \sqrt[3]{y \cdot z - t \cdot a}\right)\right)\right)\right)\right)\\

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

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\left(i \cdot a - c \cdot z\right), b, \left(\mathsf{fma}\left(\left(t \cdot c - i \cdot y\right), j, \left(\sqrt[3]{x} \cdot \left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(y \cdot z - t \cdot a\right)\right)\right)\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 r3243985 = x;
        double r3243986 = y;
        double r3243987 = z;
        double r3243988 = r3243986 * r3243987;
        double r3243989 = t;
        double r3243990 = a;
        double r3243991 = r3243989 * r3243990;
        double r3243992 = r3243988 - r3243991;
        double r3243993 = r3243985 * r3243992;
        double r3243994 = b;
        double r3243995 = c;
        double r3243996 = r3243995 * r3243987;
        double r3243997 = i;
        double r3243998 = r3243997 * r3243990;
        double r3243999 = r3243996 - r3243998;
        double r3244000 = r3243994 * r3243999;
        double r3244001 = r3243993 - r3244000;
        double r3244002 = j;
        double r3244003 = r3243995 * r3243989;
        double r3244004 = r3243997 * r3243986;
        double r3244005 = r3244003 - r3244004;
        double r3244006 = r3244002 * r3244005;
        double r3244007 = r3244001 + r3244006;
        return r3244007;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r3244008 = j;
        double r3244009 = -9.133106398459372e-15;
        bool r3244010 = r3244008 <= r3244009;
        double r3244011 = i;
        double r3244012 = a;
        double r3244013 = r3244011 * r3244012;
        double r3244014 = c;
        double r3244015 = z;
        double r3244016 = r3244014 * r3244015;
        double r3244017 = r3244013 - r3244016;
        double r3244018 = b;
        double r3244019 = t;
        double r3244020 = r3244019 * r3244014;
        double r3244021 = y;
        double r3244022 = r3244011 * r3244021;
        double r3244023 = r3244020 - r3244022;
        double r3244024 = x;
        double r3244025 = r3244021 * r3244015;
        double r3244026 = r3244019 * r3244012;
        double r3244027 = r3244025 - r3244026;
        double r3244028 = cbrt(r3244027);
        double r3244029 = r3244028 * r3244028;
        double r3244030 = cbrt(r3244029);
        double r3244031 = cbrt(r3244028);
        double r3244032 = r3244030 * r3244031;
        double r3244033 = r3244024 * r3244032;
        double r3244034 = r3244033 * r3244029;
        double r3244035 = fma(r3244023, r3244008, r3244034);
        double r3244036 = fma(r3244017, r3244018, r3244035);
        double r3244037 = 1.0565351429208981e-230;
        bool r3244038 = r3244008 <= r3244037;
        double r3244039 = r3244015 * r3244024;
        double r3244040 = r3244011 * r3244008;
        double r3244041 = r3244039 - r3244040;
        double r3244042 = r3244041 * r3244021;
        double r3244043 = r3244026 * r3244024;
        double r3244044 = r3244042 - r3244043;
        double r3244045 = fma(r3244017, r3244018, r3244044);
        double r3244046 = cbrt(r3244024);
        double r3244047 = r3244046 * r3244046;
        double r3244048 = r3244047 * r3244027;
        double r3244049 = r3244046 * r3244048;
        double r3244050 = fma(r3244023, r3244008, r3244049);
        double r3244051 = fma(r3244017, r3244018, r3244050);
        double r3244052 = r3244038 ? r3244045 : r3244051;
        double r3244053 = r3244010 ? r3244036 : r3244052;
        return r3244053;
}

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 3 regimes
  2. if j < -9.133106398459372e-15

    1. Initial program 7.6

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

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

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

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

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

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

    if -9.133106398459372e-15 < j < 1.0565351429208981e-230

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

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

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

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

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

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

    if 1.0565351429208981e-230 < j

    1. Initial program 10.2

      \[\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. Simplified10.2

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

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

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

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

Reproduce

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