Average Error: 12.4 → 10.0
Time: 7.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}\;x \le -3.988825475455037498549084748882071237206 \cdot 10^{-159} \lor \neg \left(x \le 8.590299919376646895424917696537023407421 \cdot 10^{46}\right):\\ \;\;\;\;\left(\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z\right)\right) + x \cdot \left(-t \cdot a\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(x \cdot y\right) \cdot z + -1 \cdot \left(a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\sqrt[3]{j \cdot \left(c \cdot t - i \cdot y\right)} \cdot \sqrt[3]{j \cdot \left(c \cdot t - i \cdot y\right)}\right) \cdot \sqrt[3]{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}\;x \le -3.988825475455037498549084748882071237206 \cdot 10^{-159} \lor \neg \left(x \le 8.590299919376646895424917696537023407421 \cdot 10^{46}\right):\\
\;\;\;\;\left(\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z\right)\right) + x \cdot \left(-t \cdot a\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(x \cdot y\right) \cdot z + -1 \cdot \left(a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\sqrt[3]{j \cdot \left(c \cdot t - i \cdot y\right)} \cdot \sqrt[3]{j \cdot \left(c \cdot t - i \cdot y\right)}\right) \cdot \sqrt[3]{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 r89845 = x;
        double r89846 = y;
        double r89847 = z;
        double r89848 = r89846 * r89847;
        double r89849 = t;
        double r89850 = a;
        double r89851 = r89849 * r89850;
        double r89852 = r89848 - r89851;
        double r89853 = r89845 * r89852;
        double r89854 = b;
        double r89855 = c;
        double r89856 = r89855 * r89847;
        double r89857 = i;
        double r89858 = r89857 * r89850;
        double r89859 = r89856 - r89858;
        double r89860 = r89854 * r89859;
        double r89861 = r89853 - r89860;
        double r89862 = j;
        double r89863 = r89855 * r89849;
        double r89864 = r89857 * r89846;
        double r89865 = r89863 - r89864;
        double r89866 = r89862 * r89865;
        double r89867 = r89861 + r89866;
        return r89867;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r89868 = x;
        double r89869 = -3.9888254754550375e-159;
        bool r89870 = r89868 <= r89869;
        double r89871 = 8.590299919376647e+46;
        bool r89872 = r89868 <= r89871;
        double r89873 = !r89872;
        bool r89874 = r89870 || r89873;
        double r89875 = cbrt(r89868);
        double r89876 = r89875 * r89875;
        double r89877 = y;
        double r89878 = z;
        double r89879 = r89877 * r89878;
        double r89880 = r89875 * r89879;
        double r89881 = r89876 * r89880;
        double r89882 = t;
        double r89883 = a;
        double r89884 = r89882 * r89883;
        double r89885 = -r89884;
        double r89886 = r89868 * r89885;
        double r89887 = r89881 + r89886;
        double r89888 = b;
        double r89889 = c;
        double r89890 = r89889 * r89878;
        double r89891 = i;
        double r89892 = r89891 * r89883;
        double r89893 = r89890 - r89892;
        double r89894 = r89888 * r89893;
        double r89895 = r89887 - r89894;
        double r89896 = j;
        double r89897 = r89889 * r89882;
        double r89898 = r89891 * r89877;
        double r89899 = r89897 - r89898;
        double r89900 = r89896 * r89899;
        double r89901 = r89895 + r89900;
        double r89902 = r89868 * r89877;
        double r89903 = r89902 * r89878;
        double r89904 = -1.0;
        double r89905 = r89868 * r89882;
        double r89906 = r89883 * r89905;
        double r89907 = r89904 * r89906;
        double r89908 = r89903 + r89907;
        double r89909 = r89908 - r89894;
        double r89910 = cbrt(r89900);
        double r89911 = r89910 * r89910;
        double r89912 = r89911 * r89910;
        double r89913 = r89909 + r89912;
        double r89914 = r89874 ? r89901 : r89913;
        return r89914;
}

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 < -3.9888254754550375e-159 or 8.590299919376647e+46 < x

    1. Initial program 9.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. Using strategy rm
    3. Applied sub-neg9.2

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

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

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

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

    if -3.9888254754550375e-159 < x < 8.590299919376647e+46

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

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

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

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

      \[\leadsto \left(\left(\left(x \cdot y\right) \cdot z + \color{blue}{-1 \cdot \left(a \cdot \left(x \cdot t\right)\right)}\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    8. Using strategy rm
    9. Applied add-cube-cbrt10.6

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

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

Reproduce

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