Average Error: 12.4 → 11.4
Time: 26.8s
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 6.57102221305612443 \cdot 10^{-50}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(\left(z \cdot b\right) \cdot c + \left(\left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right) \cdot \left(-i \cdot a\right)\right) \cdot \sqrt[3]{b}\right)\right) + \left(t \cdot \left(j \cdot c\right) - i \cdot \left(y \cdot j\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(z \cdot \left(b \cdot c\right) - a \cdot \left(i \cdot b\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\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 6.57102221305612443 \cdot 10^{-50}:\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(\left(z \cdot b\right) \cdot c + \left(\left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right) \cdot \left(-i \cdot a\right)\right) \cdot \sqrt[3]{b}\right)\right) + \left(t \cdot \left(j \cdot c\right) - i \cdot \left(y \cdot j\right)\right)\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r90947 = x;
        double r90948 = y;
        double r90949 = z;
        double r90950 = r90948 * r90949;
        double r90951 = t;
        double r90952 = a;
        double r90953 = r90951 * r90952;
        double r90954 = r90950 - r90953;
        double r90955 = r90947 * r90954;
        double r90956 = b;
        double r90957 = c;
        double r90958 = r90957 * r90949;
        double r90959 = i;
        double r90960 = r90959 * r90952;
        double r90961 = r90958 - r90960;
        double r90962 = r90956 * r90961;
        double r90963 = r90955 - r90962;
        double r90964 = j;
        double r90965 = r90957 * r90951;
        double r90966 = r90959 * r90948;
        double r90967 = r90965 - r90966;
        double r90968 = r90964 * r90967;
        double r90969 = r90963 + r90968;
        return r90969;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r90970 = j;
        double r90971 = 6.571022213056124e-50;
        bool r90972 = r90970 <= r90971;
        double r90973 = x;
        double r90974 = y;
        double r90975 = z;
        double r90976 = r90974 * r90975;
        double r90977 = t;
        double r90978 = a;
        double r90979 = r90977 * r90978;
        double r90980 = r90976 - r90979;
        double r90981 = r90973 * r90980;
        double r90982 = b;
        double r90983 = r90975 * r90982;
        double r90984 = c;
        double r90985 = r90983 * r90984;
        double r90986 = cbrt(r90982);
        double r90987 = r90986 * r90986;
        double r90988 = i;
        double r90989 = r90988 * r90978;
        double r90990 = -r90989;
        double r90991 = r90987 * r90990;
        double r90992 = r90991 * r90986;
        double r90993 = r90985 + r90992;
        double r90994 = r90981 - r90993;
        double r90995 = r90970 * r90984;
        double r90996 = r90977 * r90995;
        double r90997 = r90974 * r90970;
        double r90998 = r90988 * r90997;
        double r90999 = r90996 - r90998;
        double r91000 = r90994 + r90999;
        double r91001 = r90982 * r90984;
        double r91002 = r90975 * r91001;
        double r91003 = r90988 * r90982;
        double r91004 = r90978 * r91003;
        double r91005 = r91002 - r91004;
        double r91006 = r90981 - r91005;
        double r91007 = r90984 * r90977;
        double r91008 = r90988 * r90974;
        double r91009 = r91007 - r91008;
        double r91010 = r90970 * r91009;
        double r91011 = r91006 + r91010;
        double r91012 = r90972 ? r91000 : r91011;
        return r91012;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if j < 6.571022213056124e-50

    1. Initial program 13.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. Taylor expanded around inf 12.2

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \color{blue}{\left(t \cdot \left(j \cdot c\right) - i \cdot \left(y \cdot j\right)\right)}\]
    3. Using strategy rm
    4. Applied sub-neg12.2

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \color{blue}{\left(c \cdot z + \left(-i \cdot a\right)\right)}\right) + \left(t \cdot \left(j \cdot c\right) - i \cdot \left(y \cdot j\right)\right)\]
    5. Applied distribute-lft-in12.2

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \color{blue}{\left(b \cdot \left(c \cdot z\right) + b \cdot \left(-i \cdot a\right)\right)}\right) + \left(t \cdot \left(j \cdot c\right) - i \cdot \left(y \cdot j\right)\right)\]
    6. Simplified12.3

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

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(z \cdot \left(b \cdot c\right) + \color{blue}{\left(-i \cdot a\right) \cdot b}\right)\right) + \left(t \cdot \left(j \cdot c\right) - i \cdot \left(y \cdot j\right)\right)\]
    8. Using strategy rm
    9. Applied associate-*r*12.2

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(\color{blue}{\left(z \cdot b\right) \cdot c} + \left(-i \cdot a\right) \cdot b\right)\right) + \left(t \cdot \left(j \cdot c\right) - i \cdot \left(y \cdot j\right)\right)\]
    10. Using strategy rm
    11. Applied add-cube-cbrt12.4

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(\left(z \cdot b\right) \cdot c + \left(-i \cdot a\right) \cdot \color{blue}{\left(\left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right) \cdot \sqrt[3]{b}\right)}\right)\right) + \left(t \cdot \left(j \cdot c\right) - i \cdot \left(y \cdot j\right)\right)\]
    12. Applied associate-*r*12.4

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(\left(z \cdot b\right) \cdot c + \color{blue}{\left(\left(-i \cdot a\right) \cdot \left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right)\right) \cdot \sqrt[3]{b}}\right)\right) + \left(t \cdot \left(j \cdot c\right) - i \cdot \left(y \cdot j\right)\right)\]
    13. Simplified12.4

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

    if 6.571022213056124e-50 < j

    1. Initial program 8.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. Taylor expanded around inf 8.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;j \le 6.57102221305612443 \cdot 10^{-50}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(\left(z \cdot b\right) \cdot c + \left(\left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right) \cdot \left(-i \cdot a\right)\right) \cdot \sqrt[3]{b}\right)\right) + \left(t \cdot \left(j \cdot c\right) - i \cdot \left(y \cdot j\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(z \cdot \left(b \cdot c\right) - a \cdot \left(i \cdot b\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \end{array}\]

Reproduce

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