Average Error: 12.1 → 9.4
Time: 16.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}\;x \le -2.521570866819648539757429760764212266224 \cdot 10^{-25}:\\ \;\;\;\;\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(-i \cdot \left(j \cdot y\right)\right)\right)\\ \mathbf{elif}\;x \le 2.180286677279125380334828109309816397635 \cdot 10^{47}:\\ \;\;\;\;\left(\left(\left(x \cdot z\right) \cdot y + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\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[3]{j \cdot \left(c \cdot t - i \cdot y\right)} \cdot \sqrt[3]{j \cdot \left(c \cdot t - i \cdot y\right)}\right) \cdot \sqrt[3]{j \cdot \left(c \cdot t - i \cdot y\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}\;x \le -2.521570866819648539757429760764212266224 \cdot 10^{-25}:\\
\;\;\;\;\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(-i \cdot \left(j \cdot y\right)\right)\right)\\

\mathbf{elif}\;x \le 2.180286677279125380334828109309816397635 \cdot 10^{47}:\\
\;\;\;\;\left(\left(\left(x \cdot z\right) \cdot y + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\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[3]{j \cdot \left(c \cdot t - i \cdot y\right)} \cdot \sqrt[3]{j \cdot \left(c \cdot t - i \cdot y\right)}\right) \cdot \sqrt[3]{j \cdot \left(c \cdot t - i \cdot y\right)}\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r110586 = x;
        double r110587 = y;
        double r110588 = z;
        double r110589 = r110587 * r110588;
        double r110590 = t;
        double r110591 = a;
        double r110592 = r110590 * r110591;
        double r110593 = r110589 - r110592;
        double r110594 = r110586 * r110593;
        double r110595 = b;
        double r110596 = c;
        double r110597 = r110596 * r110588;
        double r110598 = i;
        double r110599 = r110598 * r110591;
        double r110600 = r110597 - r110599;
        double r110601 = r110595 * r110600;
        double r110602 = r110594 - r110601;
        double r110603 = j;
        double r110604 = r110596 * r110590;
        double r110605 = r110598 * r110587;
        double r110606 = r110604 - r110605;
        double r110607 = r110603 * r110606;
        double r110608 = r110602 + r110607;
        return r110608;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r110609 = x;
        double r110610 = -2.5215708668196485e-25;
        bool r110611 = r110609 <= r110610;
        double r110612 = y;
        double r110613 = z;
        double r110614 = r110612 * r110613;
        double r110615 = t;
        double r110616 = a;
        double r110617 = r110615 * r110616;
        double r110618 = r110614 - r110617;
        double r110619 = r110609 * r110618;
        double r110620 = b;
        double r110621 = c;
        double r110622 = r110621 * r110613;
        double r110623 = i;
        double r110624 = r110623 * r110616;
        double r110625 = r110622 - r110624;
        double r110626 = r110620 * r110625;
        double r110627 = r110619 - r110626;
        double r110628 = j;
        double r110629 = r110628 * r110621;
        double r110630 = r110615 * r110629;
        double r110631 = r110628 * r110612;
        double r110632 = r110623 * r110631;
        double r110633 = -r110632;
        double r110634 = r110630 + r110633;
        double r110635 = r110627 + r110634;
        double r110636 = 2.1802866772791254e+47;
        bool r110637 = r110609 <= r110636;
        double r110638 = r110609 * r110613;
        double r110639 = r110638 * r110612;
        double r110640 = r110609 * r110615;
        double r110641 = r110616 * r110640;
        double r110642 = -r110641;
        double r110643 = r110639 + r110642;
        double r110644 = r110643 - r110626;
        double r110645 = r110621 * r110615;
        double r110646 = r110623 * r110612;
        double r110647 = r110645 - r110646;
        double r110648 = r110628 * r110647;
        double r110649 = r110644 + r110648;
        double r110650 = cbrt(r110648);
        double r110651 = r110650 * r110650;
        double r110652 = r110651 * r110650;
        double r110653 = r110627 + r110652;
        double r110654 = r110637 ? r110649 : r110653;
        double r110655 = r110611 ? r110635 : r110654;
        return r110655;
}

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 x < -2.5215708668196485e-25

    1. Initial program 7.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 sub-neg7.1

      \[\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-in7.1

      \[\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. Simplified8.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(\color{blue}{t \cdot \left(j \cdot c\right)} + j \cdot \left(-i \cdot y\right)\right)\]
    6. Simplified8.3

      \[\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)\]

    if -2.5215708668196485e-25 < x < 2.1802866772791254e+47

    1. Initial program 15.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 sub-neg15.1

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

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

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

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

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

    if 2.1802866772791254e+47 < x

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -2.521570866819648539757429760764212266224 \cdot 10^{-25}:\\ \;\;\;\;\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(-i \cdot \left(j \cdot y\right)\right)\right)\\ \mathbf{elif}\;x \le 2.180286677279125380334828109309816397635 \cdot 10^{47}:\\ \;\;\;\;\left(\left(\left(x \cdot z\right) \cdot y + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\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[3]{j \cdot \left(c \cdot t - i \cdot y\right)} \cdot \sqrt[3]{j \cdot \left(c \cdot t - i \cdot y\right)}\right) \cdot \sqrt[3]{j \cdot \left(c \cdot t - i \cdot y\right)}\\ \end{array}\]

Reproduce

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