\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 -7.138489777882016084893148102256369076376 \cdot 10^{-31}:\\
\;\;\;\;\left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y0 \cdot y5\right) + \left(\left(\left(b \cdot y4 - i \cdot y5\right) \cdot \left(j \cdot t - y \cdot k\right) + \left(\left(\left(x \cdot y - t \cdot z\right) \cdot \left(b \cdot a - i \cdot c\right) - \left(\left(\sqrt[3]{b \cdot y0 - i \cdot y1} \cdot \sqrt[3]{b \cdot y0 - i \cdot y1}\right) \cdot \left(x \cdot j - z \cdot k\right)\right) \cdot \sqrt[3]{b \cdot y0 - i \cdot y1}\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(c \cdot y0 - y1 \cdot a\right)\right)\right) - \left(y2 \cdot t - y \cdot y3\right) \cdot \left(c \cdot y4 - y5 \cdot a\right)\right)\\
\mathbf{elif}\;b \le 7.748151508253240774379859426326506011482 \cdot 10^{-166}:\\
\;\;\;\;\left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y0 \cdot y5\right) + \left(\left(\left(\left(y \cdot \left(y5 \cdot k\right)\right) \cdot i - \left(t \cdot \left(i \cdot \left(y5 \cdot j\right)\right) + k \cdot \left(y \cdot \left(b \cdot y4\right)\right)\right)\right) + \left(\left(\left(x \cdot y - t \cdot z\right) \cdot \left(b \cdot a - i \cdot c\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(b \cdot y0 - i \cdot y1\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(c \cdot y0 - y1 \cdot a\right)\right)\right) - \left(y2 \cdot t - y \cdot y3\right) \cdot \left(c \cdot y4 - y5 \cdot a\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y0 \cdot y5\right) + \left(\left(\left(b \cdot y4 - i \cdot y5\right) \cdot \left(j \cdot t - y \cdot k\right) + \left(\left(\left(x \cdot y - t \cdot z\right) \cdot \left(b \cdot a - i \cdot c\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(b \cdot y0 - i \cdot y1\right)\right) + \left(\sqrt[3]{x \cdot y2 - z \cdot y3} \cdot \sqrt[3]{x \cdot y2 - z \cdot y3}\right) \cdot \left(\left(c \cdot y0 - y1 \cdot a\right) \cdot \sqrt[3]{x \cdot y2 - z \cdot y3}\right)\right)\right) - \left(y2 \cdot t - y \cdot y3\right) \cdot \left(c \cdot y4 - 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 r4965443 = x;
double r4965444 = y;
double r4965445 = r4965443 * r4965444;
double r4965446 = z;
double r4965447 = t;
double r4965448 = r4965446 * r4965447;
double r4965449 = r4965445 - r4965448;
double r4965450 = a;
double r4965451 = b;
double r4965452 = r4965450 * r4965451;
double r4965453 = c;
double r4965454 = i;
double r4965455 = r4965453 * r4965454;
double r4965456 = r4965452 - r4965455;
double r4965457 = r4965449 * r4965456;
double r4965458 = j;
double r4965459 = r4965443 * r4965458;
double r4965460 = k;
double r4965461 = r4965446 * r4965460;
double r4965462 = r4965459 - r4965461;
double r4965463 = y0;
double r4965464 = r4965463 * r4965451;
double r4965465 = y1;
double r4965466 = r4965465 * r4965454;
double r4965467 = r4965464 - r4965466;
double r4965468 = r4965462 * r4965467;
double r4965469 = r4965457 - r4965468;
double r4965470 = y2;
double r4965471 = r4965443 * r4965470;
double r4965472 = y3;
double r4965473 = r4965446 * r4965472;
double r4965474 = r4965471 - r4965473;
double r4965475 = r4965463 * r4965453;
double r4965476 = r4965465 * r4965450;
double r4965477 = r4965475 - r4965476;
double r4965478 = r4965474 * r4965477;
double r4965479 = r4965469 + r4965478;
double r4965480 = r4965447 * r4965458;
double r4965481 = r4965444 * r4965460;
double r4965482 = r4965480 - r4965481;
double r4965483 = y4;
double r4965484 = r4965483 * r4965451;
double r4965485 = y5;
double r4965486 = r4965485 * r4965454;
double r4965487 = r4965484 - r4965486;
double r4965488 = r4965482 * r4965487;
double r4965489 = r4965479 + r4965488;
double r4965490 = r4965447 * r4965470;
double r4965491 = r4965444 * r4965472;
double r4965492 = r4965490 - r4965491;
double r4965493 = r4965483 * r4965453;
double r4965494 = r4965485 * r4965450;
double r4965495 = r4965493 - r4965494;
double r4965496 = r4965492 * r4965495;
double r4965497 = r4965489 - r4965496;
double r4965498 = r4965460 * r4965470;
double r4965499 = r4965458 * r4965472;
double r4965500 = r4965498 - r4965499;
double r4965501 = r4965483 * r4965465;
double r4965502 = r4965485 * r4965463;
double r4965503 = r4965501 - r4965502;
double r4965504 = r4965500 * r4965503;
double r4965505 = r4965497 + r4965504;
return r4965505;
}
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 r4965506 = b;
double r4965507 = -7.138489777882016e-31;
bool r4965508 = r4965506 <= r4965507;
double r4965509 = k;
double r4965510 = y2;
double r4965511 = r4965509 * r4965510;
double r4965512 = j;
double r4965513 = y3;
double r4965514 = r4965512 * r4965513;
double r4965515 = r4965511 - r4965514;
double r4965516 = y4;
double r4965517 = y1;
double r4965518 = r4965516 * r4965517;
double r4965519 = y0;
double r4965520 = y5;
double r4965521 = r4965519 * r4965520;
double r4965522 = r4965518 - r4965521;
double r4965523 = r4965515 * r4965522;
double r4965524 = r4965506 * r4965516;
double r4965525 = i;
double r4965526 = r4965525 * r4965520;
double r4965527 = r4965524 - r4965526;
double r4965528 = t;
double r4965529 = r4965512 * r4965528;
double r4965530 = y;
double r4965531 = r4965530 * r4965509;
double r4965532 = r4965529 - r4965531;
double r4965533 = r4965527 * r4965532;
double r4965534 = x;
double r4965535 = r4965534 * r4965530;
double r4965536 = z;
double r4965537 = r4965528 * r4965536;
double r4965538 = r4965535 - r4965537;
double r4965539 = a;
double r4965540 = r4965506 * r4965539;
double r4965541 = c;
double r4965542 = r4965525 * r4965541;
double r4965543 = r4965540 - r4965542;
double r4965544 = r4965538 * r4965543;
double r4965545 = r4965506 * r4965519;
double r4965546 = r4965525 * r4965517;
double r4965547 = r4965545 - r4965546;
double r4965548 = cbrt(r4965547);
double r4965549 = r4965548 * r4965548;
double r4965550 = r4965534 * r4965512;
double r4965551 = r4965536 * r4965509;
double r4965552 = r4965550 - r4965551;
double r4965553 = r4965549 * r4965552;
double r4965554 = r4965553 * r4965548;
double r4965555 = r4965544 - r4965554;
double r4965556 = r4965534 * r4965510;
double r4965557 = r4965536 * r4965513;
double r4965558 = r4965556 - r4965557;
double r4965559 = r4965541 * r4965519;
double r4965560 = r4965517 * r4965539;
double r4965561 = r4965559 - r4965560;
double r4965562 = r4965558 * r4965561;
double r4965563 = r4965555 + r4965562;
double r4965564 = r4965533 + r4965563;
double r4965565 = r4965510 * r4965528;
double r4965566 = r4965530 * r4965513;
double r4965567 = r4965565 - r4965566;
double r4965568 = r4965541 * r4965516;
double r4965569 = r4965520 * r4965539;
double r4965570 = r4965568 - r4965569;
double r4965571 = r4965567 * r4965570;
double r4965572 = r4965564 - r4965571;
double r4965573 = r4965523 + r4965572;
double r4965574 = 7.748151508253241e-166;
bool r4965575 = r4965506 <= r4965574;
double r4965576 = r4965520 * r4965509;
double r4965577 = r4965530 * r4965576;
double r4965578 = r4965577 * r4965525;
double r4965579 = r4965520 * r4965512;
double r4965580 = r4965525 * r4965579;
double r4965581 = r4965528 * r4965580;
double r4965582 = r4965530 * r4965524;
double r4965583 = r4965509 * r4965582;
double r4965584 = r4965581 + r4965583;
double r4965585 = r4965578 - r4965584;
double r4965586 = r4965552 * r4965547;
double r4965587 = r4965544 - r4965586;
double r4965588 = r4965587 + r4965562;
double r4965589 = r4965585 + r4965588;
double r4965590 = r4965589 - r4965571;
double r4965591 = r4965523 + r4965590;
double r4965592 = cbrt(r4965558);
double r4965593 = r4965592 * r4965592;
double r4965594 = r4965561 * r4965592;
double r4965595 = r4965593 * r4965594;
double r4965596 = r4965587 + r4965595;
double r4965597 = r4965533 + r4965596;
double r4965598 = r4965597 - r4965571;
double r4965599 = r4965523 + r4965598;
double r4965600 = r4965575 ? r4965591 : r4965599;
double r4965601 = r4965508 ? r4965573 : r4965600;
return r4965601;
}



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 < -7.138489777882016e-31Initial program 28.1
rmApplied add-cube-cbrt28.3
Applied associate-*r*28.3
if -7.138489777882016e-31 < b < 7.748151508253241e-166Initial program 26.4
Taylor expanded around inf 27.4
if 7.748151508253241e-166 < b Initial program 27.1
rmApplied add-cube-cbrt27.2
Applied associate-*l*27.2
Final simplification27.5
herbie shell --seed 2019171
(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)))))