Average Error: 11.7 → 10.2
Time: 36.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}\;c \le -1.8579902760796692 \cdot 10^{-67}:\\ \;\;\;\;\left(\left(y \cdot z - t \cdot a\right) \cdot x - \left(\left(-i\right) \cdot \left(b \cdot a\right) + \left(b \cdot z\right) \cdot c\right)\right) + j \cdot \left(t \cdot c - y \cdot i\right)\\ \mathbf{elif}\;c \le 1004446610222.8837:\\ \;\;\;\;\left(\left(y \cdot z - t \cdot a\right) \cdot x - \left(z \cdot \left(b \cdot c\right) + \left(-b\right) \cdot \left(i \cdot a\right)\right)\right) + j \cdot \left(t \cdot c - y \cdot i\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(y \cdot z - t \cdot a\right) \cdot x - \left(\left(-i\right) \cdot \left(b \cdot a\right) + \left(b \cdot z\right) \cdot c\right)\right) + j \cdot \left(t \cdot c - y \cdot i\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}\;c \le -1.8579902760796692 \cdot 10^{-67}:\\
\;\;\;\;\left(\left(y \cdot z - t \cdot a\right) \cdot x - \left(\left(-i\right) \cdot \left(b \cdot a\right) + \left(b \cdot z\right) \cdot c\right)\right) + j \cdot \left(t \cdot c - y \cdot i\right)\\

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

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r3171926 = x;
        double r3171927 = y;
        double r3171928 = z;
        double r3171929 = r3171927 * r3171928;
        double r3171930 = t;
        double r3171931 = a;
        double r3171932 = r3171930 * r3171931;
        double r3171933 = r3171929 - r3171932;
        double r3171934 = r3171926 * r3171933;
        double r3171935 = b;
        double r3171936 = c;
        double r3171937 = r3171936 * r3171928;
        double r3171938 = i;
        double r3171939 = r3171938 * r3171931;
        double r3171940 = r3171937 - r3171939;
        double r3171941 = r3171935 * r3171940;
        double r3171942 = r3171934 - r3171941;
        double r3171943 = j;
        double r3171944 = r3171936 * r3171930;
        double r3171945 = r3171938 * r3171927;
        double r3171946 = r3171944 - r3171945;
        double r3171947 = r3171943 * r3171946;
        double r3171948 = r3171942 + r3171947;
        return r3171948;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r3171949 = c;
        double r3171950 = -1.8579902760796692e-67;
        bool r3171951 = r3171949 <= r3171950;
        double r3171952 = y;
        double r3171953 = z;
        double r3171954 = r3171952 * r3171953;
        double r3171955 = t;
        double r3171956 = a;
        double r3171957 = r3171955 * r3171956;
        double r3171958 = r3171954 - r3171957;
        double r3171959 = x;
        double r3171960 = r3171958 * r3171959;
        double r3171961 = i;
        double r3171962 = -r3171961;
        double r3171963 = b;
        double r3171964 = r3171963 * r3171956;
        double r3171965 = r3171962 * r3171964;
        double r3171966 = r3171963 * r3171953;
        double r3171967 = r3171966 * r3171949;
        double r3171968 = r3171965 + r3171967;
        double r3171969 = r3171960 - r3171968;
        double r3171970 = j;
        double r3171971 = r3171955 * r3171949;
        double r3171972 = r3171952 * r3171961;
        double r3171973 = r3171971 - r3171972;
        double r3171974 = r3171970 * r3171973;
        double r3171975 = r3171969 + r3171974;
        double r3171976 = 1004446610222.8837;
        bool r3171977 = r3171949 <= r3171976;
        double r3171978 = r3171963 * r3171949;
        double r3171979 = r3171953 * r3171978;
        double r3171980 = -r3171963;
        double r3171981 = r3171961 * r3171956;
        double r3171982 = r3171980 * r3171981;
        double r3171983 = r3171979 + r3171982;
        double r3171984 = r3171960 - r3171983;
        double r3171985 = r3171984 + r3171974;
        double r3171986 = r3171977 ? r3171985 : r3171975;
        double r3171987 = r3171951 ? r3171975 : r3171986;
        return r3171987;
}

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 c < -1.8579902760796692e-67 or 1004446610222.8837 < c

    1. Initial program 15.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. Using strategy rm
    3. Applied sub-neg15.3

      \[\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) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    4. Applied distribute-rgt-in15.3

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \color{blue}{\left(\left(c \cdot z\right) \cdot b + \left(-i \cdot a\right) \cdot b\right)}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    5. Using strategy rm
    6. Applied distribute-lft-neg-in15.3

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(\left(c \cdot z\right) \cdot b + \color{blue}{\left(\left(-i\right) \cdot a\right)} \cdot b\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    7. Applied associate-*l*15.2

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

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

    if -1.8579902760796692e-67 < c < 1004446610222.8837

    1. Initial program 8.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. Using strategy rm
    3. Applied sub-neg8.8

      \[\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) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    4. Applied distribute-rgt-in8.8

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \color{blue}{\left(\left(c \cdot z\right) \cdot b + \left(-i \cdot a\right) \cdot b\right)}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    5. Taylor expanded around -inf 8.7

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

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

Reproduce

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