Average Error: 11.8 → 9.6
Time: 8.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)\]
\[\begin{array}{l} \mathbf{if}\;a \le -7.2077291516975621 \cdot 10^{56}:\\ \;\;\;\;\left(a \cdot \left(i \cdot b\right) - \left(z \cdot \left(b \cdot c\right) + a \cdot \left(x \cdot t\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{elif}\;a \le 1.8499206001047589 \cdot 10^{-188}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\left(j \cdot c\right) \cdot t + -1 \cdot \left(i \cdot \left(y \cdot j\right)\right)\right)\\ \mathbf{elif}\;a \le 1.9325586949378498 \cdot 10^{111}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(j \cdot \left(c \cdot t\right) + \left(j \cdot i\right) \cdot \left(-y\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(a \cdot \left(i \cdot b\right) - \left(z \cdot \left(b \cdot c\right) + a \cdot \left(x \cdot t\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\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}\;a \le -7.2077291516975621 \cdot 10^{56}:\\
\;\;\;\;\left(a \cdot \left(i \cdot b\right) - \left(z \cdot \left(b \cdot c\right) + a \cdot \left(x \cdot t\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\

\mathbf{elif}\;a \le 1.8499206001047589 \cdot 10^{-188}:\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\left(j \cdot c\right) \cdot t + -1 \cdot \left(i \cdot \left(y \cdot j\right)\right)\right)\\

\mathbf{elif}\;a \le 1.9325586949378498 \cdot 10^{111}:\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(j \cdot \left(c \cdot t\right) + \left(j \cdot i\right) \cdot \left(-y\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(a \cdot \left(i \cdot b\right) - \left(z \cdot \left(b \cdot c\right) + a \cdot \left(x \cdot t\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r120739 = x;
        double r120740 = y;
        double r120741 = z;
        double r120742 = r120740 * r120741;
        double r120743 = t;
        double r120744 = a;
        double r120745 = r120743 * r120744;
        double r120746 = r120742 - r120745;
        double r120747 = r120739 * r120746;
        double r120748 = b;
        double r120749 = c;
        double r120750 = r120749 * r120741;
        double r120751 = i;
        double r120752 = r120751 * r120744;
        double r120753 = r120750 - r120752;
        double r120754 = r120748 * r120753;
        double r120755 = r120747 - r120754;
        double r120756 = j;
        double r120757 = r120749 * r120743;
        double r120758 = r120751 * r120740;
        double r120759 = r120757 - r120758;
        double r120760 = r120756 * r120759;
        double r120761 = r120755 + r120760;
        return r120761;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r120762 = a;
        double r120763 = -7.207729151697562e+56;
        bool r120764 = r120762 <= r120763;
        double r120765 = i;
        double r120766 = b;
        double r120767 = r120765 * r120766;
        double r120768 = r120762 * r120767;
        double r120769 = z;
        double r120770 = c;
        double r120771 = r120766 * r120770;
        double r120772 = r120769 * r120771;
        double r120773 = x;
        double r120774 = t;
        double r120775 = r120773 * r120774;
        double r120776 = r120762 * r120775;
        double r120777 = r120772 + r120776;
        double r120778 = r120768 - r120777;
        double r120779 = j;
        double r120780 = r120770 * r120774;
        double r120781 = y;
        double r120782 = r120765 * r120781;
        double r120783 = r120780 - r120782;
        double r120784 = r120779 * r120783;
        double r120785 = r120778 + r120784;
        double r120786 = 1.849920600104759e-188;
        bool r120787 = r120762 <= r120786;
        double r120788 = r120781 * r120769;
        double r120789 = r120774 * r120762;
        double r120790 = r120788 - r120789;
        double r120791 = r120773 * r120790;
        double r120792 = r120770 * r120769;
        double r120793 = r120765 * r120762;
        double r120794 = r120792 - r120793;
        double r120795 = r120766 * r120794;
        double r120796 = r120791 - r120795;
        double r120797 = r120779 * r120770;
        double r120798 = r120797 * r120774;
        double r120799 = -1.0;
        double r120800 = r120781 * r120779;
        double r120801 = r120765 * r120800;
        double r120802 = r120799 * r120801;
        double r120803 = r120798 + r120802;
        double r120804 = r120796 + r120803;
        double r120805 = 1.9325586949378498e+111;
        bool r120806 = r120762 <= r120805;
        double r120807 = r120779 * r120780;
        double r120808 = r120779 * r120765;
        double r120809 = -r120781;
        double r120810 = r120808 * r120809;
        double r120811 = r120807 + r120810;
        double r120812 = r120796 + r120811;
        double r120813 = r120806 ? r120812 : r120785;
        double r120814 = r120787 ? r120804 : r120813;
        double r120815 = r120764 ? r120785 : r120814;
        return r120815;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if a < -7.207729151697562e+56 or 1.9325586949378498e+111 < a

    1. Initial program 19.5

      \[\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. Taylor expanded around inf 12.0

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

    if -7.207729151697562e+56 < a < 1.849920600104759e-188

    1. Initial program 8.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. Using strategy rm
    3. Applied sub-neg8.8

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

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \color{blue}{\left(j \cdot \left(c \cdot t\right) + j \cdot \left(-i \cdot y\right)\right)}\]
    5. Taylor expanded around inf 8.4

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

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

    if 1.849920600104759e-188 < a < 1.9325586949378498e+111

    1. Initial program 9.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. Using strategy rm
    3. Applied sub-neg9.8

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

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \color{blue}{\left(j \cdot \left(c \cdot t\right) + j \cdot \left(-i \cdot y\right)\right)}\]
    5. Using strategy rm
    6. Applied distribute-rgt-neg-in9.8

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(j \cdot \left(c \cdot t\right) + j \cdot \color{blue}{\left(i \cdot \left(-y\right)\right)}\right)\]
    7. Applied associate-*r*10.2

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -7.2077291516975621 \cdot 10^{56}:\\ \;\;\;\;\left(a \cdot \left(i \cdot b\right) - \left(z \cdot \left(b \cdot c\right) + a \cdot \left(x \cdot t\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{elif}\;a \le 1.8499206001047589 \cdot 10^{-188}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\left(j \cdot c\right) \cdot t + -1 \cdot \left(i \cdot \left(y \cdot j\right)\right)\right)\\ \mathbf{elif}\;a \le 1.9325586949378498 \cdot 10^{111}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(j \cdot \left(c \cdot t\right) + \left(j \cdot i\right) \cdot \left(-y\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(a \cdot \left(i \cdot b\right) - \left(z \cdot \left(b \cdot c\right) + a \cdot \left(x \cdot t\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020020 
(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)))))