Average Error: 11.1 → 8.7
Time: 31.3s
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 -1.0769421787687383 \cdot 10^{+103}:\\ \;\;\;\;\left(\left(\sqrt[3]{x} \cdot \left(\left(z \cdot y - t \cdot a\right) \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)\right) + \mathsf{fma}\left(-a, t, t \cdot a\right) \cdot x\right) - \left(z \cdot c - a \cdot i\right) \cdot b\right) + \left(c \cdot t - i \cdot y\right) \cdot j\\ \mathbf{elif}\;b \le 5.584219814861132 \cdot 10^{+59}:\\ \;\;\;\;\left(c \cdot t - i \cdot y\right) \cdot j + \left(\left(x \cdot \left(z \cdot y - t \cdot a\right) + \mathsf{fma}\left(-a, t, t \cdot a\right) \cdot x\right) - \left(z \cdot \left(b \cdot c\right) + \left(b \cdot a\right) \cdot \left(-i\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(c \cdot t - i \cdot y\right) \cdot j + \left(\left(\left(\sqrt[3]{z \cdot y - t \cdot a} \cdot \sqrt[3]{z \cdot y - t \cdot a}\right) \cdot x\right) \cdot \sqrt[3]{z \cdot y - t \cdot a} - \left(z \cdot c - a \cdot i\right) \cdot b\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 -1.0769421787687383 \cdot 10^{+103}:\\
\;\;\;\;\left(\left(\sqrt[3]{x} \cdot \left(\left(z \cdot y - t \cdot a\right) \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)\right) + \mathsf{fma}\left(-a, t, t \cdot a\right) \cdot x\right) - \left(z \cdot c - a \cdot i\right) \cdot b\right) + \left(c \cdot t - i \cdot y\right) \cdot j\\

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

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r1575097 = x;
        double r1575098 = y;
        double r1575099 = z;
        double r1575100 = r1575098 * r1575099;
        double r1575101 = t;
        double r1575102 = a;
        double r1575103 = r1575101 * r1575102;
        double r1575104 = r1575100 - r1575103;
        double r1575105 = r1575097 * r1575104;
        double r1575106 = b;
        double r1575107 = c;
        double r1575108 = r1575107 * r1575099;
        double r1575109 = i;
        double r1575110 = r1575109 * r1575102;
        double r1575111 = r1575108 - r1575110;
        double r1575112 = r1575106 * r1575111;
        double r1575113 = r1575105 - r1575112;
        double r1575114 = j;
        double r1575115 = r1575107 * r1575101;
        double r1575116 = r1575109 * r1575098;
        double r1575117 = r1575115 - r1575116;
        double r1575118 = r1575114 * r1575117;
        double r1575119 = r1575113 + r1575118;
        return r1575119;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r1575120 = b;
        double r1575121 = -1.0769421787687383e+103;
        bool r1575122 = r1575120 <= r1575121;
        double r1575123 = x;
        double r1575124 = cbrt(r1575123);
        double r1575125 = z;
        double r1575126 = y;
        double r1575127 = r1575125 * r1575126;
        double r1575128 = t;
        double r1575129 = a;
        double r1575130 = r1575128 * r1575129;
        double r1575131 = r1575127 - r1575130;
        double r1575132 = r1575124 * r1575124;
        double r1575133 = r1575131 * r1575132;
        double r1575134 = r1575124 * r1575133;
        double r1575135 = -r1575129;
        double r1575136 = fma(r1575135, r1575128, r1575130);
        double r1575137 = r1575136 * r1575123;
        double r1575138 = r1575134 + r1575137;
        double r1575139 = c;
        double r1575140 = r1575125 * r1575139;
        double r1575141 = i;
        double r1575142 = r1575129 * r1575141;
        double r1575143 = r1575140 - r1575142;
        double r1575144 = r1575143 * r1575120;
        double r1575145 = r1575138 - r1575144;
        double r1575146 = r1575139 * r1575128;
        double r1575147 = r1575141 * r1575126;
        double r1575148 = r1575146 - r1575147;
        double r1575149 = j;
        double r1575150 = r1575148 * r1575149;
        double r1575151 = r1575145 + r1575150;
        double r1575152 = 5.584219814861132e+59;
        bool r1575153 = r1575120 <= r1575152;
        double r1575154 = r1575123 * r1575131;
        double r1575155 = r1575154 + r1575137;
        double r1575156 = r1575120 * r1575139;
        double r1575157 = r1575125 * r1575156;
        double r1575158 = r1575120 * r1575129;
        double r1575159 = -r1575141;
        double r1575160 = r1575158 * r1575159;
        double r1575161 = r1575157 + r1575160;
        double r1575162 = r1575155 - r1575161;
        double r1575163 = r1575150 + r1575162;
        double r1575164 = cbrt(r1575131);
        double r1575165 = r1575164 * r1575164;
        double r1575166 = r1575165 * r1575123;
        double r1575167 = r1575166 * r1575164;
        double r1575168 = r1575167 - r1575144;
        double r1575169 = r1575150 + r1575168;
        double r1575170 = r1575153 ? r1575163 : r1575169;
        double r1575171 = r1575122 ? r1575151 : r1575170;
        return r1575171;
}

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 3 regimes
  2. if b < -1.0769421787687383e+103

    1. Initial program 6.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. Using strategy rm
    3. Applied prod-diff6.1

      \[\leadsto \left(x \cdot \color{blue}{\left(\mathsf{fma}\left(y, z, -a \cdot t\right) + \mathsf{fma}\left(-a, t, a \cdot t\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-in6.1

      \[\leadsto \left(\color{blue}{\left(x \cdot \mathsf{fma}\left(y, z, -a \cdot t\right) + x \cdot \mathsf{fma}\left(-a, t, a \cdot t\right)\right)} - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    5. Simplified6.1

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

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

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

    if -1.0769421787687383e+103 < b < 5.584219814861132e+59

    1. Initial program 12.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. Using strategy rm
    3. Applied prod-diff12.7

      \[\leadsto \left(x \cdot \color{blue}{\left(\mathsf{fma}\left(y, z, -a \cdot t\right) + \mathsf{fma}\left(-a, t, a \cdot t\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-in12.7

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

      \[\leadsto \left(\left(\color{blue}{\left(z \cdot y - a \cdot t\right) \cdot x} + x \cdot \mathsf{fma}\left(-a, t, a \cdot t\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    6. Using strategy rm
    7. Applied sub-neg12.7

      \[\leadsto \left(\left(\left(z \cdot y - a \cdot t\right) \cdot x + x \cdot \mathsf{fma}\left(-a, t, a \cdot t\right)\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)\]
    8. Applied distribute-rgt-in12.7

      \[\leadsto \left(\left(\left(z \cdot y - a \cdot t\right) \cdot x + x \cdot \mathsf{fma}\left(-a, t, a \cdot t\right)\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)\]
    9. Simplified11.2

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

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

    if 5.584219814861132e+59 < b

    1. Initial program 6.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. Using strategy rm
    3. Applied add-cube-cbrt6.9

      \[\leadsto \left(x \cdot \color{blue}{\left(\left(\sqrt[3]{y \cdot z - t \cdot a} \cdot \sqrt[3]{y \cdot z - t \cdot a}\right) \cdot \sqrt[3]{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)\]
    4. Applied associate-*r*6.9

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -1.0769421787687383 \cdot 10^{+103}:\\ \;\;\;\;\left(\left(\sqrt[3]{x} \cdot \left(\left(z \cdot y - t \cdot a\right) \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)\right) + \mathsf{fma}\left(-a, t, t \cdot a\right) \cdot x\right) - \left(z \cdot c - a \cdot i\right) \cdot b\right) + \left(c \cdot t - i \cdot y\right) \cdot j\\ \mathbf{elif}\;b \le 5.584219814861132 \cdot 10^{+59}:\\ \;\;\;\;\left(c \cdot t - i \cdot y\right) \cdot j + \left(\left(x \cdot \left(z \cdot y - t \cdot a\right) + \mathsf{fma}\left(-a, t, t \cdot a\right) \cdot x\right) - \left(z \cdot \left(b \cdot c\right) + \left(b \cdot a\right) \cdot \left(-i\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(c \cdot t - i \cdot y\right) \cdot j + \left(\left(\left(\sqrt[3]{z \cdot y - t \cdot a} \cdot \sqrt[3]{z \cdot y - t \cdot a}\right) \cdot x\right) \cdot \sqrt[3]{z \cdot y - t \cdot a} - \left(z \cdot c - a \cdot i\right) \cdot b\right)\\ \end{array}\]

Reproduce

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