Average Error: 12.4 → 10.3
Time: 20.7s
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}\;j \le -2.17350619689253189401655020029257244027 \cdot 10^{117}:\\ \;\;\;\;\left(0 - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{elif}\;j \le 10277251857021880127726352545428904345600:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\left(j \cdot c\right) \cdot t + {\left(-1 \cdot \left(i \cdot \left(y \cdot j\right)\right)\right)}^{1}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\sqrt{j} \cdot \left(\sqrt{j} \cdot \left(c \cdot t\right)\right) + j \cdot \left(-i \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}\;j \le -2.17350619689253189401655020029257244027 \cdot 10^{117}:\\
\;\;\;\;\left(0 - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\

\mathbf{elif}\;j \le 10277251857021880127726352545428904345600:\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\left(j \cdot c\right) \cdot t + {\left(-1 \cdot \left(i \cdot \left(y \cdot j\right)\right)\right)}^{1}\right)\\

\mathbf{else}:\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\sqrt{j} \cdot \left(\sqrt{j} \cdot \left(c \cdot t\right)\right) + j \cdot \left(-i \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 r104417 = x;
        double r104418 = y;
        double r104419 = z;
        double r104420 = r104418 * r104419;
        double r104421 = t;
        double r104422 = a;
        double r104423 = r104421 * r104422;
        double r104424 = r104420 - r104423;
        double r104425 = r104417 * r104424;
        double r104426 = b;
        double r104427 = c;
        double r104428 = r104427 * r104419;
        double r104429 = i;
        double r104430 = r104429 * r104422;
        double r104431 = r104428 - r104430;
        double r104432 = r104426 * r104431;
        double r104433 = r104425 - r104432;
        double r104434 = j;
        double r104435 = r104427 * r104421;
        double r104436 = r104429 * r104418;
        double r104437 = r104435 - r104436;
        double r104438 = r104434 * r104437;
        double r104439 = r104433 + r104438;
        return r104439;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r104440 = j;
        double r104441 = -2.173506196892532e+117;
        bool r104442 = r104440 <= r104441;
        double r104443 = 0.0;
        double r104444 = b;
        double r104445 = c;
        double r104446 = z;
        double r104447 = r104445 * r104446;
        double r104448 = i;
        double r104449 = a;
        double r104450 = r104448 * r104449;
        double r104451 = r104447 - r104450;
        double r104452 = r104444 * r104451;
        double r104453 = r104443 - r104452;
        double r104454 = t;
        double r104455 = r104445 * r104454;
        double r104456 = y;
        double r104457 = r104448 * r104456;
        double r104458 = r104455 - r104457;
        double r104459 = r104440 * r104458;
        double r104460 = r104453 + r104459;
        double r104461 = 1.027725185702188e+40;
        bool r104462 = r104440 <= r104461;
        double r104463 = x;
        double r104464 = r104456 * r104446;
        double r104465 = r104454 * r104449;
        double r104466 = r104464 - r104465;
        double r104467 = r104463 * r104466;
        double r104468 = r104467 - r104452;
        double r104469 = r104440 * r104445;
        double r104470 = r104469 * r104454;
        double r104471 = -1.0;
        double r104472 = r104456 * r104440;
        double r104473 = r104448 * r104472;
        double r104474 = r104471 * r104473;
        double r104475 = 1.0;
        double r104476 = pow(r104474, r104475);
        double r104477 = r104470 + r104476;
        double r104478 = r104468 + r104477;
        double r104479 = sqrt(r104440);
        double r104480 = r104479 * r104455;
        double r104481 = r104479 * r104480;
        double r104482 = -r104457;
        double r104483 = r104440 * r104482;
        double r104484 = r104481 + r104483;
        double r104485 = r104468 + r104484;
        double r104486 = r104462 ? r104478 : r104485;
        double r104487 = r104442 ? r104460 : r104486;
        return r104487;
}

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 j < -2.173506196892532e+117

    1. Initial program 6.4

      \[\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 0 14.3

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

    if -2.173506196892532e+117 < j < 1.027725185702188e+40

    1. Initial program 14.5

      \[\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-neg14.5

      \[\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-in14.5

      \[\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. Using strategy rm
    6. Applied pow114.5

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(j \cdot \left(c \cdot t\right) + j \cdot \color{blue}{{\left(-i \cdot y\right)}^{1}}\right)\]
    7. Applied pow114.5

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(j \cdot \left(c \cdot t\right) + \color{blue}{{j}^{1}} \cdot {\left(-i \cdot y\right)}^{1}\right)\]
    8. Applied pow-prod-down14.5

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(j \cdot \left(c \cdot t\right) + \color{blue}{{\left(j \cdot \left(-i \cdot y\right)\right)}^{1}}\right)\]
    9. 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(j \cdot \left(c \cdot t\right) + {\color{blue}{\left(-1 \cdot \left(i \cdot \left(y \cdot j\right)\right)\right)}}^{1}\right)\]
    10. Using strategy rm
    11. Applied associate-*r*10.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(\color{blue}{\left(j \cdot c\right) \cdot t} + {\left(-1 \cdot \left(i \cdot \left(y \cdot j\right)\right)\right)}^{1}\right)\]

    if 1.027725185702188e+40 < j

    1. Initial program 6.5

      \[\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-neg6.5

      \[\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-in6.5

      \[\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. Using strategy rm
    6. Applied add-sqr-sqrt6.5

      \[\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}{\left(\sqrt{j} \cdot \sqrt{j}\right)} \cdot \left(c \cdot t\right) + j \cdot \left(-i \cdot y\right)\right)\]
    7. Applied associate-*l*6.5

      \[\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}{\sqrt{j} \cdot \left(\sqrt{j} \cdot \left(c \cdot t\right)\right)} + j \cdot \left(-i \cdot y\right)\right)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification10.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;j \le -2.17350619689253189401655020029257244027 \cdot 10^{117}:\\ \;\;\;\;\left(0 - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{elif}\;j \le 10277251857021880127726352545428904345600:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\left(j \cdot c\right) \cdot t + {\left(-1 \cdot \left(i \cdot \left(y \cdot j\right)\right)\right)}^{1}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\sqrt{j} \cdot \left(\sqrt{j} \cdot \left(c \cdot t\right)\right) + j \cdot \left(-i \cdot y\right)\right)\\ \end{array}\]

Reproduce

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