Average Error: 12.0 → 7.6
Time: 10.1s
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}\;\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) = -\infty \lor \neg \left(\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) \le 4.999599852208662350331065524329530205172 \cdot 10^{305}\right):\\ \;\;\;\;\left(t \cdot \left(j \cdot c\right) + a \cdot \left(i \cdot b\right)\right) - i \cdot \left(j \cdot y\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right) \cdot \left(\sqrt[3]{\sqrt[3]{b} \cdot \sqrt[3]{b}} \cdot \left(\sqrt[3]{\sqrt[3]{b}} \cdot \left(c \cdot z - i \cdot a\right)\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}\;\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) = -\infty \lor \neg \left(\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) \le 4.999599852208662350331065524329530205172 \cdot 10^{305}\right):\\
\;\;\;\;\left(t \cdot \left(j \cdot c\right) + a \cdot \left(i \cdot b\right)\right) - i \cdot \left(j \cdot y\right)\\

\mathbf{else}:\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right) \cdot \left(\sqrt[3]{\sqrt[3]{b} \cdot \sqrt[3]{b}} \cdot \left(\sqrt[3]{\sqrt[3]{b}} \cdot \left(c \cdot z - i \cdot a\right)\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 r116885 = x;
        double r116886 = y;
        double r116887 = z;
        double r116888 = r116886 * r116887;
        double r116889 = t;
        double r116890 = a;
        double r116891 = r116889 * r116890;
        double r116892 = r116888 - r116891;
        double r116893 = r116885 * r116892;
        double r116894 = b;
        double r116895 = c;
        double r116896 = r116895 * r116887;
        double r116897 = i;
        double r116898 = r116897 * r116890;
        double r116899 = r116896 - r116898;
        double r116900 = r116894 * r116899;
        double r116901 = r116893 - r116900;
        double r116902 = j;
        double r116903 = r116895 * r116889;
        double r116904 = r116897 * r116886;
        double r116905 = r116903 - r116904;
        double r116906 = r116902 * r116905;
        double r116907 = r116901 + r116906;
        return r116907;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r116908 = x;
        double r116909 = y;
        double r116910 = z;
        double r116911 = r116909 * r116910;
        double r116912 = t;
        double r116913 = a;
        double r116914 = r116912 * r116913;
        double r116915 = r116911 - r116914;
        double r116916 = r116908 * r116915;
        double r116917 = b;
        double r116918 = c;
        double r116919 = r116918 * r116910;
        double r116920 = i;
        double r116921 = r116920 * r116913;
        double r116922 = r116919 - r116921;
        double r116923 = r116917 * r116922;
        double r116924 = r116916 - r116923;
        double r116925 = j;
        double r116926 = r116918 * r116912;
        double r116927 = r116920 * r116909;
        double r116928 = r116926 - r116927;
        double r116929 = r116925 * r116928;
        double r116930 = r116924 + r116929;
        double r116931 = -inf.0;
        bool r116932 = r116930 <= r116931;
        double r116933 = 4.999599852208662e+305;
        bool r116934 = r116930 <= r116933;
        double r116935 = !r116934;
        bool r116936 = r116932 || r116935;
        double r116937 = r116925 * r116918;
        double r116938 = r116912 * r116937;
        double r116939 = r116920 * r116917;
        double r116940 = r116913 * r116939;
        double r116941 = r116938 + r116940;
        double r116942 = r116925 * r116909;
        double r116943 = r116920 * r116942;
        double r116944 = r116941 - r116943;
        double r116945 = cbrt(r116917);
        double r116946 = r116945 * r116945;
        double r116947 = cbrt(r116946);
        double r116948 = cbrt(r116945);
        double r116949 = r116948 * r116922;
        double r116950 = r116947 * r116949;
        double r116951 = r116946 * r116950;
        double r116952 = r116916 - r116951;
        double r116953 = r116952 + r116929;
        double r116954 = r116936 ? r116944 : r116953;
        return r116954;
}

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 (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))) < -inf.0 or 4.999599852208662e+305 < (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y))))

    1. Initial program 62.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 36.2

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

    if -inf.0 < (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))) < 4.999599852208662e+305

    1. Initial program 0.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 add-cube-cbrt1.1

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\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) = -\infty \lor \neg \left(\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) \le 4.999599852208662350331065524329530205172 \cdot 10^{305}\right):\\ \;\;\;\;\left(t \cdot \left(j \cdot c\right) + a \cdot \left(i \cdot b\right)\right) - i \cdot \left(j \cdot y\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right) \cdot \left(\sqrt[3]{\sqrt[3]{b} \cdot \sqrt[3]{b}} \cdot \left(\sqrt[3]{\sqrt[3]{b}} \cdot \left(c \cdot z - i \cdot a\right)\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020002 
(FPCore (x y z t a b c i j)
  :name "Linear.Matrix:det33 from linear-1.19.1.3"
  :precision binary64
  (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))