\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)
\begin{array}{l}
\mathbf{if}\;b \le -8.58198075515020159 \cdot 10^{-119}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(a \cdot \left(y3 \cdot \left(y1 \cdot z\right)\right) - \left(y0 \cdot \left(z \cdot \left(y3 \cdot c\right)\right) + a \cdot \left(x \cdot \left(y2 \cdot y1\right)\right)\right)\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;b \le 7.027026353257974 \cdot 10^{-32}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(y0 \cdot \left(y3 \cdot \left(j \cdot y5\right) - y2 \cdot \left(k \cdot y5\right)\right) - y1 \cdot \left(y3 \cdot \left(j \cdot y4\right)\right)\right)\\
\mathbf{elif}\;b \le 9.3413417779978113 \cdot 10^{101}:\\
\;\;\;\;\left(\left(\left(\left(\sqrt[3]{\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right)} \cdot \sqrt[3]{\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right)}\right) \cdot \sqrt[3]{\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right)} - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;b \le 1.5943958207630799 \cdot 10^{186}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(y0 \cdot \left(y3 \cdot \left(j \cdot y5\right) - y2 \cdot \left(k \cdot y5\right)\right) - y1 \cdot \left(y3 \cdot \left(j \cdot y4\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(\sqrt[3]{\left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)} \cdot \sqrt[3]{\left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)}\right) \cdot \sqrt[3]{\left(\sqrt[3]{x \cdot y2 - z \cdot y3} \cdot \sqrt[3]{x \cdot y2 - z \cdot y3}\right) \cdot \left(\sqrt[3]{x \cdot y2 - z \cdot y3} \cdot \left(y0 \cdot c - y1 \cdot a\right)\right)}\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\end{array}double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double r178318 = x;
double r178319 = y;
double r178320 = r178318 * r178319;
double r178321 = z;
double r178322 = t;
double r178323 = r178321 * r178322;
double r178324 = r178320 - r178323;
double r178325 = a;
double r178326 = b;
double r178327 = r178325 * r178326;
double r178328 = c;
double r178329 = i;
double r178330 = r178328 * r178329;
double r178331 = r178327 - r178330;
double r178332 = r178324 * r178331;
double r178333 = j;
double r178334 = r178318 * r178333;
double r178335 = k;
double r178336 = r178321 * r178335;
double r178337 = r178334 - r178336;
double r178338 = y0;
double r178339 = r178338 * r178326;
double r178340 = y1;
double r178341 = r178340 * r178329;
double r178342 = r178339 - r178341;
double r178343 = r178337 * r178342;
double r178344 = r178332 - r178343;
double r178345 = y2;
double r178346 = r178318 * r178345;
double r178347 = y3;
double r178348 = r178321 * r178347;
double r178349 = r178346 - r178348;
double r178350 = r178338 * r178328;
double r178351 = r178340 * r178325;
double r178352 = r178350 - r178351;
double r178353 = r178349 * r178352;
double r178354 = r178344 + r178353;
double r178355 = r178322 * r178333;
double r178356 = r178319 * r178335;
double r178357 = r178355 - r178356;
double r178358 = y4;
double r178359 = r178358 * r178326;
double r178360 = y5;
double r178361 = r178360 * r178329;
double r178362 = r178359 - r178361;
double r178363 = r178357 * r178362;
double r178364 = r178354 + r178363;
double r178365 = r178322 * r178345;
double r178366 = r178319 * r178347;
double r178367 = r178365 - r178366;
double r178368 = r178358 * r178328;
double r178369 = r178360 * r178325;
double r178370 = r178368 - r178369;
double r178371 = r178367 * r178370;
double r178372 = r178364 - r178371;
double r178373 = r178335 * r178345;
double r178374 = r178333 * r178347;
double r178375 = r178373 - r178374;
double r178376 = r178358 * r178340;
double r178377 = r178360 * r178338;
double r178378 = r178376 - r178377;
double r178379 = r178375 * r178378;
double r178380 = r178372 + r178379;
return r178380;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double r178381 = b;
double r178382 = -8.581980755150202e-119;
bool r178383 = r178381 <= r178382;
double r178384 = x;
double r178385 = y;
double r178386 = r178384 * r178385;
double r178387 = z;
double r178388 = t;
double r178389 = r178387 * r178388;
double r178390 = r178386 - r178389;
double r178391 = a;
double r178392 = r178391 * r178381;
double r178393 = c;
double r178394 = i;
double r178395 = r178393 * r178394;
double r178396 = r178392 - r178395;
double r178397 = r178390 * r178396;
double r178398 = j;
double r178399 = r178384 * r178398;
double r178400 = k;
double r178401 = r178387 * r178400;
double r178402 = r178399 - r178401;
double r178403 = y0;
double r178404 = r178403 * r178381;
double r178405 = y1;
double r178406 = r178405 * r178394;
double r178407 = r178404 - r178406;
double r178408 = r178402 * r178407;
double r178409 = r178397 - r178408;
double r178410 = y3;
double r178411 = r178405 * r178387;
double r178412 = r178410 * r178411;
double r178413 = r178391 * r178412;
double r178414 = r178410 * r178393;
double r178415 = r178387 * r178414;
double r178416 = r178403 * r178415;
double r178417 = y2;
double r178418 = r178417 * r178405;
double r178419 = r178384 * r178418;
double r178420 = r178391 * r178419;
double r178421 = r178416 + r178420;
double r178422 = r178413 - r178421;
double r178423 = r178409 + r178422;
double r178424 = r178388 * r178398;
double r178425 = r178385 * r178400;
double r178426 = r178424 - r178425;
double r178427 = y4;
double r178428 = r178427 * r178381;
double r178429 = y5;
double r178430 = r178429 * r178394;
double r178431 = r178428 - r178430;
double r178432 = r178426 * r178431;
double r178433 = r178423 + r178432;
double r178434 = r178388 * r178417;
double r178435 = r178385 * r178410;
double r178436 = r178434 - r178435;
double r178437 = r178427 * r178393;
double r178438 = r178429 * r178391;
double r178439 = r178437 - r178438;
double r178440 = r178436 * r178439;
double r178441 = r178433 - r178440;
double r178442 = r178400 * r178417;
double r178443 = r178398 * r178410;
double r178444 = r178442 - r178443;
double r178445 = r178427 * r178405;
double r178446 = r178429 * r178403;
double r178447 = r178445 - r178446;
double r178448 = r178444 * r178447;
double r178449 = r178441 + r178448;
double r178450 = 7.027026353257974e-32;
bool r178451 = r178381 <= r178450;
double r178452 = r178384 * r178417;
double r178453 = r178387 * r178410;
double r178454 = r178452 - r178453;
double r178455 = r178403 * r178393;
double r178456 = r178405 * r178391;
double r178457 = r178455 - r178456;
double r178458 = r178454 * r178457;
double r178459 = r178409 + r178458;
double r178460 = r178459 + r178432;
double r178461 = r178460 - r178440;
double r178462 = r178398 * r178429;
double r178463 = r178410 * r178462;
double r178464 = r178400 * r178429;
double r178465 = r178417 * r178464;
double r178466 = r178463 - r178465;
double r178467 = r178403 * r178466;
double r178468 = r178398 * r178427;
double r178469 = r178410 * r178468;
double r178470 = r178405 * r178469;
double r178471 = r178467 - r178470;
double r178472 = r178461 + r178471;
double r178473 = 9.341341777997811e+101;
bool r178474 = r178381 <= r178473;
double r178475 = cbrt(r178397);
double r178476 = r178475 * r178475;
double r178477 = r178476 * r178475;
double r178478 = r178477 - r178408;
double r178479 = r178478 + r178432;
double r178480 = r178479 - r178440;
double r178481 = r178480 + r178448;
double r178482 = 1.59439582076308e+186;
bool r178483 = r178381 <= r178482;
double r178484 = cbrt(r178458);
double r178485 = r178484 * r178484;
double r178486 = cbrt(r178454);
double r178487 = r178486 * r178486;
double r178488 = r178486 * r178457;
double r178489 = r178487 * r178488;
double r178490 = cbrt(r178489);
double r178491 = r178485 * r178490;
double r178492 = r178409 + r178491;
double r178493 = r178492 + r178432;
double r178494 = r178493 - r178440;
double r178495 = r178494 + r178448;
double r178496 = r178483 ? r178472 : r178495;
double r178497 = r178474 ? r178481 : r178496;
double r178498 = r178451 ? r178472 : r178497;
double r178499 = r178383 ? r178449 : r178498;
return r178499;
}



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



Bits error versus k



Bits error versus y0



Bits error versus y1



Bits error versus y2



Bits error versus y3



Bits error versus y4



Bits error versus y5
Results
if b < -8.581980755150202e-119Initial program 26.9
Taylor expanded around inf 29.6
if -8.581980755150202e-119 < b < 7.027026353257974e-32 or 9.341341777997811e+101 < b < 1.59439582076308e+186Initial program 27.0
Taylor expanded around inf 30.1
Simplified30.1
if 7.027026353257974e-32 < b < 9.341341777997811e+101Initial program 25.5
rmApplied add-cube-cbrt25.6
Taylor expanded around 0 30.0
if 1.59439582076308e+186 < b Initial program 34.7
rmApplied add-cube-cbrt34.7
rmApplied add-cube-cbrt34.7
Applied associate-*l*34.7
Final simplification30.1
herbie shell --seed 2020042
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:name "Linear.Matrix:det44 from linear-1.19.1.3"
:precision binary64
(+ (- (+ (+ (- (* (- (* x y) (* z t)) (- (* a b) (* c i))) (* (- (* x j) (* z k)) (- (* y0 b) (* y1 i)))) (* (- (* x y2) (* z y3)) (- (* y0 c) (* y1 a)))) (* (- (* t j) (* y k)) (- (* y4 b) (* y5 i)))) (* (- (* t y2) (* y y3)) (- (* y4 c) (* y5 a)))) (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))