Average Error: 12.0 → 12.5
Time: 28.9s
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 -6.872728724887805 \cdot 10^{-192}:\\ \;\;\;\;\mathsf{fma}\left(\left(\sqrt[3]{i \cdot a - c \cdot z} \cdot \left(\sqrt[3]{i \cdot a - c \cdot z} \cdot \sqrt[3]{i \cdot a - c \cdot z}\right)\right), b, \left(\mathsf{fma}\left(\left(c \cdot t - y \cdot i\right), j, \left(\left(\left(y \cdot z - a \cdot t\right) \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)\right) \cdot \sqrt[3]{x}\right)\right)\right)\right)\\ \mathbf{elif}\;b \le 7.068768060452249 \cdot 10^{-262}:\\ \;\;\;\;\mathsf{fma}\left(0, b, \left(\mathsf{fma}\left(\left(c \cdot t - y \cdot i\right), j, \left(\left(y \cdot z - a \cdot t\right) \cdot x\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\left(\sqrt[3]{i \cdot a - c \cdot z} \cdot \left(\sqrt[3]{i \cdot a - c \cdot z} \cdot \sqrt[3]{i \cdot a - c \cdot z}\right)\right), b, \left(\mathsf{fma}\left(\left(c \cdot t - y \cdot i\right), j, \left(\left(\left(y \cdot z - a \cdot t\right) \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)\right) \cdot \sqrt[3]{x}\right)\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 -6.872728724887805 \cdot 10^{-192}:\\
\;\;\;\;\mathsf{fma}\left(\left(\sqrt[3]{i \cdot a - c \cdot z} \cdot \left(\sqrt[3]{i \cdot a - c \cdot z} \cdot \sqrt[3]{i \cdot a - c \cdot z}\right)\right), b, \left(\mathsf{fma}\left(\left(c \cdot t - y \cdot i\right), j, \left(\left(\left(y \cdot z - a \cdot t\right) \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)\right) \cdot \sqrt[3]{x}\right)\right)\right)\right)\\

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

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\left(\sqrt[3]{i \cdot a - c \cdot z} \cdot \left(\sqrt[3]{i \cdot a - c \cdot z} \cdot \sqrt[3]{i \cdot a - c \cdot z}\right)\right), b, \left(\mathsf{fma}\left(\left(c \cdot t - y \cdot i\right), j, \left(\left(\left(y \cdot z - a \cdot t\right) \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)\right) \cdot \sqrt[3]{x}\right)\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 r3002829 = x;
        double r3002830 = y;
        double r3002831 = z;
        double r3002832 = r3002830 * r3002831;
        double r3002833 = t;
        double r3002834 = a;
        double r3002835 = r3002833 * r3002834;
        double r3002836 = r3002832 - r3002835;
        double r3002837 = r3002829 * r3002836;
        double r3002838 = b;
        double r3002839 = c;
        double r3002840 = r3002839 * r3002831;
        double r3002841 = i;
        double r3002842 = r3002841 * r3002834;
        double r3002843 = r3002840 - r3002842;
        double r3002844 = r3002838 * r3002843;
        double r3002845 = r3002837 - r3002844;
        double r3002846 = j;
        double r3002847 = r3002839 * r3002833;
        double r3002848 = r3002841 * r3002830;
        double r3002849 = r3002847 - r3002848;
        double r3002850 = r3002846 * r3002849;
        double r3002851 = r3002845 + r3002850;
        return r3002851;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r3002852 = b;
        double r3002853 = -6.872728724887805e-192;
        bool r3002854 = r3002852 <= r3002853;
        double r3002855 = i;
        double r3002856 = a;
        double r3002857 = r3002855 * r3002856;
        double r3002858 = c;
        double r3002859 = z;
        double r3002860 = r3002858 * r3002859;
        double r3002861 = r3002857 - r3002860;
        double r3002862 = cbrt(r3002861);
        double r3002863 = r3002862 * r3002862;
        double r3002864 = r3002862 * r3002863;
        double r3002865 = t;
        double r3002866 = r3002858 * r3002865;
        double r3002867 = y;
        double r3002868 = r3002867 * r3002855;
        double r3002869 = r3002866 - r3002868;
        double r3002870 = j;
        double r3002871 = r3002867 * r3002859;
        double r3002872 = r3002856 * r3002865;
        double r3002873 = r3002871 - r3002872;
        double r3002874 = x;
        double r3002875 = cbrt(r3002874);
        double r3002876 = r3002875 * r3002875;
        double r3002877 = r3002873 * r3002876;
        double r3002878 = r3002877 * r3002875;
        double r3002879 = fma(r3002869, r3002870, r3002878);
        double r3002880 = fma(r3002864, r3002852, r3002879);
        double r3002881 = 7.068768060452249e-262;
        bool r3002882 = r3002852 <= r3002881;
        double r3002883 = 0.0;
        double r3002884 = r3002873 * r3002874;
        double r3002885 = fma(r3002869, r3002870, r3002884);
        double r3002886 = fma(r3002883, r3002852, r3002885);
        double r3002887 = r3002882 ? r3002886 : r3002880;
        double r3002888 = r3002854 ? r3002880 : r3002887;
        return r3002888;
}

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 2 regimes
  2. if b < -6.872728724887805e-192 or 7.068768060452249e-262 < b

    1. Initial program 11.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. Simplified11.2

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

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

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

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

    if -6.872728724887805e-192 < b < 7.068768060452249e-262

    1. Initial program 15.9

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(\left(i \cdot a - z \cdot c\right), b, \left(\mathsf{fma}\left(\left(t \cdot c - y \cdot i\right), j, \left(\left(z \cdot y - t \cdot a\right) \cdot x\right)\right)\right)\right)}\]
    3. Taylor expanded around 0 16.2

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

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

Reproduce

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