Average Error: 11.3 → 11.6
Time: 59.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)\]
\[\mathsf{fma}\left(j, \left(c \cdot t - y \cdot i\right), \left(\left(\sqrt[3]{y \cdot z - a \cdot t} \cdot \sqrt[3]{y \cdot z - a \cdot t}\right) \cdot \left(\sqrt[3]{y \cdot z - a \cdot t} \cdot x\right) - \left(c \cdot z - i \cdot a\right) \cdot b\right)\right)\]
\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)
\mathsf{fma}\left(j, \left(c \cdot t - y \cdot i\right), \left(\left(\sqrt[3]{y \cdot z - a \cdot t} \cdot \sqrt[3]{y \cdot z - a \cdot t}\right) \cdot \left(\sqrt[3]{y \cdot z - a \cdot t} \cdot x\right) - \left(c \cdot z - i \cdot a\right) \cdot b\right)\right)
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r11310374 = x;
        double r11310375 = y;
        double r11310376 = z;
        double r11310377 = r11310375 * r11310376;
        double r11310378 = t;
        double r11310379 = a;
        double r11310380 = r11310378 * r11310379;
        double r11310381 = r11310377 - r11310380;
        double r11310382 = r11310374 * r11310381;
        double r11310383 = b;
        double r11310384 = c;
        double r11310385 = r11310384 * r11310376;
        double r11310386 = i;
        double r11310387 = r11310386 * r11310379;
        double r11310388 = r11310385 - r11310387;
        double r11310389 = r11310383 * r11310388;
        double r11310390 = r11310382 - r11310389;
        double r11310391 = j;
        double r11310392 = r11310384 * r11310378;
        double r11310393 = r11310386 * r11310375;
        double r11310394 = r11310392 - r11310393;
        double r11310395 = r11310391 * r11310394;
        double r11310396 = r11310390 + r11310395;
        return r11310396;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r11310397 = j;
        double r11310398 = c;
        double r11310399 = t;
        double r11310400 = r11310398 * r11310399;
        double r11310401 = y;
        double r11310402 = i;
        double r11310403 = r11310401 * r11310402;
        double r11310404 = r11310400 - r11310403;
        double r11310405 = z;
        double r11310406 = r11310401 * r11310405;
        double r11310407 = a;
        double r11310408 = r11310407 * r11310399;
        double r11310409 = r11310406 - r11310408;
        double r11310410 = cbrt(r11310409);
        double r11310411 = r11310410 * r11310410;
        double r11310412 = x;
        double r11310413 = r11310410 * r11310412;
        double r11310414 = r11310411 * r11310413;
        double r11310415 = r11310398 * r11310405;
        double r11310416 = r11310402 * r11310407;
        double r11310417 = r11310415 - r11310416;
        double r11310418 = b;
        double r11310419 = r11310417 * r11310418;
        double r11310420 = r11310414 - r11310419;
        double r11310421 = fma(r11310397, r11310404, r11310420);
        return r11310421;
}

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

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

    \[\leadsto \mathsf{fma}\left(j, \left(t \cdot c - y \cdot i\right), \left(\color{blue}{\left(\left(\sqrt[3]{z \cdot y - t \cdot a} \cdot \sqrt[3]{z \cdot y - t \cdot a}\right) \cdot \sqrt[3]{z \cdot y - t \cdot a}\right)} \cdot x - \left(z \cdot c - i \cdot a\right) \cdot b\right)\right)\]
  5. Applied associate-*l*11.6

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

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

Reproduce

herbie shell --seed 2019121 +o rules:numerics
(FPCore (x y z t a b c i j)
  :name "Linear.Matrix:det33 from linear-1.19.1.3"
  (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))