Average Error: 11.7 → 9.3
Time: 17.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}\;x \le -8757011.53356274776160717010498046875:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(z \cdot \left(b \cdot c\right) + b \cdot \left(-i \cdot a\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{elif}\;x \le 20797617278881095164624896:\\ \;\;\;\;\left(\left(\left(x \cdot y\right) \cdot z + \left(-a \cdot \left(x \cdot t\right)\right)\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)\\ \mathbf{else}:\\ \;\;\;\;\left(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(-\left(i \cdot j\right) \cdot y\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}\;x \le -8757011.53356274776160717010498046875:\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(z \cdot \left(b \cdot c\right) + b \cdot \left(-i \cdot a\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\

\mathbf{elif}\;x \le 20797617278881095164624896:\\
\;\;\;\;\left(\left(\left(x \cdot y\right) \cdot z + \left(-a \cdot \left(x \cdot t\right)\right)\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)\\

\mathbf{else}:\\
\;\;\;\;\left(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(-\left(i \cdot j\right) \cdot y\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 r86270 = x;
        double r86271 = y;
        double r86272 = z;
        double r86273 = r86271 * r86272;
        double r86274 = t;
        double r86275 = a;
        double r86276 = r86274 * r86275;
        double r86277 = r86273 - r86276;
        double r86278 = r86270 * r86277;
        double r86279 = b;
        double r86280 = c;
        double r86281 = r86280 * r86272;
        double r86282 = i;
        double r86283 = r86282 * r86275;
        double r86284 = r86281 - r86283;
        double r86285 = r86279 * r86284;
        double r86286 = r86278 - r86285;
        double r86287 = j;
        double r86288 = r86280 * r86274;
        double r86289 = r86282 * r86271;
        double r86290 = r86288 - r86289;
        double r86291 = r86287 * r86290;
        double r86292 = r86286 + r86291;
        return r86292;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r86293 = x;
        double r86294 = -8757011.533562748;
        bool r86295 = r86293 <= r86294;
        double r86296 = y;
        double r86297 = z;
        double r86298 = r86296 * r86297;
        double r86299 = t;
        double r86300 = a;
        double r86301 = r86299 * r86300;
        double r86302 = r86298 - r86301;
        double r86303 = r86293 * r86302;
        double r86304 = b;
        double r86305 = c;
        double r86306 = r86304 * r86305;
        double r86307 = r86297 * r86306;
        double r86308 = i;
        double r86309 = r86308 * r86300;
        double r86310 = -r86309;
        double r86311 = r86304 * r86310;
        double r86312 = r86307 + r86311;
        double r86313 = r86303 - r86312;
        double r86314 = j;
        double r86315 = r86305 * r86299;
        double r86316 = r86308 * r86296;
        double r86317 = r86315 - r86316;
        double r86318 = r86314 * r86317;
        double r86319 = r86313 + r86318;
        double r86320 = 2.0797617278881095e+25;
        bool r86321 = r86293 <= r86320;
        double r86322 = r86293 * r86296;
        double r86323 = r86322 * r86297;
        double r86324 = r86293 * r86299;
        double r86325 = r86300 * r86324;
        double r86326 = -r86325;
        double r86327 = r86323 + r86326;
        double r86328 = r86305 * r86297;
        double r86329 = r86328 - r86309;
        double r86330 = r86304 * r86329;
        double r86331 = r86327 - r86330;
        double r86332 = r86314 * r86305;
        double r86333 = r86299 * r86332;
        double r86334 = r86314 * r86296;
        double r86335 = r86308 * r86334;
        double r86336 = -r86335;
        double r86337 = r86333 + r86336;
        double r86338 = r86331 + r86337;
        double r86339 = r86303 - r86330;
        double r86340 = r86308 * r86314;
        double r86341 = r86340 * r86296;
        double r86342 = -r86341;
        double r86343 = r86333 + r86342;
        double r86344 = r86339 + r86343;
        double r86345 = r86321 ? r86338 : r86344;
        double r86346 = r86295 ? r86319 : r86345;
        return r86346;
}

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 x < -8757011.533562748

    1. Initial program 6.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-neg6.8

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

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

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

    if -8757011.533562748 < x < 2.0797617278881095e+25

    1. Initial program 14.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-neg14.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-lft-in14.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(j \cdot \left(c \cdot t\right) + j \cdot \left(-i \cdot y\right)\right)}\]
    5. Simplified15.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}{t \cdot \left(j \cdot c\right)} + j \cdot \left(-i \cdot y\right)\right)\]
    6. Simplified15.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(t \cdot \left(j \cdot c\right) + \color{blue}{\left(-i \cdot \left(j \cdot y\right)\right)}\right)\]
    7. Using strategy rm
    8. Applied sub-neg15.2

      \[\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) + \left(t \cdot \left(j \cdot c\right) + \left(-i \cdot \left(j \cdot y\right)\right)\right)\]
    9. Applied distribute-lft-in15.2

      \[\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) + \left(t \cdot \left(j \cdot c\right) + \left(-i \cdot \left(j \cdot y\right)\right)\right)\]
    10. Simplified12.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) + \left(t \cdot \left(j \cdot c\right) + \left(-i \cdot \left(j \cdot y\right)\right)\right)\]
    11. Using strategy rm
    12. Applied associate-*r*10.3

      \[\leadsto \left(\left(\color{blue}{\left(x \cdot y\right) \cdot z} + \left(-a \cdot \left(x \cdot t\right)\right)\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)\]

    if 2.0797617278881095e+25 < x

    1. Initial program 6.2

      \[\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-neg6.2

      \[\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-in6.2

      \[\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. Simplified7.0

      \[\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}{t \cdot \left(j \cdot c\right)} + j \cdot \left(-i \cdot y\right)\right)\]
    6. Simplified6.9

      \[\leadsto \left(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)\]
    7. Using strategy rm
    8. Applied associate-*r*7.9

      \[\leadsto \left(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(-\color{blue}{\left(i \cdot j\right) \cdot y}\right)\right)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification9.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -8757011.53356274776160717010498046875:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(z \cdot \left(b \cdot c\right) + b \cdot \left(-i \cdot a\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{elif}\;x \le 20797617278881095164624896:\\ \;\;\;\;\left(\left(\left(x \cdot y\right) \cdot z + \left(-a \cdot \left(x \cdot t\right)\right)\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)\\ \mathbf{else}:\\ \;\;\;\;\left(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(-\left(i \cdot j\right) \cdot y\right)\right)\\ \end{array}\]

Reproduce

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