Average Error: 12.3 → 14.6
Time: 16.3s
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 -1.613860629683009462452971570315642245878 \cdot 10^{94} \lor \neg \left(a \le \frac{-8214454450667497}{649037107316853453566312041152512}\right):\\ \;\;\;\;\left(j \cdot \left(c \cdot t - i \cdot y\right) + \left(-b \cdot \left(c \cdot z - i \cdot a\right)\right)\right) + x \cdot \left(y \cdot z - t \cdot a\right)\\ \mathbf{else}:\\ \;\;\;\;j \cdot \left(c \cdot t - i \cdot y\right) + a \cdot \left(i \cdot b\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 -1.613860629683009462452971570315642245878 \cdot 10^{94} \lor \neg \left(a \le \frac{-8214454450667497}{649037107316853453566312041152512}\right):\\
\;\;\;\;\left(j \cdot \left(c \cdot t - i \cdot y\right) + \left(-b \cdot \left(c \cdot z - i \cdot a\right)\right)\right) + x \cdot \left(y \cdot z - t \cdot a\right)\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r102272 = x;
        double r102273 = y;
        double r102274 = z;
        double r102275 = r102273 * r102274;
        double r102276 = t;
        double r102277 = a;
        double r102278 = r102276 * r102277;
        double r102279 = r102275 - r102278;
        double r102280 = r102272 * r102279;
        double r102281 = b;
        double r102282 = c;
        double r102283 = r102282 * r102274;
        double r102284 = i;
        double r102285 = r102284 * r102277;
        double r102286 = r102283 - r102285;
        double r102287 = r102281 * r102286;
        double r102288 = r102280 - r102287;
        double r102289 = j;
        double r102290 = r102282 * r102276;
        double r102291 = r102284 * r102273;
        double r102292 = r102290 - r102291;
        double r102293 = r102289 * r102292;
        double r102294 = r102288 + r102293;
        return r102294;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r102295 = a;
        double r102296 = -1.6138606296830095e+94;
        bool r102297 = r102295 <= r102296;
        double r102298 = -8214454450667497.0;
        double r102299 = 6.490371073168535e+32;
        double r102300 = r102298 / r102299;
        bool r102301 = r102295 <= r102300;
        double r102302 = !r102301;
        bool r102303 = r102297 || r102302;
        double r102304 = j;
        double r102305 = c;
        double r102306 = t;
        double r102307 = r102305 * r102306;
        double r102308 = i;
        double r102309 = y;
        double r102310 = r102308 * r102309;
        double r102311 = r102307 - r102310;
        double r102312 = r102304 * r102311;
        double r102313 = b;
        double r102314 = z;
        double r102315 = r102305 * r102314;
        double r102316 = r102308 * r102295;
        double r102317 = r102315 - r102316;
        double r102318 = r102313 * r102317;
        double r102319 = -r102318;
        double r102320 = r102312 + r102319;
        double r102321 = x;
        double r102322 = r102309 * r102314;
        double r102323 = r102306 * r102295;
        double r102324 = r102322 - r102323;
        double r102325 = r102321 * r102324;
        double r102326 = r102320 + r102325;
        double r102327 = r102308 * r102313;
        double r102328 = r102295 * r102327;
        double r102329 = r102312 + r102328;
        double r102330 = r102303 ? r102326 : r102329;
        return r102330;
}

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 < -1.6138606296830095e+94

    1. Initial program 19.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 add-cube-cbrt19.9

      \[\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(\sqrt[3]{j \cdot \left(c \cdot t - i \cdot y\right)} \cdot \sqrt[3]{j \cdot \left(c \cdot t - i \cdot y\right)}\right) \cdot \sqrt[3]{j \cdot \left(c \cdot t - i \cdot y\right)}}\]

    if -1.6138606296830095e+94 < a < -1.2656371042676428e-17

    1. Initial program 11.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 35.1

      \[\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)}\]

    if -1.2656371042676428e-17 < a

    1. Initial program 11.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-cbrt11.6

      \[\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)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification14.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -1.613860629683009462452971570315642245878 \cdot 10^{94} \lor \neg \left(a \le \frac{-8214454450667497}{649037107316853453566312041152512}\right):\\ \;\;\;\;\left(j \cdot \left(c \cdot t - i \cdot y\right) + \left(-b \cdot \left(c \cdot z - i \cdot a\right)\right)\right) + x \cdot \left(y \cdot z - t \cdot a\right)\\ \mathbf{else}:\\ \;\;\;\;j \cdot \left(c \cdot t - i \cdot y\right) + a \cdot \left(i \cdot b\right)\\ \end{array}\]

Reproduce

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