Average Error: 11.9 → 12.1
Time: 24.0s
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(t \cdot c - i \cdot y, j, \mathsf{fma}\left(\mathsf{fma}\left(i, a, \left(-c\right) \cdot z\right), b, y \cdot \left(x \cdot z\right) - \left(\sqrt[3]{a} \cdot \left(t \cdot x\right)\right) \cdot \left(\sqrt[3]{a} \cdot \sqrt[3]{a}\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(t \cdot c - i \cdot y, j, \mathsf{fma}\left(\mathsf{fma}\left(i, a, \left(-c\right) \cdot z\right), b, y \cdot \left(x \cdot z\right) - \left(\sqrt[3]{a} \cdot \left(t \cdot x\right)\right) \cdot \left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)\right)\right)
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r1548770 = x;
        double r1548771 = y;
        double r1548772 = z;
        double r1548773 = r1548771 * r1548772;
        double r1548774 = t;
        double r1548775 = a;
        double r1548776 = r1548774 * r1548775;
        double r1548777 = r1548773 - r1548776;
        double r1548778 = r1548770 * r1548777;
        double r1548779 = b;
        double r1548780 = c;
        double r1548781 = r1548780 * r1548772;
        double r1548782 = i;
        double r1548783 = r1548782 * r1548775;
        double r1548784 = r1548781 - r1548783;
        double r1548785 = r1548779 * r1548784;
        double r1548786 = r1548778 - r1548785;
        double r1548787 = j;
        double r1548788 = r1548780 * r1548774;
        double r1548789 = r1548782 * r1548771;
        double r1548790 = r1548788 - r1548789;
        double r1548791 = r1548787 * r1548790;
        double r1548792 = r1548786 + r1548791;
        return r1548792;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r1548793 = t;
        double r1548794 = c;
        double r1548795 = r1548793 * r1548794;
        double r1548796 = i;
        double r1548797 = y;
        double r1548798 = r1548796 * r1548797;
        double r1548799 = r1548795 - r1548798;
        double r1548800 = j;
        double r1548801 = a;
        double r1548802 = -r1548794;
        double r1548803 = z;
        double r1548804 = r1548802 * r1548803;
        double r1548805 = fma(r1548796, r1548801, r1548804);
        double r1548806 = b;
        double r1548807 = x;
        double r1548808 = r1548807 * r1548803;
        double r1548809 = r1548797 * r1548808;
        double r1548810 = cbrt(r1548801);
        double r1548811 = r1548793 * r1548807;
        double r1548812 = r1548810 * r1548811;
        double r1548813 = r1548810 * r1548810;
        double r1548814 = r1548812 * r1548813;
        double r1548815 = r1548809 - r1548814;
        double r1548816 = fma(r1548805, r1548806, r1548815);
        double r1548817 = fma(r1548799, r1548800, r1548816);
        return r1548817;
}

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.9

    \[\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.9

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

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

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

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

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

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

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

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

Reproduce

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