\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}\;y2 \le -1.8097993541943642 \cdot 10^{-109}:\\
\;\;\;\;\left(y2 \cdot k - y3 \cdot j\right) \cdot \left(y1 \cdot y4 - y0 \cdot y5\right) + \left(\left(\left(b \cdot y4 - y5 \cdot i\right) \cdot \left(t \cdot j - y \cdot k\right) + \left(\left(\sqrt[3]{\left(y0 \cdot c - y1 \cdot a\right) \cdot \left(x \cdot y2 - z \cdot y3\right)} \cdot \sqrt[3]{\left(y0 \cdot c - y1 \cdot a\right) \cdot \left(x \cdot y2 - z \cdot y3\right)}\right) \cdot \sqrt[3]{\left(y0 \cdot c - y1 \cdot a\right) \cdot \left(x \cdot y2 - z \cdot y3\right)} + \left(\left(x \cdot y - t \cdot z\right) \cdot \left(a \cdot b - i \cdot c\right) - \left(y0 \cdot b - i \cdot y1\right) \cdot \left(x \cdot j - z \cdot k\right)\right)\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right)\\
\mathbf{elif}\;y2 \le -9.596344595680116 \cdot 10^{-191}:\\
\;\;\;\;\left(y2 \cdot k - y3 \cdot j\right) \cdot \left(y1 \cdot y4 - y0 \cdot y5\right) + \left(\left(\left(b \cdot y4 - y5 \cdot i\right) \cdot \left(t \cdot j - y \cdot k\right) + \left(\left(\left(\left(y1 \cdot y3\right) \cdot z - \left(y2 \cdot y1\right) \cdot x\right) \cdot a - z \cdot \left(c \cdot \left(y0 \cdot y3\right)\right)\right) + \left(\left(x \cdot y - t \cdot z\right) \cdot \left(a \cdot b - i \cdot c\right) - \left(y0 \cdot b - i \cdot y1\right) \cdot \left(x \cdot j - z \cdot k\right)\right)\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right)\\
\mathbf{elif}\;y2 \le 1.0920144033726943 \cdot 10^{-296}:\\
\;\;\;\;\left(\left(\left(b \cdot y4 - y5 \cdot i\right) \cdot \left(t \cdot j - y \cdot k\right) + \left(\left(\left(\left(i \cdot \left(c \cdot z\right)\right) \cdot t - \left(\left(\left(y \cdot c\right) \cdot x\right) \cdot i + a \cdot \left(\left(b \cdot z\right) \cdot t\right)\right)\right) - \left(y0 \cdot b - i \cdot y1\right) \cdot \left(x \cdot j - z \cdot k\right)\right) + \left(y0 \cdot c - y1 \cdot a\right) \cdot \left(x \cdot y2 - z \cdot y3\right)\right)\right) - \sqrt[3]{y4 \cdot c - y5 \cdot a} \cdot \left(\left(t \cdot y2 - y \cdot y3\right) \cdot \left(\sqrt[3]{y4 \cdot c - y5 \cdot a} \cdot \sqrt[3]{y4 \cdot c - y5 \cdot a}\right)\right)\right) + \left(y2 \cdot k - y3 \cdot j\right) \cdot \left(y1 \cdot y4 - y0 \cdot y5\right)\\
\mathbf{elif}\;y2 \le 7.493530868745964 \cdot 10^{+120}:\\
\;\;\;\;\left(\left(\left(\left(a \cdot \left(y1 \cdot \left(z \cdot y3\right) - \left(y2 \cdot y1\right) \cdot x\right) - z \cdot \left(c \cdot \left(y0 \cdot y3\right)\right)\right) + \left(\left(x \cdot y - t \cdot z\right) \cdot \left(a \cdot b - i \cdot c\right) - \left(y0 \cdot b - i \cdot y1\right) \cdot \left(x \cdot j - z \cdot k\right)\right)\right) + \sqrt[3]{b \cdot y4 - y5 \cdot i} \cdot \left(\left(t \cdot j - y \cdot k\right) \cdot \left(\sqrt[3]{b \cdot y4 - y5 \cdot i} \cdot \sqrt[3]{b \cdot y4 - y5 \cdot i}\right)\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(y2 \cdot k - y3 \cdot j\right) \cdot \left(y1 \cdot y4 - y0 \cdot y5\right)\\
\mathbf{else}:\\
\;\;\;\;\left(y2 \cdot k - y3 \cdot j\right) \cdot \left(y1 \cdot y4 - y0 \cdot y5\right) + \left(\left(\left(y0 \cdot c - y1 \cdot a\right) \cdot \left(x \cdot y2 - z \cdot y3\right) + \left(\left(x \cdot y - t \cdot z\right) \cdot \left(a \cdot b - i \cdot c\right) - \left(y0 \cdot b - i \cdot y1\right) \cdot \left(x \cdot j - z \cdot k\right)\right)\right) + \left(b \cdot y4 - y5 \cdot i\right) \cdot \left(t \cdot j - y \cdot k\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 r5144533 = x;
double r5144534 = y;
double r5144535 = r5144533 * r5144534;
double r5144536 = z;
double r5144537 = t;
double r5144538 = r5144536 * r5144537;
double r5144539 = r5144535 - r5144538;
double r5144540 = a;
double r5144541 = b;
double r5144542 = r5144540 * r5144541;
double r5144543 = c;
double r5144544 = i;
double r5144545 = r5144543 * r5144544;
double r5144546 = r5144542 - r5144545;
double r5144547 = r5144539 * r5144546;
double r5144548 = j;
double r5144549 = r5144533 * r5144548;
double r5144550 = k;
double r5144551 = r5144536 * r5144550;
double r5144552 = r5144549 - r5144551;
double r5144553 = y0;
double r5144554 = r5144553 * r5144541;
double r5144555 = y1;
double r5144556 = r5144555 * r5144544;
double r5144557 = r5144554 - r5144556;
double r5144558 = r5144552 * r5144557;
double r5144559 = r5144547 - r5144558;
double r5144560 = y2;
double r5144561 = r5144533 * r5144560;
double r5144562 = y3;
double r5144563 = r5144536 * r5144562;
double r5144564 = r5144561 - r5144563;
double r5144565 = r5144553 * r5144543;
double r5144566 = r5144555 * r5144540;
double r5144567 = r5144565 - r5144566;
double r5144568 = r5144564 * r5144567;
double r5144569 = r5144559 + r5144568;
double r5144570 = r5144537 * r5144548;
double r5144571 = r5144534 * r5144550;
double r5144572 = r5144570 - r5144571;
double r5144573 = y4;
double r5144574 = r5144573 * r5144541;
double r5144575 = y5;
double r5144576 = r5144575 * r5144544;
double r5144577 = r5144574 - r5144576;
double r5144578 = r5144572 * r5144577;
double r5144579 = r5144569 + r5144578;
double r5144580 = r5144537 * r5144560;
double r5144581 = r5144534 * r5144562;
double r5144582 = r5144580 - r5144581;
double r5144583 = r5144573 * r5144543;
double r5144584 = r5144575 * r5144540;
double r5144585 = r5144583 - r5144584;
double r5144586 = r5144582 * r5144585;
double r5144587 = r5144579 - r5144586;
double r5144588 = r5144550 * r5144560;
double r5144589 = r5144548 * r5144562;
double r5144590 = r5144588 - r5144589;
double r5144591 = r5144573 * r5144555;
double r5144592 = r5144575 * r5144553;
double r5144593 = r5144591 - r5144592;
double r5144594 = r5144590 * r5144593;
double r5144595 = r5144587 + r5144594;
return r5144595;
}
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 r5144596 = y2;
double r5144597 = -1.8097993541943642e-109;
bool r5144598 = r5144596 <= r5144597;
double r5144599 = k;
double r5144600 = r5144596 * r5144599;
double r5144601 = y3;
double r5144602 = j;
double r5144603 = r5144601 * r5144602;
double r5144604 = r5144600 - r5144603;
double r5144605 = y1;
double r5144606 = y4;
double r5144607 = r5144605 * r5144606;
double r5144608 = y0;
double r5144609 = y5;
double r5144610 = r5144608 * r5144609;
double r5144611 = r5144607 - r5144610;
double r5144612 = r5144604 * r5144611;
double r5144613 = b;
double r5144614 = r5144613 * r5144606;
double r5144615 = i;
double r5144616 = r5144609 * r5144615;
double r5144617 = r5144614 - r5144616;
double r5144618 = t;
double r5144619 = r5144618 * r5144602;
double r5144620 = y;
double r5144621 = r5144620 * r5144599;
double r5144622 = r5144619 - r5144621;
double r5144623 = r5144617 * r5144622;
double r5144624 = c;
double r5144625 = r5144608 * r5144624;
double r5144626 = a;
double r5144627 = r5144605 * r5144626;
double r5144628 = r5144625 - r5144627;
double r5144629 = x;
double r5144630 = r5144629 * r5144596;
double r5144631 = z;
double r5144632 = r5144631 * r5144601;
double r5144633 = r5144630 - r5144632;
double r5144634 = r5144628 * r5144633;
double r5144635 = cbrt(r5144634);
double r5144636 = r5144635 * r5144635;
double r5144637 = r5144636 * r5144635;
double r5144638 = r5144629 * r5144620;
double r5144639 = r5144618 * r5144631;
double r5144640 = r5144638 - r5144639;
double r5144641 = r5144626 * r5144613;
double r5144642 = r5144615 * r5144624;
double r5144643 = r5144641 - r5144642;
double r5144644 = r5144640 * r5144643;
double r5144645 = r5144608 * r5144613;
double r5144646 = r5144615 * r5144605;
double r5144647 = r5144645 - r5144646;
double r5144648 = r5144629 * r5144602;
double r5144649 = r5144631 * r5144599;
double r5144650 = r5144648 - r5144649;
double r5144651 = r5144647 * r5144650;
double r5144652 = r5144644 - r5144651;
double r5144653 = r5144637 + r5144652;
double r5144654 = r5144623 + r5144653;
double r5144655 = r5144618 * r5144596;
double r5144656 = r5144620 * r5144601;
double r5144657 = r5144655 - r5144656;
double r5144658 = r5144606 * r5144624;
double r5144659 = r5144609 * r5144626;
double r5144660 = r5144658 - r5144659;
double r5144661 = r5144657 * r5144660;
double r5144662 = r5144654 - r5144661;
double r5144663 = r5144612 + r5144662;
double r5144664 = -9.596344595680116e-191;
bool r5144665 = r5144596 <= r5144664;
double r5144666 = r5144605 * r5144601;
double r5144667 = r5144666 * r5144631;
double r5144668 = r5144596 * r5144605;
double r5144669 = r5144668 * r5144629;
double r5144670 = r5144667 - r5144669;
double r5144671 = r5144670 * r5144626;
double r5144672 = r5144608 * r5144601;
double r5144673 = r5144624 * r5144672;
double r5144674 = r5144631 * r5144673;
double r5144675 = r5144671 - r5144674;
double r5144676 = r5144675 + r5144652;
double r5144677 = r5144623 + r5144676;
double r5144678 = r5144677 - r5144661;
double r5144679 = r5144612 + r5144678;
double r5144680 = 1.0920144033726943e-296;
bool r5144681 = r5144596 <= r5144680;
double r5144682 = r5144624 * r5144631;
double r5144683 = r5144615 * r5144682;
double r5144684 = r5144683 * r5144618;
double r5144685 = r5144620 * r5144624;
double r5144686 = r5144685 * r5144629;
double r5144687 = r5144686 * r5144615;
double r5144688 = r5144613 * r5144631;
double r5144689 = r5144688 * r5144618;
double r5144690 = r5144626 * r5144689;
double r5144691 = r5144687 + r5144690;
double r5144692 = r5144684 - r5144691;
double r5144693 = r5144692 - r5144651;
double r5144694 = r5144693 + r5144634;
double r5144695 = r5144623 + r5144694;
double r5144696 = cbrt(r5144660);
double r5144697 = r5144696 * r5144696;
double r5144698 = r5144657 * r5144697;
double r5144699 = r5144696 * r5144698;
double r5144700 = r5144695 - r5144699;
double r5144701 = r5144700 + r5144612;
double r5144702 = 7.493530868745964e+120;
bool r5144703 = r5144596 <= r5144702;
double r5144704 = r5144605 * r5144632;
double r5144705 = r5144704 - r5144669;
double r5144706 = r5144626 * r5144705;
double r5144707 = r5144706 - r5144674;
double r5144708 = r5144707 + r5144652;
double r5144709 = cbrt(r5144617);
double r5144710 = r5144709 * r5144709;
double r5144711 = r5144622 * r5144710;
double r5144712 = r5144709 * r5144711;
double r5144713 = r5144708 + r5144712;
double r5144714 = r5144713 - r5144661;
double r5144715 = r5144714 + r5144612;
double r5144716 = r5144634 + r5144652;
double r5144717 = r5144716 + r5144623;
double r5144718 = r5144612 + r5144717;
double r5144719 = r5144703 ? r5144715 : r5144718;
double r5144720 = r5144681 ? r5144701 : r5144719;
double r5144721 = r5144665 ? r5144679 : r5144720;
double r5144722 = r5144598 ? r5144663 : r5144721;
return r5144722;
}



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 y2 < -1.8097993541943642e-109Initial program 25.7
rmApplied add-cube-cbrt25.8
if -1.8097993541943642e-109 < y2 < -9.596344595680116e-191Initial program 24.2
Taylor expanded around inf 25.6
Simplified25.0
if -9.596344595680116e-191 < y2 < 1.0920144033726943e-296Initial program 25.3
rmApplied add-cube-cbrt25.4
Applied associate-*r*25.4
Taylor expanded around inf 27.9
if 1.0920144033726943e-296 < y2 < 7.493530868745964e+120Initial program 23.6
rmApplied add-cube-cbrt23.8
Applied associate-*r*23.8
Taylor expanded around inf 25.8
Simplified26.0
if 7.493530868745964e+120 < y2 Initial program 30.1
Taylor expanded around 0 34.5
Final simplification26.9
herbie shell --seed 2019163
(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"
(+ (- (+ (+ (- (* (- (* 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)))))