Average Error: 11.7 → 11.8
Time: 35.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}\;c \le -6.254283399119347 \cdot 10^{+164}:\\ \;\;\;\;\left(t \cdot j - b \cdot z\right) \cdot c - y \cdot \left(i \cdot j\right)\\ \mathbf{elif}\;c \le 5.440197505197417 \cdot 10^{+133}:\\ \;\;\;\;\mathsf{fma}\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}, x, \mathsf{fma}\left(b, a \cdot i - c \cdot z, j \cdot \left(t \cdot c - i \cdot y\right)\right)\right)\\ \mathbf{elif}\;c \le 3.3273869422015564 \cdot 10^{+275}:\\ \;\;\;\;\left(t \cdot j - b \cdot z\right) \cdot c - y \cdot \left(i \cdot j\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y \cdot z - t \cdot a, x, \mathsf{fma}\left(b, a \cdot i - c \cdot z, \left(\left(t \cdot c - i \cdot y\right) \cdot \sqrt{j}\right) \cdot \sqrt{j}\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}\;c \le -6.254283399119347 \cdot 10^{+164}:\\
\;\;\;\;\left(t \cdot j - b \cdot z\right) \cdot c - y \cdot \left(i \cdot j\right)\\

\mathbf{elif}\;c \le 5.440197505197417 \cdot 10^{+133}:\\
\;\;\;\;\mathsf{fma}\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}, x, \mathsf{fma}\left(b, a \cdot i - c \cdot z, j \cdot \left(t \cdot c - i \cdot y\right)\right)\right)\\

\mathbf{elif}\;c \le 3.3273869422015564 \cdot 10^{+275}:\\
\;\;\;\;\left(t \cdot j - b \cdot z\right) \cdot c - y \cdot \left(i \cdot j\right)\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(y \cdot z - t \cdot a, x, \mathsf{fma}\left(b, a \cdot i - c \cdot z, \left(\left(t \cdot c - i \cdot y\right) \cdot \sqrt{j}\right) \cdot \sqrt{j}\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 r3508267 = x;
        double r3508268 = y;
        double r3508269 = z;
        double r3508270 = r3508268 * r3508269;
        double r3508271 = t;
        double r3508272 = a;
        double r3508273 = r3508271 * r3508272;
        double r3508274 = r3508270 - r3508273;
        double r3508275 = r3508267 * r3508274;
        double r3508276 = b;
        double r3508277 = c;
        double r3508278 = r3508277 * r3508269;
        double r3508279 = i;
        double r3508280 = r3508279 * r3508272;
        double r3508281 = r3508278 - r3508280;
        double r3508282 = r3508276 * r3508281;
        double r3508283 = r3508275 - r3508282;
        double r3508284 = j;
        double r3508285 = r3508277 * r3508271;
        double r3508286 = r3508279 * r3508268;
        double r3508287 = r3508285 - r3508286;
        double r3508288 = r3508284 * r3508287;
        double r3508289 = r3508283 + r3508288;
        return r3508289;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r3508290 = c;
        double r3508291 = -6.254283399119347e+164;
        bool r3508292 = r3508290 <= r3508291;
        double r3508293 = t;
        double r3508294 = j;
        double r3508295 = r3508293 * r3508294;
        double r3508296 = b;
        double r3508297 = z;
        double r3508298 = r3508296 * r3508297;
        double r3508299 = r3508295 - r3508298;
        double r3508300 = r3508299 * r3508290;
        double r3508301 = y;
        double r3508302 = i;
        double r3508303 = r3508302 * r3508294;
        double r3508304 = r3508301 * r3508303;
        double r3508305 = r3508300 - r3508304;
        double r3508306 = 5.440197505197417e+133;
        bool r3508307 = r3508290 <= r3508306;
        double r3508308 = r3508301 * r3508297;
        double r3508309 = a;
        double r3508310 = r3508293 * r3508309;
        double r3508311 = r3508308 - r3508310;
        double r3508312 = cbrt(r3508311);
        double r3508313 = r3508312 * r3508312;
        double r3508314 = r3508313 * r3508312;
        double r3508315 = x;
        double r3508316 = r3508309 * r3508302;
        double r3508317 = r3508290 * r3508297;
        double r3508318 = r3508316 - r3508317;
        double r3508319 = r3508293 * r3508290;
        double r3508320 = r3508302 * r3508301;
        double r3508321 = r3508319 - r3508320;
        double r3508322 = r3508294 * r3508321;
        double r3508323 = fma(r3508296, r3508318, r3508322);
        double r3508324 = fma(r3508314, r3508315, r3508323);
        double r3508325 = 3.3273869422015564e+275;
        bool r3508326 = r3508290 <= r3508325;
        double r3508327 = sqrt(r3508294);
        double r3508328 = r3508321 * r3508327;
        double r3508329 = r3508328 * r3508327;
        double r3508330 = fma(r3508296, r3508318, r3508329);
        double r3508331 = fma(r3508311, r3508315, r3508330);
        double r3508332 = r3508326 ? r3508305 : r3508331;
        double r3508333 = r3508307 ? r3508324 : r3508332;
        double r3508334 = r3508292 ? r3508305 : r3508333;
        return r3508334;
}

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 c < -6.254283399119347e+164 or 5.440197505197417e+133 < c < 3.3273869422015564e+275

    1. Initial program 21.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. Simplified21.8

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

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

      \[\leadsto \color{blue}{t \cdot \left(j \cdot c\right) - \left(z \cdot \left(b \cdot c\right) + i \cdot \left(j \cdot y\right)\right)}\]
    6. Simplified19.5

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

    if -6.254283399119347e+164 < c < 5.440197505197417e+133

    1. Initial program 9.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. Simplified9.7

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

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

    if 3.3273869422015564e+275 < c

    1. Initial program 25.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. Simplified25.2

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;c \le -6.254283399119347 \cdot 10^{+164}:\\ \;\;\;\;\left(t \cdot j - b \cdot z\right) \cdot c - y \cdot \left(i \cdot j\right)\\ \mathbf{elif}\;c \le 5.440197505197417 \cdot 10^{+133}:\\ \;\;\;\;\mathsf{fma}\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}, x, \mathsf{fma}\left(b, a \cdot i - c \cdot z, j \cdot \left(t \cdot c - i \cdot y\right)\right)\right)\\ \mathbf{elif}\;c \le 3.3273869422015564 \cdot 10^{+275}:\\ \;\;\;\;\left(t \cdot j - b \cdot z\right) \cdot c - y \cdot \left(i \cdot j\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y \cdot z - t \cdot a, x, \mathsf{fma}\left(b, a \cdot i - c \cdot z, \left(\left(t \cdot c - i \cdot y\right) \cdot \sqrt{j}\right) \cdot \sqrt{j}\right)\right)\\ \end{array}\]

Reproduce

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