\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}\;y4 \le -5.78947116530490396 \cdot 10^{-241}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(k \cdot \left(i \cdot \left(z \cdot y1\right)\right) - \left(i \cdot \left(j \cdot \left(y1 \cdot x\right)\right) + y0 \cdot \left(z \cdot \left(k \cdot b\right)\right)\right)\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)\\
\mathbf{elif}\;y4 \le 6.7251934755243073 \cdot 10^{-133}:\\
\;\;\;\;\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(k \cdot \left(i \cdot \left(y \cdot y5\right)\right) - \left(t \cdot \left(i \cdot \left(j \cdot y5\right)\right) + k \cdot \left(y4 \cdot \left(y \cdot b\right)\right)\right)\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}\;y4 \le 1.0410960937213773 \cdot 10^{-36}:\\
\;\;\;\;\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(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right) + \left(\left(\left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right) + \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)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\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 k, double y0, double y1, double y2, double y3, double y4, double y5) {
double r144463 = x;
double r144464 = y;
double r144465 = r144463 * r144464;
double r144466 = z;
double r144467 = t;
double r144468 = r144466 * r144467;
double r144469 = r144465 - r144468;
double r144470 = a;
double r144471 = b;
double r144472 = r144470 * r144471;
double r144473 = c;
double r144474 = i;
double r144475 = r144473 * r144474;
double r144476 = r144472 - r144475;
double r144477 = r144469 * r144476;
double r144478 = j;
double r144479 = r144463 * r144478;
double r144480 = k;
double r144481 = r144466 * r144480;
double r144482 = r144479 - r144481;
double r144483 = y0;
double r144484 = r144483 * r144471;
double r144485 = y1;
double r144486 = r144485 * r144474;
double r144487 = r144484 - r144486;
double r144488 = r144482 * r144487;
double r144489 = r144477 - r144488;
double r144490 = y2;
double r144491 = r144463 * r144490;
double r144492 = y3;
double r144493 = r144466 * r144492;
double r144494 = r144491 - r144493;
double r144495 = r144483 * r144473;
double r144496 = r144485 * r144470;
double r144497 = r144495 - r144496;
double r144498 = r144494 * r144497;
double r144499 = r144489 + r144498;
double r144500 = r144467 * r144478;
double r144501 = r144464 * r144480;
double r144502 = r144500 - r144501;
double r144503 = y4;
double r144504 = r144503 * r144471;
double r144505 = y5;
double r144506 = r144505 * r144474;
double r144507 = r144504 - r144506;
double r144508 = r144502 * r144507;
double r144509 = r144499 + r144508;
double r144510 = r144467 * r144490;
double r144511 = r144464 * r144492;
double r144512 = r144510 - r144511;
double r144513 = r144503 * r144473;
double r144514 = r144505 * r144470;
double r144515 = r144513 - r144514;
double r144516 = r144512 * r144515;
double r144517 = r144509 - r144516;
double r144518 = r144480 * r144490;
double r144519 = r144478 * r144492;
double r144520 = r144518 - r144519;
double r144521 = r144503 * r144485;
double r144522 = r144505 * r144483;
double r144523 = r144521 - r144522;
double r144524 = r144520 * r144523;
double r144525 = r144517 + r144524;
return r144525;
}
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 r144526 = y4;
double r144527 = -5.789471165304904e-241;
bool r144528 = r144526 <= r144527;
double r144529 = x;
double r144530 = y;
double r144531 = r144529 * r144530;
double r144532 = z;
double r144533 = t;
double r144534 = r144532 * r144533;
double r144535 = r144531 - r144534;
double r144536 = a;
double r144537 = b;
double r144538 = r144536 * r144537;
double r144539 = c;
double r144540 = i;
double r144541 = r144539 * r144540;
double r144542 = r144538 - r144541;
double r144543 = r144535 * r144542;
double r144544 = k;
double r144545 = y1;
double r144546 = r144532 * r144545;
double r144547 = r144540 * r144546;
double r144548 = r144544 * r144547;
double r144549 = j;
double r144550 = r144545 * r144529;
double r144551 = r144549 * r144550;
double r144552 = r144540 * r144551;
double r144553 = y0;
double r144554 = r144544 * r144537;
double r144555 = r144532 * r144554;
double r144556 = r144553 * r144555;
double r144557 = r144552 + r144556;
double r144558 = r144548 - r144557;
double r144559 = r144543 - r144558;
double r144560 = y2;
double r144561 = r144529 * r144560;
double r144562 = y3;
double r144563 = r144532 * r144562;
double r144564 = r144561 - r144563;
double r144565 = r144553 * r144539;
double r144566 = r144545 * r144536;
double r144567 = r144565 - r144566;
double r144568 = r144564 * r144567;
double r144569 = r144559 + r144568;
double r144570 = r144533 * r144549;
double r144571 = r144530 * r144544;
double r144572 = r144570 - r144571;
double r144573 = r144526 * r144537;
double r144574 = y5;
double r144575 = r144574 * r144540;
double r144576 = r144573 - r144575;
double r144577 = r144572 * r144576;
double r144578 = r144569 + r144577;
double r144579 = r144533 * r144560;
double r144580 = r144530 * r144562;
double r144581 = r144579 - r144580;
double r144582 = r144526 * r144539;
double r144583 = r144574 * r144536;
double r144584 = r144582 - r144583;
double r144585 = r144581 * r144584;
double r144586 = r144578 - r144585;
double r144587 = r144544 * r144560;
double r144588 = r144549 * r144562;
double r144589 = r144587 - r144588;
double r144590 = r144526 * r144545;
double r144591 = r144574 * r144553;
double r144592 = r144590 - r144591;
double r144593 = r144589 * r144592;
double r144594 = r144586 + r144593;
double r144595 = 6.725193475524307e-133;
bool r144596 = r144526 <= r144595;
double r144597 = r144529 * r144549;
double r144598 = r144532 * r144544;
double r144599 = r144597 - r144598;
double r144600 = r144553 * r144537;
double r144601 = r144545 * r144540;
double r144602 = r144600 - r144601;
double r144603 = r144599 * r144602;
double r144604 = r144543 - r144603;
double r144605 = r144604 + r144568;
double r144606 = r144530 * r144574;
double r144607 = r144540 * r144606;
double r144608 = r144544 * r144607;
double r144609 = r144549 * r144574;
double r144610 = r144540 * r144609;
double r144611 = r144533 * r144610;
double r144612 = r144530 * r144537;
double r144613 = r144526 * r144612;
double r144614 = r144544 * r144613;
double r144615 = r144611 + r144614;
double r144616 = r144608 - r144615;
double r144617 = r144605 + r144616;
double r144618 = r144617 - r144585;
double r144619 = r144618 + r144593;
double r144620 = 1.0410960937213773e-36;
bool r144621 = r144526 <= r144620;
double r144622 = r144605 + r144577;
double r144623 = r144622 - r144585;
double r144624 = r144562 * r144609;
double r144625 = r144544 * r144574;
double r144626 = r144560 * r144625;
double r144627 = r144624 - r144626;
double r144628 = r144553 * r144627;
double r144629 = r144549 * r144526;
double r144630 = r144562 * r144629;
double r144631 = r144545 * r144630;
double r144632 = r144628 - r144631;
double r144633 = r144623 + r144632;
double r144634 = r144577 + r144604;
double r144635 = r144634 - r144585;
double r144636 = r144593 + r144635;
double r144637 = r144621 ? r144633 : r144636;
double r144638 = r144596 ? r144619 : r144637;
double r144639 = r144528 ? r144594 : r144638;
return r144639;
}



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 y4 < -5.789471165304904e-241Initial program 26.8
Taylor expanded around inf 29.0
if -5.789471165304904e-241 < y4 < 6.725193475524307e-133Initial program 26.5
Taylor expanded around inf 27.9
if 6.725193475524307e-133 < y4 < 1.0410960937213773e-36Initial program 25.0
Taylor expanded around inf 27.5
Simplified27.5
if 1.0410960937213773e-36 < y4 Initial program 28.3
Taylor expanded around 0 30.9
Final simplification28.9
herbie shell --seed 2020047
(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)))))