Average Error: 12.3 → 13.7
Time: 26.5s
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}\;i \le -9.80589968561863549466493075832164342018 \cdot 10^{181}:\\ \;\;\;\;a \cdot \left(i \cdot b\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{elif}\;i \le -6.366729464959375073563677277112802819254 \cdot 10^{-234} \lor \neg \left(i \le 2.197843410170811163538252044278555600049 \cdot 10^{-153}\right):\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(z \cdot \left(b \cdot c\right) + \left(-i \cdot a\right) \cdot b\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-\left(i \cdot j\right) \cdot y\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(y \cdot z\right) \cdot x + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-\left(i \cdot j\right) \cdot y\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}\;i \le -9.80589968561863549466493075832164342018 \cdot 10^{181}:\\
\;\;\;\;a \cdot \left(i \cdot b\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\

\mathbf{elif}\;i \le -6.366729464959375073563677277112802819254 \cdot 10^{-234} \lor \neg \left(i \le 2.197843410170811163538252044278555600049 \cdot 10^{-153}\right):\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(z \cdot \left(b \cdot c\right) + \left(-i \cdot a\right) \cdot b\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-\left(i \cdot j\right) \cdot y\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(y \cdot z\right) \cdot x + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-\left(i \cdot j\right) \cdot y\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 r93381 = x;
        double r93382 = y;
        double r93383 = z;
        double r93384 = r93382 * r93383;
        double r93385 = t;
        double r93386 = a;
        double r93387 = r93385 * r93386;
        double r93388 = r93384 - r93387;
        double r93389 = r93381 * r93388;
        double r93390 = b;
        double r93391 = c;
        double r93392 = r93391 * r93383;
        double r93393 = i;
        double r93394 = r93393 * r93386;
        double r93395 = r93392 - r93394;
        double r93396 = r93390 * r93395;
        double r93397 = r93389 - r93396;
        double r93398 = j;
        double r93399 = r93391 * r93385;
        double r93400 = r93393 * r93382;
        double r93401 = r93399 - r93400;
        double r93402 = r93398 * r93401;
        double r93403 = r93397 + r93402;
        return r93403;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r93404 = i;
        double r93405 = -9.805899685618635e+181;
        bool r93406 = r93404 <= r93405;
        double r93407 = a;
        double r93408 = b;
        double r93409 = r93404 * r93408;
        double r93410 = r93407 * r93409;
        double r93411 = j;
        double r93412 = c;
        double r93413 = t;
        double r93414 = r93412 * r93413;
        double r93415 = y;
        double r93416 = r93404 * r93415;
        double r93417 = r93414 - r93416;
        double r93418 = r93411 * r93417;
        double r93419 = r93410 + r93418;
        double r93420 = -6.366729464959375e-234;
        bool r93421 = r93404 <= r93420;
        double r93422 = 2.1978434101708112e-153;
        bool r93423 = r93404 <= r93422;
        double r93424 = !r93423;
        bool r93425 = r93421 || r93424;
        double r93426 = x;
        double r93427 = z;
        double r93428 = r93415 * r93427;
        double r93429 = r93413 * r93407;
        double r93430 = r93428 - r93429;
        double r93431 = r93426 * r93430;
        double r93432 = r93408 * r93412;
        double r93433 = r93427 * r93432;
        double r93434 = r93404 * r93407;
        double r93435 = -r93434;
        double r93436 = r93435 * r93408;
        double r93437 = r93433 + r93436;
        double r93438 = r93431 - r93437;
        double r93439 = r93411 * r93412;
        double r93440 = r93413 * r93439;
        double r93441 = r93404 * r93411;
        double r93442 = r93441 * r93415;
        double r93443 = -r93442;
        double r93444 = r93440 + r93443;
        double r93445 = r93438 + r93444;
        double r93446 = r93428 * r93426;
        double r93447 = r93426 * r93413;
        double r93448 = r93407 * r93447;
        double r93449 = -r93448;
        double r93450 = r93446 + r93449;
        double r93451 = r93412 * r93427;
        double r93452 = r93451 - r93434;
        double r93453 = r93408 * r93452;
        double r93454 = r93450 - r93453;
        double r93455 = r93454 + r93444;
        double r93456 = r93425 ? r93445 : r93455;
        double r93457 = r93406 ? r93419 : r93456;
        return r93457;
}

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 3 regimes
  2. if i < -9.805899685618635e+181

    1. Initial program 24.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. Taylor expanded around inf 29.8

      \[\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)}\]
    3. Simplified35.5

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

    if -9.805899685618635e+181 < i < -6.366729464959375e-234 or 2.1978434101708112e-153 < i

    1. Initial program 12.3

      \[\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-neg12.3

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

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

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

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

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

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

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

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

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

    if -6.366729464959375e-234 < i < 2.1978434101708112e-153

    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. Using strategy rm
    3. Applied sub-neg9.7

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

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

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

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

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-\color{blue}{\left(i \cdot j\right) \cdot y}\right)\right)\]
    9. Using strategy rm
    10. Applied sub-neg10.7

      \[\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) + \left(t \cdot \left(j \cdot c\right) + \left(-\left(i \cdot j\right) \cdot y\right)\right)\]
    11. Applied distribute-lft-in10.7

      \[\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) + \left(t \cdot \left(j \cdot c\right) + \left(-\left(i \cdot j\right) \cdot y\right)\right)\]
    12. Simplified10.7

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;i \le -9.80589968561863549466493075832164342018 \cdot 10^{181}:\\ \;\;\;\;a \cdot \left(i \cdot b\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{elif}\;i \le -6.366729464959375073563677277112802819254 \cdot 10^{-234} \lor \neg \left(i \le 2.197843410170811163538252044278555600049 \cdot 10^{-153}\right):\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(z \cdot \left(b \cdot c\right) + \left(-i \cdot a\right) \cdot b\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-\left(i \cdot j\right) \cdot y\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(y \cdot z\right) \cdot x + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-\left(i \cdot j\right) \cdot y\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019304 +o rules:numerics
(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)))))