Average Error: 11.1 → 11.4
Time: 36.6s
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(z \cdot y - t \cdot a, x, \mathsf{fma}\left(b, a \cdot i - c \cdot z, \left(\sqrt[3]{t \cdot c - y \cdot i} \cdot j\right) \cdot \left(\sqrt[3]{t \cdot c - y \cdot i} \cdot \sqrt[3]{t \cdot c - y \cdot i}\right)\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(z \cdot y - t \cdot a, x, \mathsf{fma}\left(b, a \cdot i - c \cdot z, \left(\sqrt[3]{t \cdot c - y \cdot i} \cdot j\right) \cdot \left(\sqrt[3]{t \cdot c - y \cdot i} \cdot \sqrt[3]{t \cdot c - y \cdot i}\right)\right)\right)
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r4202667 = x;
        double r4202668 = y;
        double r4202669 = z;
        double r4202670 = r4202668 * r4202669;
        double r4202671 = t;
        double r4202672 = a;
        double r4202673 = r4202671 * r4202672;
        double r4202674 = r4202670 - r4202673;
        double r4202675 = r4202667 * r4202674;
        double r4202676 = b;
        double r4202677 = c;
        double r4202678 = r4202677 * r4202669;
        double r4202679 = i;
        double r4202680 = r4202679 * r4202672;
        double r4202681 = r4202678 - r4202680;
        double r4202682 = r4202676 * r4202681;
        double r4202683 = r4202675 - r4202682;
        double r4202684 = j;
        double r4202685 = r4202677 * r4202671;
        double r4202686 = r4202679 * r4202668;
        double r4202687 = r4202685 - r4202686;
        double r4202688 = r4202684 * r4202687;
        double r4202689 = r4202683 + r4202688;
        return r4202689;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r4202690 = z;
        double r4202691 = y;
        double r4202692 = r4202690 * r4202691;
        double r4202693 = t;
        double r4202694 = a;
        double r4202695 = r4202693 * r4202694;
        double r4202696 = r4202692 - r4202695;
        double r4202697 = x;
        double r4202698 = b;
        double r4202699 = i;
        double r4202700 = r4202694 * r4202699;
        double r4202701 = c;
        double r4202702 = r4202701 * r4202690;
        double r4202703 = r4202700 - r4202702;
        double r4202704 = r4202693 * r4202701;
        double r4202705 = r4202691 * r4202699;
        double r4202706 = r4202704 - r4202705;
        double r4202707 = cbrt(r4202706);
        double r4202708 = j;
        double r4202709 = r4202707 * r4202708;
        double r4202710 = r4202707 * r4202707;
        double r4202711 = r4202709 * r4202710;
        double r4202712 = fma(r4202698, r4202703, r4202711);
        double r4202713 = fma(r4202696, r4202697, r4202712);
        return r4202713;
}

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.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(z \cdot y - t \cdot a, x, \mathsf{fma}\left(b, i \cdot a - z \cdot c, \left(t \cdot c - y \cdot i\right) \cdot j\right)\right)}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt11.4

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

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

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

Reproduce

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