Average Error: 11.3 → 11.1
Time: 37.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 -1.3170221203399503 \cdot 10^{-225}:\\ \;\;\;\;\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(\mathsf{fma}\left(\sqrt[3]{i} \cdot \sqrt[3]{i}, \sqrt[3]{i} \cdot a, -c \cdot z\right), b, \mathsf{fma}\left(y, z, -t \cdot a\right) \cdot x\right)\right)\\ \mathbf{elif}\;b \le 2.9257973134496947 \cdot 10^{-167}:\\ \;\;\;\;\mathsf{fma}\left(t \cdot c - y \cdot i, j, \left(x \cdot z\right) \cdot y - \mathsf{fma}\left(z, c \cdot b, \left(t \cdot a\right) \cdot x\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(z \cdot y\right) \cdot x - a \cdot \left(t \cdot x\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 -1.3170221203399503 \cdot 10^{-225}:\\
\;\;\;\;\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(\mathsf{fma}\left(\sqrt[3]{i} \cdot \sqrt[3]{i}, \sqrt[3]{i} \cdot a, -c \cdot z\right), b, \mathsf{fma}\left(y, z, -t \cdot a\right) \cdot x\right)\right)\\

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

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(z \cdot y\right) \cdot x - a \cdot \left(t \cdot x\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 r4278954 = x;
        double r4278955 = y;
        double r4278956 = z;
        double r4278957 = r4278955 * r4278956;
        double r4278958 = t;
        double r4278959 = a;
        double r4278960 = r4278958 * r4278959;
        double r4278961 = r4278957 - r4278960;
        double r4278962 = r4278954 * r4278961;
        double r4278963 = b;
        double r4278964 = c;
        double r4278965 = r4278964 * r4278956;
        double r4278966 = i;
        double r4278967 = r4278966 * r4278959;
        double r4278968 = r4278965 - r4278967;
        double r4278969 = r4278963 * r4278968;
        double r4278970 = r4278962 - r4278969;
        double r4278971 = j;
        double r4278972 = r4278964 * r4278958;
        double r4278973 = r4278966 * r4278955;
        double r4278974 = r4278972 - r4278973;
        double r4278975 = r4278971 * r4278974;
        double r4278976 = r4278970 + r4278975;
        return r4278976;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r4278977 = b;
        double r4278978 = -1.3170221203399503e-225;
        bool r4278979 = r4278977 <= r4278978;
        double r4278980 = t;
        double r4278981 = c;
        double r4278982 = r4278980 * r4278981;
        double r4278983 = y;
        double r4278984 = i;
        double r4278985 = r4278983 * r4278984;
        double r4278986 = r4278982 - r4278985;
        double r4278987 = j;
        double r4278988 = cbrt(r4278984);
        double r4278989 = r4278988 * r4278988;
        double r4278990 = a;
        double r4278991 = r4278988 * r4278990;
        double r4278992 = z;
        double r4278993 = r4278981 * r4278992;
        double r4278994 = -r4278993;
        double r4278995 = fma(r4278989, r4278991, r4278994);
        double r4278996 = r4278980 * r4278990;
        double r4278997 = -r4278996;
        double r4278998 = fma(r4278983, r4278992, r4278997);
        double r4278999 = x;
        double r4279000 = r4278998 * r4278999;
        double r4279001 = fma(r4278995, r4278977, r4279000);
        double r4279002 = fma(r4278986, r4278987, r4279001);
        double r4279003 = 2.9257973134496947e-167;
        bool r4279004 = r4278977 <= r4279003;
        double r4279005 = r4278999 * r4278992;
        double r4279006 = r4279005 * r4278983;
        double r4279007 = r4278981 * r4278977;
        double r4279008 = r4278996 * r4278999;
        double r4279009 = fma(r4278992, r4279007, r4279008);
        double r4279010 = r4279006 - r4279009;
        double r4279011 = fma(r4278986, r4278987, r4279010);
        double r4279012 = r4278990 * r4278984;
        double r4279013 = r4279012 - r4278993;
        double r4279014 = r4278992 * r4278983;
        double r4279015 = r4279014 * r4278999;
        double r4279016 = r4278980 * r4278999;
        double r4279017 = r4278990 * r4279016;
        double r4279018 = r4279015 - r4279017;
        double r4279019 = fma(r4279013, r4278977, r4279018);
        double r4279020 = fma(r4278986, r4278987, r4279019);
        double r4279021 = r4279004 ? r4279011 : r4279020;
        double r4279022 = r4278979 ? r4279002 : r4279021;
        return r4279022;
}

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 b < -1.3170221203399503e-225

    1. Initial program 10.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. Simplified10.3

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

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

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

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

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

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

    if -1.3170221203399503e-225 < b < 2.9257973134496947e-167

    1. Initial program 15.1

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

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

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

    if 2.9257973134496947e-167 < 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.8

      \[\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 10.4

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

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

Reproduce

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