Average Error: 12.1 → 12.0
Time: 19.9s
Precision: 64
\[\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
\[\begin{array}{l} \mathbf{if}\;y \le -7.276076652476422723184151660607198493295 \cdot 10^{-42}:\\ \;\;\;\;\left(\left(x \cdot \left(y \cdot z\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - \left(b \cdot \left(\sqrt[3]{c \cdot z - i \cdot a} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)\right) \cdot \sqrt[3]{c \cdot z - i \cdot a}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{elif}\;y \le -2.765207802801297782227349629851777181967 \cdot 10^{-96}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-i \cdot \left(j \cdot y\right)\right)\right)\\ \mathbf{elif}\;y \le 7.448778321262618814210345647292621144017 \cdot 10^{-301}:\\ \;\;\;\;\left(\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z\right)\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - \left(z \cdot \left(b \cdot c\right) + \left(-i \cdot a\right) \cdot b\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{elif}\;y \le 1.714973672352425960028893737750560179991 \cdot 10^{93}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-i \cdot \left(j \cdot y\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(x \cdot \left(y \cdot z\right) + \left(-\left(x \cdot a\right) \cdot t\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \end{array}\]
\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)
\begin{array}{l}
\mathbf{if}\;y \le -7.276076652476422723184151660607198493295 \cdot 10^{-42}:\\
\;\;\;\;\left(\left(x \cdot \left(y \cdot z\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - \left(b \cdot \left(\sqrt[3]{c \cdot z - i \cdot a} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)\right) \cdot \sqrt[3]{c \cdot z - i \cdot a}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\

\mathbf{elif}\;y \le -2.765207802801297782227349629851777181967 \cdot 10^{-96}:\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-i \cdot \left(j \cdot y\right)\right)\right)\\

\mathbf{elif}\;y \le 7.448778321262618814210345647292621144017 \cdot 10^{-301}:\\
\;\;\;\;\left(\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z\right)\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - \left(z \cdot \left(b \cdot c\right) + \left(-i \cdot a\right) \cdot b\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\

\mathbf{elif}\;y \le 1.714973672352425960028893737750560179991 \cdot 10^{93}:\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-i \cdot \left(j \cdot y\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(x \cdot \left(y \cdot z\right) + \left(-\left(x \cdot a\right) \cdot t\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r610666 = x;
        double r610667 = y;
        double r610668 = z;
        double r610669 = r610667 * r610668;
        double r610670 = t;
        double r610671 = a;
        double r610672 = r610670 * r610671;
        double r610673 = r610669 - r610672;
        double r610674 = r610666 * r610673;
        double r610675 = b;
        double r610676 = c;
        double r610677 = r610676 * r610668;
        double r610678 = i;
        double r610679 = r610678 * r610671;
        double r610680 = r610677 - r610679;
        double r610681 = r610675 * r610680;
        double r610682 = r610674 - r610681;
        double r610683 = j;
        double r610684 = r610676 * r610670;
        double r610685 = r610678 * r610667;
        double r610686 = r610684 - r610685;
        double r610687 = r610683 * r610686;
        double r610688 = r610682 + r610687;
        return r610688;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r610689 = y;
        double r610690 = -7.276076652476423e-42;
        bool r610691 = r610689 <= r610690;
        double r610692 = x;
        double r610693 = z;
        double r610694 = r610689 * r610693;
        double r610695 = r610692 * r610694;
        double r610696 = a;
        double r610697 = t;
        double r610698 = r610692 * r610697;
        double r610699 = r610696 * r610698;
        double r610700 = -r610699;
        double r610701 = r610695 + r610700;
        double r610702 = b;
        double r610703 = c;
        double r610704 = r610703 * r610693;
        double r610705 = i;
        double r610706 = r610705 * r610696;
        double r610707 = r610704 - r610706;
        double r610708 = cbrt(r610707);
        double r610709 = r610708 * r610708;
        double r610710 = r610702 * r610709;
        double r610711 = r610710 * r610708;
        double r610712 = r610701 - r610711;
        double r610713 = j;
        double r610714 = r610703 * r610697;
        double r610715 = r610705 * r610689;
        double r610716 = r610714 - r610715;
        double r610717 = r610713 * r610716;
        double r610718 = r610712 + r610717;
        double r610719 = -2.7652078028012978e-96;
        bool r610720 = r610689 <= r610719;
        double r610721 = r610697 * r610696;
        double r610722 = r610694 - r610721;
        double r610723 = r610692 * r610722;
        double r610724 = r610702 * r610707;
        double r610725 = r610723 - r610724;
        double r610726 = r610713 * r610703;
        double r610727 = r610697 * r610726;
        double r610728 = r610713 * r610689;
        double r610729 = r610705 * r610728;
        double r610730 = -r610729;
        double r610731 = r610727 + r610730;
        double r610732 = r610725 + r610731;
        double r610733 = 7.448778321262619e-301;
        bool r610734 = r610689 <= r610733;
        double r610735 = cbrt(r610692);
        double r610736 = r610735 * r610735;
        double r610737 = r610735 * r610694;
        double r610738 = r610736 * r610737;
        double r610739 = r610738 + r610700;
        double r610740 = r610702 * r610703;
        double r610741 = r610693 * r610740;
        double r610742 = -r610706;
        double r610743 = r610742 * r610702;
        double r610744 = r610741 + r610743;
        double r610745 = r610739 - r610744;
        double r610746 = r610745 + r610717;
        double r610747 = 1.714973672352426e+93;
        bool r610748 = r610689 <= r610747;
        double r610749 = r610692 * r610696;
        double r610750 = r610749 * r610697;
        double r610751 = -r610750;
        double r610752 = r610695 + r610751;
        double r610753 = r610752 - r610724;
        double r610754 = r610753 + r610717;
        double r610755 = r610748 ? r610732 : r610754;
        double r610756 = r610734 ? r610746 : r610755;
        double r610757 = r610720 ? r610732 : r610756;
        double r610758 = r610691 ? r610718 : r610757;
        return r610758;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original12.1
Target15.8
Herbie12.0
\[\begin{array}{l} \mathbf{if}\;t \lt -8.12097891919591218149793027759825150959 \cdot 10^{-33}:\\ \;\;\;\;x \cdot \left(z \cdot y - a \cdot t\right) - \left(b \cdot \left(z \cdot c - a \cdot i\right) - \left(c \cdot t - y \cdot i\right) \cdot j\right)\\ \mathbf{elif}\;t \lt -4.712553818218485141757938537793350881052 \cdot 10^{-169}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \frac{j \cdot \left({\left(c \cdot t\right)}^{2} - {\left(i \cdot y\right)}^{2}\right)}{c \cdot t + i \cdot y}\\ \mathbf{elif}\;t \lt -7.633533346031583686060259351057142920433 \cdot 10^{-308}:\\ \;\;\;\;x \cdot \left(z \cdot y - a \cdot t\right) - \left(b \cdot \left(z \cdot c - a \cdot i\right) - \left(c \cdot t - y \cdot i\right) \cdot j\right)\\ \mathbf{elif}\;t \lt 1.053588855745548710002760210539645467715 \cdot 10^{-139}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \frac{j \cdot \left({\left(c \cdot t\right)}^{2} - {\left(i \cdot y\right)}^{2}\right)}{c \cdot t + i \cdot y}\\ \mathbf{else}:\\ \;\;\;\;x \cdot \left(z \cdot y - a \cdot t\right) - \left(b \cdot \left(z \cdot c - a \cdot i\right) - \left(c \cdot t - y \cdot i\right) \cdot j\right)\\ \end{array}\]

Derivation

  1. Split input into 4 regimes
  2. if y < -7.276076652476423e-42

    1. Initial program 15.1

      \[\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    2. Using strategy rm
    3. Applied sub-neg15.1

      \[\leadsto \left(x \cdot \color{blue}{\left(y \cdot z + \left(-t \cdot a\right)\right)} - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    4. Applied distribute-lft-in15.1

      \[\leadsto \left(\color{blue}{\left(x \cdot \left(y \cdot z\right) + x \cdot \left(-t \cdot a\right)\right)} - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    5. Simplified14.7

      \[\leadsto \left(\left(x \cdot \left(y \cdot z\right) + \color{blue}{\left(-a \cdot \left(x \cdot t\right)\right)}\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    6. Using strategy rm
    7. Applied add-cube-cbrt14.9

      \[\leadsto \left(\left(x \cdot \left(y \cdot z\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \color{blue}{\left(\left(\sqrt[3]{c \cdot z - i \cdot a} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right) \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    8. Applied associate-*r*14.9

      \[\leadsto \left(\left(x \cdot \left(y \cdot z\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - \color{blue}{\left(b \cdot \left(\sqrt[3]{c \cdot z - i \cdot a} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)\right) \cdot \sqrt[3]{c \cdot z - i \cdot a}}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]

    if -7.276076652476423e-42 < y < -2.7652078028012978e-96 or 7.448778321262619e-301 < y < 1.714973672352426e+93

    1. Initial program 9.0

      \[\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    2. Using strategy rm
    3. Applied sub-neg9.0

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \color{blue}{\left(c \cdot t + \left(-i \cdot y\right)\right)}\]
    4. Applied distribute-lft-in9.0

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \color{blue}{\left(j \cdot \left(c \cdot t\right) + j \cdot \left(-i \cdot y\right)\right)}\]
    5. Simplified9.6

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\color{blue}{t \cdot \left(j \cdot c\right)} + j \cdot \left(-i \cdot y\right)\right)\]
    6. Simplified9.5

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \color{blue}{\left(-i \cdot \left(j \cdot y\right)\right)}\right)\]

    if -2.7652078028012978e-96 < y < 7.448778321262619e-301

    1. Initial program 10.4

      \[\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    2. Using strategy rm
    3. Applied sub-neg10.4

      \[\leadsto \left(x \cdot \color{blue}{\left(y \cdot z + \left(-t \cdot a\right)\right)} - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    4. Applied distribute-lft-in10.4

      \[\leadsto \left(\color{blue}{\left(x \cdot \left(y \cdot z\right) + x \cdot \left(-t \cdot a\right)\right)} - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    5. Simplified10.4

      \[\leadsto \left(\left(x \cdot \left(y \cdot z\right) + \color{blue}{\left(-a \cdot \left(x \cdot t\right)\right)}\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    6. Using strategy rm
    7. Applied add-cube-cbrt10.5

      \[\leadsto \left(\left(\color{blue}{\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}\right)} \cdot \left(y \cdot z\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    8. Applied associate-*l*10.5

      \[\leadsto \left(\left(\color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z\right)\right)} + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    9. Using strategy rm
    10. Applied sub-neg10.5

      \[\leadsto \left(\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z\right)\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \color{blue}{\left(c \cdot z + \left(-i \cdot a\right)\right)}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    11. Applied distribute-lft-in10.5

      \[\leadsto \left(\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z\right)\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - \color{blue}{\left(b \cdot \left(c \cdot z\right) + b \cdot \left(-i \cdot a\right)\right)}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    12. Simplified9.8

      \[\leadsto \left(\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z\right)\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - \left(\color{blue}{z \cdot \left(b \cdot c\right)} + b \cdot \left(-i \cdot a\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    13. Simplified9.8

      \[\leadsto \left(\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z\right)\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - \left(z \cdot \left(b \cdot c\right) + \color{blue}{\left(-i \cdot a\right) \cdot b}\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]

    if 1.714973672352426e+93 < y

    1. Initial program 20.8

      \[\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    2. Using strategy rm
    3. Applied sub-neg20.8

      \[\leadsto \left(x \cdot \color{blue}{\left(y \cdot z + \left(-t \cdot a\right)\right)} - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    4. Applied distribute-lft-in20.8

      \[\leadsto \left(\color{blue}{\left(x \cdot \left(y \cdot z\right) + x \cdot \left(-t \cdot a\right)\right)} - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    5. Simplified20.4

      \[\leadsto \left(\left(x \cdot \left(y \cdot z\right) + \color{blue}{\left(-a \cdot \left(x \cdot t\right)\right)}\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    6. Using strategy rm
    7. Applied associate-*r*19.9

      \[\leadsto \left(\left(x \cdot \left(y \cdot z\right) + \left(-\color{blue}{\left(a \cdot x\right) \cdot t}\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    8. Simplified19.9

      \[\leadsto \left(\left(x \cdot \left(y \cdot z\right) + \left(-\color{blue}{\left(x \cdot a\right)} \cdot t\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
  3. Recombined 4 regimes into one program.
  4. Final simplification12.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le -7.276076652476422723184151660607198493295 \cdot 10^{-42}:\\ \;\;\;\;\left(\left(x \cdot \left(y \cdot z\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - \left(b \cdot \left(\sqrt[3]{c \cdot z - i \cdot a} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)\right) \cdot \sqrt[3]{c \cdot z - i \cdot a}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{elif}\;y \le -2.765207802801297782227349629851777181967 \cdot 10^{-96}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-i \cdot \left(j \cdot y\right)\right)\right)\\ \mathbf{elif}\;y \le 7.448778321262618814210345647292621144017 \cdot 10^{-301}:\\ \;\;\;\;\left(\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \left(y \cdot z\right)\right) + \left(-a \cdot \left(x \cdot t\right)\right)\right) - \left(z \cdot \left(b \cdot c\right) + \left(-i \cdot a\right) \cdot b\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{elif}\;y \le 1.714973672352425960028893737750560179991 \cdot 10^{93}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(t \cdot \left(j \cdot c\right) + \left(-i \cdot \left(j \cdot y\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(x \cdot \left(y \cdot z\right) + \left(-\left(x \cdot a\right) \cdot t\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019350 
(FPCore (x y z t a b c i j)
  :name "Linear.Matrix:det33 from linear-1.19.1.3"
  :precision binary64

  :herbie-target
  (if (< t -8.120978919195912e-33) (- (* x (- (* z y) (* a t))) (- (* b (- (* z c) (* a i))) (* (- (* c t) (* y i)) j))) (if (< t -4.712553818218485e-169) (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (/ (* j (- (pow (* c t) 2) (pow (* i y) 2))) (+ (* c t) (* i y)))) (if (< t -7.633533346031584e-308) (- (* x (- (* z y) (* a t))) (- (* b (- (* z c) (* a i))) (* (- (* c t) (* y i)) j))) (if (< t 1.0535888557455487e-139) (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (/ (* j (- (pow (* c t) 2) (pow (* i y) 2))) (+ (* c t) (* i y)))) (- (* x (- (* z y) (* a t))) (- (* b (- (* z c) (* a i))) (* (- (* c t) (* y i)) j)))))))

  (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))