Average Error: 11.6 → 9.1
Time: 19.5s
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}\;j \le -5.80326359791015632964819365758088171029 \cdot 10^{70} \lor \neg \left(j \le 4.463308820438120290570369630487564696852 \cdot 10^{-42}\right):\\ \;\;\;\;\left(\left(x \cdot \left(y \cdot z\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\sqrt[3]{x \cdot \left(y \cdot z - t \cdot a\right)} \cdot \sqrt[3]{x \cdot \left(y \cdot z - t \cdot a\right)}\right) \cdot \sqrt[3]{x \cdot \left(y \cdot z - t \cdot a\right)} - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-i \cdot \left(j \cdot y\right)\right)\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}\;j \le -5.80326359791015632964819365758088171029 \cdot 10^{70} \lor \neg \left(j \le 4.463308820438120290570369630487564696852 \cdot 10^{-42}\right):\\
\;\;\;\;\left(\left(x \cdot \left(y \cdot z\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r92033 = x;
        double r92034 = y;
        double r92035 = z;
        double r92036 = r92034 * r92035;
        double r92037 = t;
        double r92038 = a;
        double r92039 = r92037 * r92038;
        double r92040 = r92036 - r92039;
        double r92041 = r92033 * r92040;
        double r92042 = b;
        double r92043 = c;
        double r92044 = r92043 * r92035;
        double r92045 = i;
        double r92046 = r92045 * r92038;
        double r92047 = r92044 - r92046;
        double r92048 = r92042 * r92047;
        double r92049 = r92041 - r92048;
        double r92050 = j;
        double r92051 = r92043 * r92037;
        double r92052 = r92045 * r92034;
        double r92053 = r92051 - r92052;
        double r92054 = r92050 * r92053;
        double r92055 = r92049 + r92054;
        return r92055;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r92056 = j;
        double r92057 = -5.803263597910156e+70;
        bool r92058 = r92056 <= r92057;
        double r92059 = 4.46330882043812e-42;
        bool r92060 = r92056 <= r92059;
        double r92061 = !r92060;
        bool r92062 = r92058 || r92061;
        double r92063 = x;
        double r92064 = y;
        double r92065 = z;
        double r92066 = r92064 * r92065;
        double r92067 = r92063 * r92066;
        double r92068 = a;
        double r92069 = t;
        double r92070 = r92063 * r92069;
        double r92071 = r92068 * r92070;
        double r92072 = -r92071;
        double r92073 = r92067 + r92072;
        double r92074 = b;
        double r92075 = c;
        double r92076 = r92075 * r92065;
        double r92077 = i;
        double r92078 = r92077 * r92068;
        double r92079 = r92076 - r92078;
        double r92080 = r92074 * r92079;
        double r92081 = r92073 - r92080;
        double r92082 = r92075 * r92069;
        double r92083 = r92077 * r92064;
        double r92084 = r92082 - r92083;
        double r92085 = r92056 * r92084;
        double r92086 = r92081 + r92085;
        double r92087 = r92069 * r92068;
        double r92088 = r92066 - r92087;
        double r92089 = r92063 * r92088;
        double r92090 = cbrt(r92089);
        double r92091 = r92090 * r92090;
        double r92092 = r92091 * r92090;
        double r92093 = r92092 - r92080;
        double r92094 = r92056 * r92075;
        double r92095 = r92069 * r92094;
        double r92096 = r92056 * r92064;
        double r92097 = r92077 * r92096;
        double r92098 = -r92097;
        double r92099 = r92095 + r92098;
        double r92100 = r92093 + r92099;
        double r92101 = r92062 ? r92086 : r92100;
        return r92101;
}

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 j < -5.803263597910156e+70 or 4.46330882043812e-42 < j

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

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

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

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

    if -5.803263597910156e+70 < j < 4.46330882043812e-42

    1. Initial program 14.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. Using strategy rm
    3. Applied add-cube-cbrt14.7

      \[\leadsto \left(\color{blue}{\left(\sqrt[3]{x \cdot \left(y \cdot z - t \cdot a\right)} \cdot \sqrt[3]{x \cdot \left(y \cdot z - t \cdot a\right)}\right) \cdot \sqrt[3]{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)\]
    4. Using strategy rm
    5. Applied sub-neg14.7

      \[\leadsto \left(\left(\sqrt[3]{x \cdot \left(y \cdot z - t \cdot a\right)} \cdot \sqrt[3]{x \cdot \left(y \cdot z - t \cdot a\right)}\right) \cdot \sqrt[3]{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)}\]
    6. Applied distribute-lft-in14.7

      \[\leadsto \left(\left(\sqrt[3]{x \cdot \left(y \cdot z - t \cdot a\right)} \cdot \sqrt[3]{x \cdot \left(y \cdot z - t \cdot a\right)}\right) \cdot \sqrt[3]{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)}\]
    7. Simplified12.5

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;j \le -5.80326359791015632964819365758088171029 \cdot 10^{70} \lor \neg \left(j \le 4.463308820438120290570369630487564696852 \cdot 10^{-42}\right):\\ \;\;\;\;\left(\left(x \cdot \left(y \cdot z\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\sqrt[3]{x \cdot \left(y \cdot z - t \cdot a\right)} \cdot \sqrt[3]{x \cdot \left(y \cdot z - t \cdot a\right)}\right) \cdot \sqrt[3]{x \cdot \left(y \cdot z - t \cdot a\right)} - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-i \cdot \left(j \cdot y\right)\right)\right)\\ \end{array}\]

Reproduce

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