Average Error: 26.8 → 28.3
Time: 1.5m
Precision: 64
\[\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 -3.27866518127697491589097793635221070582 \cdot 10^{-58}:\\ \;\;\;\;\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 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.055571452163021928060913035838811390728 \cdot 10^{-109}:\\ \;\;\;\;\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{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(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(\sqrt[3]{\left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)} \cdot \sqrt[3]{\left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)}\right) \cdot \sqrt[3]{\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}\]
\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 -3.27866518127697491589097793635221070582 \cdot 10^{-58}:\\
\;\;\;\;\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 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.055571452163021928060913035838811390728 \cdot 10^{-109}:\\
\;\;\;\;\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{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(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(\sqrt[3]{\left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)} \cdot \sqrt[3]{\left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)}\right) \cdot \sqrt[3]{\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 r153526 = x;
        double r153527 = y;
        double r153528 = r153526 * r153527;
        double r153529 = z;
        double r153530 = t;
        double r153531 = r153529 * r153530;
        double r153532 = r153528 - r153531;
        double r153533 = a;
        double r153534 = b;
        double r153535 = r153533 * r153534;
        double r153536 = c;
        double r153537 = i;
        double r153538 = r153536 * r153537;
        double r153539 = r153535 - r153538;
        double r153540 = r153532 * r153539;
        double r153541 = j;
        double r153542 = r153526 * r153541;
        double r153543 = k;
        double r153544 = r153529 * r153543;
        double r153545 = r153542 - r153544;
        double r153546 = y0;
        double r153547 = r153546 * r153534;
        double r153548 = y1;
        double r153549 = r153548 * r153537;
        double r153550 = r153547 - r153549;
        double r153551 = r153545 * r153550;
        double r153552 = r153540 - r153551;
        double r153553 = y2;
        double r153554 = r153526 * r153553;
        double r153555 = y3;
        double r153556 = r153529 * r153555;
        double r153557 = r153554 - r153556;
        double r153558 = r153546 * r153536;
        double r153559 = r153548 * r153533;
        double r153560 = r153558 - r153559;
        double r153561 = r153557 * r153560;
        double r153562 = r153552 + r153561;
        double r153563 = r153530 * r153541;
        double r153564 = r153527 * r153543;
        double r153565 = r153563 - r153564;
        double r153566 = y4;
        double r153567 = r153566 * r153534;
        double r153568 = y5;
        double r153569 = r153568 * r153537;
        double r153570 = r153567 - r153569;
        double r153571 = r153565 * r153570;
        double r153572 = r153562 + r153571;
        double r153573 = r153530 * r153553;
        double r153574 = r153527 * r153555;
        double r153575 = r153573 - r153574;
        double r153576 = r153566 * r153536;
        double r153577 = r153568 * r153533;
        double r153578 = r153576 - r153577;
        double r153579 = r153575 * r153578;
        double r153580 = r153572 - r153579;
        double r153581 = r153543 * r153553;
        double r153582 = r153541 * r153555;
        double r153583 = r153581 - r153582;
        double r153584 = r153566 * r153548;
        double r153585 = r153568 * r153546;
        double r153586 = r153584 - r153585;
        double r153587 = r153583 * r153586;
        double r153588 = r153580 + r153587;
        return r153588;
}

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 r153589 = b;
        double r153590 = -3.278665181276975e-58;
        bool r153591 = r153589 <= r153590;
        double r153592 = x;
        double r153593 = y;
        double r153594 = r153592 * r153593;
        double r153595 = z;
        double r153596 = t;
        double r153597 = r153595 * r153596;
        double r153598 = r153594 - r153597;
        double r153599 = a;
        double r153600 = r153599 * r153589;
        double r153601 = c;
        double r153602 = i;
        double r153603 = r153601 * r153602;
        double r153604 = r153600 - r153603;
        double r153605 = r153598 * r153604;
        double r153606 = j;
        double r153607 = r153592 * r153606;
        double r153608 = k;
        double r153609 = r153595 * r153608;
        double r153610 = r153607 - r153609;
        double r153611 = y0;
        double r153612 = r153611 * r153589;
        double r153613 = y1;
        double r153614 = r153613 * r153602;
        double r153615 = r153612 - r153614;
        double r153616 = r153610 * r153615;
        double r153617 = r153605 - r153616;
        double r153618 = y2;
        double r153619 = r153592 * r153618;
        double r153620 = y3;
        double r153621 = r153595 * r153620;
        double r153622 = r153619 - r153621;
        double r153623 = r153611 * r153601;
        double r153624 = r153613 * r153599;
        double r153625 = r153623 - r153624;
        double r153626 = r153622 * r153625;
        double r153627 = r153617 + r153626;
        double r153628 = r153596 * r153618;
        double r153629 = r153593 * r153620;
        double r153630 = r153628 - r153629;
        double r153631 = y4;
        double r153632 = r153631 * r153601;
        double r153633 = y5;
        double r153634 = r153633 * r153599;
        double r153635 = r153632 - r153634;
        double r153636 = r153630 * r153635;
        double r153637 = r153627 - r153636;
        double r153638 = r153608 * r153618;
        double r153639 = r153606 * r153620;
        double r153640 = r153638 - r153639;
        double r153641 = r153631 * r153613;
        double r153642 = r153633 * r153611;
        double r153643 = r153641 - r153642;
        double r153644 = r153640 * r153643;
        double r153645 = r153637 + r153644;
        double r153646 = 1.0555714521630219e-109;
        bool r153647 = r153589 <= r153646;
        double r153648 = r153595 * r153613;
        double r153649 = r153602 * r153648;
        double r153650 = r153608 * r153649;
        double r153651 = r153613 * r153592;
        double r153652 = r153606 * r153651;
        double r153653 = r153602 * r153652;
        double r153654 = r153608 * r153589;
        double r153655 = r153595 * r153654;
        double r153656 = r153611 * r153655;
        double r153657 = r153653 + r153656;
        double r153658 = r153650 - r153657;
        double r153659 = r153605 - r153658;
        double r153660 = r153659 + r153626;
        double r153661 = r153596 * r153606;
        double r153662 = r153593 * r153608;
        double r153663 = r153661 - r153662;
        double r153664 = r153631 * r153589;
        double r153665 = r153633 * r153602;
        double r153666 = r153664 - r153665;
        double r153667 = r153663 * r153666;
        double r153668 = r153660 + r153667;
        double r153669 = r153668 - r153636;
        double r153670 = r153669 + r153644;
        double r153671 = r153627 + r153667;
        double r153672 = cbrt(r153636);
        double r153673 = r153672 * r153672;
        double r153674 = r153673 * r153672;
        double r153675 = r153671 - r153674;
        double r153676 = r153675 + r153644;
        double r153677 = r153647 ? r153670 : r153676;
        double r153678 = r153591 ? r153645 : r153677;
        return r153678;
}

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

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if b < -3.278665181276975e-58

    1. Initial program 26.3

      \[\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)\]
    2. Taylor expanded around 0 32.6

      \[\leadsto \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) + \color{blue}{0}\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)\]

    if -3.278665181276975e-58 < b < 1.0555714521630219e-109

    1. Initial program 27.4

      \[\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)\]
    2. Taylor expanded around inf 27.7

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

    if 1.0555714521630219e-109 < b

    1. Initial program 26.0

      \[\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)\]
    2. Using strategy rm
    3. Applied add-cube-cbrt26.1

      \[\leadsto \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) - \color{blue}{\left(\sqrt[3]{\left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)} \cdot \sqrt[3]{\left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)}\right) \cdot \sqrt[3]{\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)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification28.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -3.27866518127697491589097793635221070582 \cdot 10^{-58}:\\ \;\;\;\;\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 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.055571452163021928060913035838811390728 \cdot 10^{-109}:\\ \;\;\;\;\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{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(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(\sqrt[3]{\left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)} \cdot \sqrt[3]{\left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)}\right) \cdot \sqrt[3]{\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}\]

Reproduce

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