Average Error: 11.9 → 11.3
Time: 13.9s
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 -4.8165491942895943 \cdot 10^{-263}:\\ \;\;\;\;\mathsf{fma}\left(i \cdot a - c \cdot z, b, \mathsf{fma}\left(j, c \cdot t - i \cdot y, \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}\right)\right)\\ \mathbf{elif}\;j \le 1.667884624892982 \cdot 10^{-102}:\\ \;\;\;\;\mathsf{fma}\left(i \cdot a - c \cdot z, b, y \cdot \left(x \cdot z - i \cdot j\right) - a \cdot \left(x \cdot t\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(i \cdot a - c \cdot z, b, \mathsf{fma}\left(j, c \cdot t - i \cdot y, \left(y \cdot z\right) \cdot x + \left(-t \cdot \left(x \cdot a\right)\right)\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 -4.8165491942895943 \cdot 10^{-263}:\\
\;\;\;\;\mathsf{fma}\left(i \cdot a - c \cdot z, b, \mathsf{fma}\left(j, c \cdot t - i \cdot y, \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}\right)\right)\\

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

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(i \cdot a - c \cdot z, b, \mathsf{fma}\left(j, c \cdot t - i \cdot y, \left(y \cdot z\right) \cdot x + \left(-t \cdot \left(x \cdot a\right)\right)\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 r117538 = x;
        double r117539 = y;
        double r117540 = z;
        double r117541 = r117539 * r117540;
        double r117542 = t;
        double r117543 = a;
        double r117544 = r117542 * r117543;
        double r117545 = r117541 - r117544;
        double r117546 = r117538 * r117545;
        double r117547 = b;
        double r117548 = c;
        double r117549 = r117548 * r117540;
        double r117550 = i;
        double r117551 = r117550 * r117543;
        double r117552 = r117549 - r117551;
        double r117553 = r117547 * r117552;
        double r117554 = r117546 - r117553;
        double r117555 = j;
        double r117556 = r117548 * r117542;
        double r117557 = r117550 * r117539;
        double r117558 = r117556 - r117557;
        double r117559 = r117555 * r117558;
        double r117560 = r117554 + r117559;
        return r117560;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r117561 = j;
        double r117562 = -4.816549194289594e-263;
        bool r117563 = r117561 <= r117562;
        double r117564 = i;
        double r117565 = a;
        double r117566 = r117564 * r117565;
        double r117567 = c;
        double r117568 = z;
        double r117569 = r117567 * r117568;
        double r117570 = r117566 - r117569;
        double r117571 = b;
        double r117572 = t;
        double r117573 = r117567 * r117572;
        double r117574 = y;
        double r117575 = r117564 * r117574;
        double r117576 = r117573 - r117575;
        double r117577 = x;
        double r117578 = r117574 * r117568;
        double r117579 = r117572 * r117565;
        double r117580 = r117578 - r117579;
        double r117581 = cbrt(r117580);
        double r117582 = r117581 * r117581;
        double r117583 = r117577 * r117582;
        double r117584 = r117583 * r117581;
        double r117585 = fma(r117561, r117576, r117584);
        double r117586 = fma(r117570, r117571, r117585);
        double r117587 = 1.667884624892982e-102;
        bool r117588 = r117561 <= r117587;
        double r117589 = r117577 * r117568;
        double r117590 = r117564 * r117561;
        double r117591 = r117589 - r117590;
        double r117592 = r117574 * r117591;
        double r117593 = r117577 * r117572;
        double r117594 = r117565 * r117593;
        double r117595 = r117592 - r117594;
        double r117596 = fma(r117570, r117571, r117595);
        double r117597 = r117578 * r117577;
        double r117598 = r117577 * r117565;
        double r117599 = r117572 * r117598;
        double r117600 = -r117599;
        double r117601 = r117597 + r117600;
        double r117602 = fma(r117561, r117576, r117601);
        double r117603 = fma(r117570, r117571, r117602);
        double r117604 = r117588 ? r117596 : r117603;
        double r117605 = r117563 ? r117586 : r117604;
        return r117605;
}

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 j < -4.816549194289594e-263

    1. Initial program 11.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. Simplified11.1

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

      \[\leadsto \mathsf{fma}\left(i \cdot a - c \cdot z, b, \mathsf{fma}\left(j, c \cdot t - i \cdot y, 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)}\right)\right)\]
    5. Applied associate-*r*11.4

      \[\leadsto \mathsf{fma}\left(i \cdot a - c \cdot z, b, \mathsf{fma}\left(j, c \cdot t - i \cdot y, \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}}\right)\right)\]

    if -4.816549194289594e-263 < j < 1.667884624892982e-102

    1. Initial program 16.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. Simplified16.7

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

      \[\leadsto \mathsf{fma}\left(i \cdot a - c \cdot z, b, \mathsf{fma}\left(j, c \cdot t - i \cdot y, 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)}\right)\right)\]
    5. Applied associate-*r*17.0

      \[\leadsto \mathsf{fma}\left(i \cdot a - c \cdot z, b, \mathsf{fma}\left(j, c \cdot t - i \cdot y, \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}}\right)\right)\]
    6. Using strategy rm
    7. Applied add-cube-cbrt17.0

      \[\leadsto \mathsf{fma}\left(i \cdot a - c \cdot z, b, \mathsf{fma}\left(j, c \cdot t - i \cdot y, \left(x \cdot \left(\sqrt[3]{y \cdot z - t \cdot a} \cdot \sqrt[3]{\color{blue}{\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)\right) \cdot \sqrt[3]{y \cdot z - t \cdot a}\right)\right)\]
    8. Applied cbrt-prod17.1

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

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

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

    if 1.667884624892982e-102 < j

    1. Initial program 8.6

      \[\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. Simplified8.6

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

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

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

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

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

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

Reproduce

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