Average Error: 12.1 → 12.3
Time: 11.9s
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}\;x \le -3.917827594359059278999809568388726890593 \cdot 10^{-202} \lor \neg \left(x \le 1.214548786036781167174714542772730951352 \cdot 10^{-182}\right):\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(\sqrt[3]{b \cdot \left(c \cdot z - i \cdot a\right)} \cdot \left(\sqrt[3]{b} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)\right) \cdot \sqrt[3]{b \cdot \left(c \cdot z - i \cdot a\right)}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{else}:\\ \;\;\;\;\left(0 - b \cdot \left(c \cdot z - i \cdot a\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}\;x \le -3.917827594359059278999809568388726890593 \cdot 10^{-202} \lor \neg \left(x \le 1.214548786036781167174714542772730951352 \cdot 10^{-182}\right):\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(\sqrt[3]{b \cdot \left(c \cdot z - i \cdot a\right)} \cdot \left(\sqrt[3]{b} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)\right) \cdot \sqrt[3]{b \cdot \left(c \cdot z - i \cdot a\right)}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\

\mathbf{else}:\\
\;\;\;\;\left(0 - b \cdot \left(c \cdot z - i \cdot a\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 r101127 = x;
        double r101128 = y;
        double r101129 = z;
        double r101130 = r101128 * r101129;
        double r101131 = t;
        double r101132 = a;
        double r101133 = r101131 * r101132;
        double r101134 = r101130 - r101133;
        double r101135 = r101127 * r101134;
        double r101136 = b;
        double r101137 = c;
        double r101138 = r101137 * r101129;
        double r101139 = i;
        double r101140 = r101139 * r101132;
        double r101141 = r101138 - r101140;
        double r101142 = r101136 * r101141;
        double r101143 = r101135 - r101142;
        double r101144 = j;
        double r101145 = r101137 * r101131;
        double r101146 = r101139 * r101128;
        double r101147 = r101145 - r101146;
        double r101148 = r101144 * r101147;
        double r101149 = r101143 + r101148;
        return r101149;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r101150 = x;
        double r101151 = -3.9178275943590593e-202;
        bool r101152 = r101150 <= r101151;
        double r101153 = 1.2145487860367812e-182;
        bool r101154 = r101150 <= r101153;
        double r101155 = !r101154;
        bool r101156 = r101152 || r101155;
        double r101157 = y;
        double r101158 = z;
        double r101159 = r101157 * r101158;
        double r101160 = t;
        double r101161 = a;
        double r101162 = r101160 * r101161;
        double r101163 = r101159 - r101162;
        double r101164 = r101150 * r101163;
        double r101165 = b;
        double r101166 = c;
        double r101167 = r101166 * r101158;
        double r101168 = i;
        double r101169 = r101168 * r101161;
        double r101170 = r101167 - r101169;
        double r101171 = r101165 * r101170;
        double r101172 = cbrt(r101171);
        double r101173 = cbrt(r101165);
        double r101174 = cbrt(r101170);
        double r101175 = r101173 * r101174;
        double r101176 = r101172 * r101175;
        double r101177 = r101176 * r101172;
        double r101178 = r101164 - r101177;
        double r101179 = j;
        double r101180 = r101166 * r101160;
        double r101181 = r101168 * r101157;
        double r101182 = r101180 - r101181;
        double r101183 = r101179 * r101182;
        double r101184 = r101178 + r101183;
        double r101185 = 0.0;
        double r101186 = r101185 - r101171;
        double r101187 = r101186 + r101183;
        double r101188 = r101156 ? r101184 : r101187;
        return r101188;
}

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 < -3.9178275943590593e-202 or 1.2145487860367812e-182 < x

    1. Initial program 10.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-cbrt10.5

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \color{blue}{\left(\sqrt[3]{b \cdot \left(c \cdot z - i \cdot a\right)} \cdot \sqrt[3]{b \cdot \left(c \cdot z - i \cdot a\right)}\right) \cdot \sqrt[3]{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 cbrt-prod10.5

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

    if -3.9178275943590593e-202 < x < 1.2145487860367812e-182

    1. Initial program 17.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. Taylor expanded around 0 17.8

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

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

Reproduce

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