Average Error: 11.2 → 6.9
Time: 1.2m
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}\;\left(t \cdot c - y \cdot i\right) \cdot j + \left(\left(z \cdot y - t \cdot a\right) \cdot x - \left(z \cdot c - i \cdot a\right) \cdot b\right) = -\infty:\\ \;\;\;\;t \cdot \left(c \cdot j\right) + \left(b \cdot a - j \cdot y\right) \cdot i\\ \mathbf{elif}\;\left(t \cdot c - y \cdot i\right) \cdot j + \left(\left(z \cdot y - t \cdot a\right) \cdot x - \left(z \cdot c - i \cdot a\right) \cdot b\right) \le 1.6067604924853703 \cdot 10^{+307}:\\ \;\;\;\;\left(-j\right) \cdot \left(y \cdot i\right) + \left(\sqrt[3]{\left(t \cdot c\right) \cdot j} \cdot \left(\sqrt[3]{\left(t \cdot c\right) \cdot j} \cdot \sqrt[3]{\left(t \cdot c\right) \cdot j}\right) + \left(\left(z \cdot y - t \cdot a\right) \cdot x - \left(z \cdot c - i \cdot a\right) \cdot b\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t \cdot \left(c \cdot j\right) + \left(b \cdot a - j \cdot y\right) \cdot i\\ \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}\;\left(t \cdot c - y \cdot i\right) \cdot j + \left(\left(z \cdot y - t \cdot a\right) \cdot x - \left(z \cdot c - i \cdot a\right) \cdot b\right) = -\infty:\\
\;\;\;\;t \cdot \left(c \cdot j\right) + \left(b \cdot a - j \cdot y\right) \cdot i\\

\mathbf{elif}\;\left(t \cdot c - y \cdot i\right) \cdot j + \left(\left(z \cdot y - t \cdot a\right) \cdot x - \left(z \cdot c - i \cdot a\right) \cdot b\right) \le 1.6067604924853703 \cdot 10^{+307}:\\
\;\;\;\;\left(-j\right) \cdot \left(y \cdot i\right) + \left(\sqrt[3]{\left(t \cdot c\right) \cdot j} \cdot \left(\sqrt[3]{\left(t \cdot c\right) \cdot j} \cdot \sqrt[3]{\left(t \cdot c\right) \cdot j}\right) + \left(\left(z \cdot y - t \cdot a\right) \cdot x - \left(z \cdot c - i \cdot a\right) \cdot b\right)\right)\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r18019117 = x;
        double r18019118 = y;
        double r18019119 = z;
        double r18019120 = r18019118 * r18019119;
        double r18019121 = t;
        double r18019122 = a;
        double r18019123 = r18019121 * r18019122;
        double r18019124 = r18019120 - r18019123;
        double r18019125 = r18019117 * r18019124;
        double r18019126 = b;
        double r18019127 = c;
        double r18019128 = r18019127 * r18019119;
        double r18019129 = i;
        double r18019130 = r18019129 * r18019122;
        double r18019131 = r18019128 - r18019130;
        double r18019132 = r18019126 * r18019131;
        double r18019133 = r18019125 - r18019132;
        double r18019134 = j;
        double r18019135 = r18019127 * r18019121;
        double r18019136 = r18019129 * r18019118;
        double r18019137 = r18019135 - r18019136;
        double r18019138 = r18019134 * r18019137;
        double r18019139 = r18019133 + r18019138;
        return r18019139;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r18019140 = t;
        double r18019141 = c;
        double r18019142 = r18019140 * r18019141;
        double r18019143 = y;
        double r18019144 = i;
        double r18019145 = r18019143 * r18019144;
        double r18019146 = r18019142 - r18019145;
        double r18019147 = j;
        double r18019148 = r18019146 * r18019147;
        double r18019149 = z;
        double r18019150 = r18019149 * r18019143;
        double r18019151 = a;
        double r18019152 = r18019140 * r18019151;
        double r18019153 = r18019150 - r18019152;
        double r18019154 = x;
        double r18019155 = r18019153 * r18019154;
        double r18019156 = r18019149 * r18019141;
        double r18019157 = r18019144 * r18019151;
        double r18019158 = r18019156 - r18019157;
        double r18019159 = b;
        double r18019160 = r18019158 * r18019159;
        double r18019161 = r18019155 - r18019160;
        double r18019162 = r18019148 + r18019161;
        double r18019163 = -inf.0;
        bool r18019164 = r18019162 <= r18019163;
        double r18019165 = r18019141 * r18019147;
        double r18019166 = r18019140 * r18019165;
        double r18019167 = r18019159 * r18019151;
        double r18019168 = r18019147 * r18019143;
        double r18019169 = r18019167 - r18019168;
        double r18019170 = r18019169 * r18019144;
        double r18019171 = r18019166 + r18019170;
        double r18019172 = 1.6067604924853703e+307;
        bool r18019173 = r18019162 <= r18019172;
        double r18019174 = -r18019147;
        double r18019175 = r18019174 * r18019145;
        double r18019176 = r18019142 * r18019147;
        double r18019177 = cbrt(r18019176);
        double r18019178 = r18019177 * r18019177;
        double r18019179 = r18019177 * r18019178;
        double r18019180 = r18019179 + r18019161;
        double r18019181 = r18019175 + r18019180;
        double r18019182 = r18019173 ? r18019181 : r18019171;
        double r18019183 = r18019164 ? r18019171 : r18019182;
        return r18019183;
}

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 2 regimes
  2. if (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))) < -inf.0 or 1.6067604924853703e+307 < (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y))))

    1. Initial program 59.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. Taylor expanded around inf 35.7

      \[\leadsto \color{blue}{\left(t \cdot \left(j \cdot c\right) + a \cdot \left(i \cdot b\right)\right) - i \cdot \left(j \cdot y\right)}\]
    3. Simplified35.0

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

    if -inf.0 < (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))) < 1.6067604924853703e+307

    1. Initial program 0.7

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

      \[\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-rgt-in0.7

      \[\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(\left(c \cdot t\right) \cdot j + \left(-i \cdot y\right) \cdot j\right)}\]
    5. Applied associate-+r+0.7

      \[\leadsto \color{blue}{\left(\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(c \cdot t\right) \cdot j\right) + \left(-i \cdot y\right) \cdot j}\]
    6. Using strategy rm
    7. Applied add-cube-cbrt0.9

      \[\leadsto \left(\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(\sqrt[3]{\left(c \cdot t\right) \cdot j} \cdot \sqrt[3]{\left(c \cdot t\right) \cdot j}\right) \cdot \sqrt[3]{\left(c \cdot t\right) \cdot j}}\right) + \left(-i \cdot y\right) \cdot j\]
  3. Recombined 2 regimes into one program.
  4. Final simplification6.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(t \cdot c - y \cdot i\right) \cdot j + \left(\left(z \cdot y - t \cdot a\right) \cdot x - \left(z \cdot c - i \cdot a\right) \cdot b\right) = -\infty:\\ \;\;\;\;t \cdot \left(c \cdot j\right) + \left(b \cdot a - j \cdot y\right) \cdot i\\ \mathbf{elif}\;\left(t \cdot c - y \cdot i\right) \cdot j + \left(\left(z \cdot y - t \cdot a\right) \cdot x - \left(z \cdot c - i \cdot a\right) \cdot b\right) \le 1.6067604924853703 \cdot 10^{+307}:\\ \;\;\;\;\left(-j\right) \cdot \left(y \cdot i\right) + \left(\sqrt[3]{\left(t \cdot c\right) \cdot j} \cdot \left(\sqrt[3]{\left(t \cdot c\right) \cdot j} \cdot \sqrt[3]{\left(t \cdot c\right) \cdot j}\right) + \left(\left(z \cdot y - t \cdot a\right) \cdot x - \left(z \cdot c - i \cdot a\right) \cdot b\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t \cdot \left(c \cdot j\right) + \left(b \cdot a - j \cdot y\right) \cdot i\\ \end{array}\]

Reproduce

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