Average Error: 12.1 → 11.0
Time: 33.4s
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}\;t \le -8.726925738034539270507380773704722857084 \cdot 10^{-133} \lor \neg \left(t \le 5.076318876201314174297201710312870570435 \cdot 10^{-117}\right):\\ \;\;\;\;\mathsf{fma}\left(x, y \cdot z - t \cdot a, b \cdot \left(i \cdot a - c \cdot z\right) + \left(\left(j \cdot c\right) \cdot t + \left(-y \cdot \left(i \cdot j\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt[3]{\mathsf{fma}\left(x, y \cdot z - t \cdot a, \mathsf{fma}\left(b, i \cdot a - c \cdot z, j \cdot \left(c \cdot t - i \cdot y\right)\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(x, y \cdot z - t \cdot a, \mathsf{fma}\left(b, i \cdot a - c \cdot z, j \cdot \left(c \cdot t - i \cdot y\right)\right)\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(x, y \cdot z - t \cdot a, \mathsf{fma}\left(b, i \cdot a - c \cdot z, j \cdot \left(c \cdot t - i \cdot y\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}\;t \le -8.726925738034539270507380773704722857084 \cdot 10^{-133} \lor \neg \left(t \le 5.076318876201314174297201710312870570435 \cdot 10^{-117}\right):\\
\;\;\;\;\mathsf{fma}\left(x, y \cdot z - t \cdot a, b \cdot \left(i \cdot a - c \cdot z\right) + \left(\left(j \cdot c\right) \cdot t + \left(-y \cdot \left(i \cdot j\right)\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\sqrt[3]{\mathsf{fma}\left(x, y \cdot z - t \cdot a, \mathsf{fma}\left(b, i \cdot a - c \cdot z, j \cdot \left(c \cdot t - i \cdot y\right)\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(x, y \cdot z - t \cdot a, \mathsf{fma}\left(b, i \cdot a - c \cdot z, j \cdot \left(c \cdot t - i \cdot y\right)\right)\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(x, y \cdot z - t \cdot a, \mathsf{fma}\left(b, i \cdot a - c \cdot z, j \cdot \left(c \cdot t - i \cdot y\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 r103276 = x;
        double r103277 = y;
        double r103278 = z;
        double r103279 = r103277 * r103278;
        double r103280 = t;
        double r103281 = a;
        double r103282 = r103280 * r103281;
        double r103283 = r103279 - r103282;
        double r103284 = r103276 * r103283;
        double r103285 = b;
        double r103286 = c;
        double r103287 = r103286 * r103278;
        double r103288 = i;
        double r103289 = r103288 * r103281;
        double r103290 = r103287 - r103289;
        double r103291 = r103285 * r103290;
        double r103292 = r103284 - r103291;
        double r103293 = j;
        double r103294 = r103286 * r103280;
        double r103295 = r103288 * r103277;
        double r103296 = r103294 - r103295;
        double r103297 = r103293 * r103296;
        double r103298 = r103292 + r103297;
        return r103298;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r103299 = t;
        double r103300 = -8.72692573803454e-133;
        bool r103301 = r103299 <= r103300;
        double r103302 = 5.076318876201314e-117;
        bool r103303 = r103299 <= r103302;
        double r103304 = !r103303;
        bool r103305 = r103301 || r103304;
        double r103306 = x;
        double r103307 = y;
        double r103308 = z;
        double r103309 = r103307 * r103308;
        double r103310 = a;
        double r103311 = r103299 * r103310;
        double r103312 = r103309 - r103311;
        double r103313 = b;
        double r103314 = i;
        double r103315 = r103314 * r103310;
        double r103316 = c;
        double r103317 = r103316 * r103308;
        double r103318 = r103315 - r103317;
        double r103319 = r103313 * r103318;
        double r103320 = j;
        double r103321 = r103320 * r103316;
        double r103322 = r103321 * r103299;
        double r103323 = r103314 * r103320;
        double r103324 = r103307 * r103323;
        double r103325 = -r103324;
        double r103326 = r103322 + r103325;
        double r103327 = r103319 + r103326;
        double r103328 = fma(r103306, r103312, r103327);
        double r103329 = r103316 * r103299;
        double r103330 = r103314 * r103307;
        double r103331 = r103329 - r103330;
        double r103332 = r103320 * r103331;
        double r103333 = fma(r103313, r103318, r103332);
        double r103334 = fma(r103306, r103312, r103333);
        double r103335 = cbrt(r103334);
        double r103336 = r103335 * r103335;
        double r103337 = r103336 * r103335;
        double r103338 = r103305 ? r103328 : r103337;
        return r103338;
}

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 2 regimes
  2. if t < -8.72692573803454e-133 or 5.076318876201314e-117 < t

    1. Initial program 13.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. Simplified13.8

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

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

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

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

      \[\leadsto \mathsf{fma}\left(x, y \cdot z - t \cdot a, \mathsf{fma}\left(b, i \cdot a - c \cdot z, \color{blue}{\left(j \cdot c\right) \cdot t} + \left(-i \cdot y\right) \cdot j\right)\right)\]
    9. Using strategy rm
    10. Applied distribute-lft-neg-out11.8

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

      \[\leadsto \mathsf{fma}\left(x, y \cdot z - t \cdot a, \mathsf{fma}\left(b, i \cdot a - c \cdot z, \left(j \cdot c\right) \cdot t + \left(-\color{blue}{y \cdot \left(i \cdot j\right)}\right)\right)\right)\]
    12. Using strategy rm
    13. Applied fma-udef11.5

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

    if -8.72692573803454e-133 < t < 5.076318876201314e-117

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -8.726925738034539270507380773704722857084 \cdot 10^{-133} \lor \neg \left(t \le 5.076318876201314174297201710312870570435 \cdot 10^{-117}\right):\\ \;\;\;\;\mathsf{fma}\left(x, y \cdot z - t \cdot a, b \cdot \left(i \cdot a - c \cdot z\right) + \left(\left(j \cdot c\right) \cdot t + \left(-y \cdot \left(i \cdot j\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt[3]{\mathsf{fma}\left(x, y \cdot z - t \cdot a, \mathsf{fma}\left(b, i \cdot a - c \cdot z, j \cdot \left(c \cdot t - i \cdot y\right)\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(x, y \cdot z - t \cdot a, \mathsf{fma}\left(b, i \cdot a - c \cdot z, j \cdot \left(c \cdot t - i \cdot y\right)\right)\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(x, y \cdot z - t \cdot a, \mathsf{fma}\left(b, i \cdot a - c \cdot z, j \cdot \left(c \cdot t - i \cdot y\right)\right)\right)}\\ \end{array}\]

Reproduce

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