Average Error: 12.2 → 10.6
Time: 23.5s
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}\;b \le -6389942398473198090210217295872:\\ \;\;\;\;\left(a \cdot i - c \cdot z\right) \cdot b + \left(\left(y \cdot \left(x \cdot z\right) - a \cdot \left(x \cdot t\right)\right) + \left(\left(-y \cdot i\right) \cdot j + \left(t \cdot j\right) \cdot c\right)\right)\\ \mathbf{elif}\;b \le 1.002984371457371897530186849635221170932 \cdot 10^{-214}:\\ \;\;\;\;\left(a \cdot \left(i \cdot b\right) - \left(b \cdot z\right) \cdot c\right) + \left(\left(y \cdot z - a \cdot t\right) \cdot x + \left(c \cdot t - y \cdot i\right) \cdot j\right)\\ \mathbf{elif}\;b \le 5.220563116893869664129944069723770605172 \cdot 10^{-121} \lor \neg \left(b \le 26916558763106272\right):\\ \;\;\;\;\left(\left(\left(-i\right) \cdot \left(j \cdot y\right) + \left(t \cdot j\right) \cdot c\right) + \left(y \cdot \left(x \cdot z\right) - \left(x \cdot a\right) \cdot t\right)\right) + \left(a \cdot i - c \cdot z\right) \cdot b\\ \mathbf{else}:\\ \;\;\;\;\left(a \cdot i - c \cdot z\right) \cdot b + \left(\left(y \cdot \left(x \cdot z\right) - a \cdot \left(x \cdot t\right)\right) + \left(\left(-y \cdot i\right) \cdot j + \left(t \cdot j\right) \cdot c\right)\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}\;b \le -6389942398473198090210217295872:\\
\;\;\;\;\left(a \cdot i - c \cdot z\right) \cdot b + \left(\left(y \cdot \left(x \cdot z\right) - a \cdot \left(x \cdot t\right)\right) + \left(\left(-y \cdot i\right) \cdot j + \left(t \cdot j\right) \cdot c\right)\right)\\

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

\mathbf{elif}\;b \le 5.220563116893869664129944069723770605172 \cdot 10^{-121} \lor \neg \left(b \le 26916558763106272\right):\\
\;\;\;\;\left(\left(\left(-i\right) \cdot \left(j \cdot y\right) + \left(t \cdot j\right) \cdot c\right) + \left(y \cdot \left(x \cdot z\right) - \left(x \cdot a\right) \cdot t\right)\right) + \left(a \cdot i - c \cdot z\right) \cdot b\\

\mathbf{else}:\\
\;\;\;\;\left(a \cdot i - c \cdot z\right) \cdot b + \left(\left(y \cdot \left(x \cdot z\right) - a \cdot \left(x \cdot t\right)\right) + \left(\left(-y \cdot i\right) \cdot j + \left(t \cdot j\right) \cdot c\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 r496594 = x;
        double r496595 = y;
        double r496596 = z;
        double r496597 = r496595 * r496596;
        double r496598 = t;
        double r496599 = a;
        double r496600 = r496598 * r496599;
        double r496601 = r496597 - r496600;
        double r496602 = r496594 * r496601;
        double r496603 = b;
        double r496604 = c;
        double r496605 = r496604 * r496596;
        double r496606 = i;
        double r496607 = r496606 * r496599;
        double r496608 = r496605 - r496607;
        double r496609 = r496603 * r496608;
        double r496610 = r496602 - r496609;
        double r496611 = j;
        double r496612 = r496604 * r496598;
        double r496613 = r496606 * r496595;
        double r496614 = r496612 - r496613;
        double r496615 = r496611 * r496614;
        double r496616 = r496610 + r496615;
        return r496616;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r496617 = b;
        double r496618 = -6.389942398473198e+30;
        bool r496619 = r496617 <= r496618;
        double r496620 = a;
        double r496621 = i;
        double r496622 = r496620 * r496621;
        double r496623 = c;
        double r496624 = z;
        double r496625 = r496623 * r496624;
        double r496626 = r496622 - r496625;
        double r496627 = r496626 * r496617;
        double r496628 = y;
        double r496629 = x;
        double r496630 = r496629 * r496624;
        double r496631 = r496628 * r496630;
        double r496632 = t;
        double r496633 = r496629 * r496632;
        double r496634 = r496620 * r496633;
        double r496635 = r496631 - r496634;
        double r496636 = r496628 * r496621;
        double r496637 = -r496636;
        double r496638 = j;
        double r496639 = r496637 * r496638;
        double r496640 = r496632 * r496638;
        double r496641 = r496640 * r496623;
        double r496642 = r496639 + r496641;
        double r496643 = r496635 + r496642;
        double r496644 = r496627 + r496643;
        double r496645 = 1.002984371457372e-214;
        bool r496646 = r496617 <= r496645;
        double r496647 = r496621 * r496617;
        double r496648 = r496620 * r496647;
        double r496649 = r496617 * r496624;
        double r496650 = r496649 * r496623;
        double r496651 = r496648 - r496650;
        double r496652 = r496628 * r496624;
        double r496653 = r496620 * r496632;
        double r496654 = r496652 - r496653;
        double r496655 = r496654 * r496629;
        double r496656 = r496623 * r496632;
        double r496657 = r496656 - r496636;
        double r496658 = r496657 * r496638;
        double r496659 = r496655 + r496658;
        double r496660 = r496651 + r496659;
        double r496661 = 5.22056311689387e-121;
        bool r496662 = r496617 <= r496661;
        double r496663 = 2.691655876310627e+16;
        bool r496664 = r496617 <= r496663;
        double r496665 = !r496664;
        bool r496666 = r496662 || r496665;
        double r496667 = -r496621;
        double r496668 = r496638 * r496628;
        double r496669 = r496667 * r496668;
        double r496670 = r496669 + r496641;
        double r496671 = r496629 * r496620;
        double r496672 = r496671 * r496632;
        double r496673 = r496631 - r496672;
        double r496674 = r496670 + r496673;
        double r496675 = r496674 + r496627;
        double r496676 = r496666 ? r496675 : r496644;
        double r496677 = r496646 ? r496660 : r496676;
        double r496678 = r496619 ? r496644 : r496677;
        return r496678;
}

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.2
Target16.3
Herbie10.6
\[\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 3 regimes
  2. if b < -6.389942398473198e+30 or 5.22056311689387e-121 < b < 2.691655876310627e+16

    1. Initial program 9.6

      \[\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. Simplified9.6

      \[\leadsto \color{blue}{\left(a \cdot i - z \cdot c\right) \cdot b + \left(\left(z \cdot y - t \cdot a\right) \cdot x + j \cdot \left(t \cdot c - i \cdot y\right)\right)}\]
    3. Taylor expanded around inf 9.8

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

      \[\leadsto \left(a \cdot i - z \cdot c\right) \cdot b + \left(\color{blue}{\left(y \cdot \left(x \cdot z\right) - t \cdot \left(x \cdot a\right)\right)} + j \cdot \left(t \cdot c - i \cdot y\right)\right)\]
    5. Using strategy rm
    6. Applied *-un-lft-identity9.2

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

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

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

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

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

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

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

    if -6.389942398473198e+30 < b < 1.002984371457372e-214

    1. Initial program 15.7

      \[\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. Simplified15.7

      \[\leadsto \color{blue}{\left(a \cdot i - z \cdot c\right) \cdot b + \left(\left(z \cdot y - t \cdot a\right) \cdot x + j \cdot \left(t \cdot c - i \cdot y\right)\right)}\]
    3. Taylor expanded around inf 10.2

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

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

    if 1.002984371457372e-214 < b < 5.22056311689387e-121 or 2.691655876310627e+16 < b

    1. Initial program 9.6

      \[\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. Simplified9.6

      \[\leadsto \color{blue}{\left(a \cdot i - z \cdot c\right) \cdot b + \left(\left(z \cdot y - t \cdot a\right) \cdot x + j \cdot \left(t \cdot c - i \cdot y\right)\right)}\]
    3. Taylor expanded around inf 10.2

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

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -6389942398473198090210217295872:\\ \;\;\;\;\left(a \cdot i - c \cdot z\right) \cdot b + \left(\left(y \cdot \left(x \cdot z\right) - a \cdot \left(x \cdot t\right)\right) + \left(\left(-y \cdot i\right) \cdot j + \left(t \cdot j\right) \cdot c\right)\right)\\ \mathbf{elif}\;b \le 1.002984371457371897530186849635221170932 \cdot 10^{-214}:\\ \;\;\;\;\left(a \cdot \left(i \cdot b\right) - \left(b \cdot z\right) \cdot c\right) + \left(\left(y \cdot z - a \cdot t\right) \cdot x + \left(c \cdot t - y \cdot i\right) \cdot j\right)\\ \mathbf{elif}\;b \le 5.220563116893869664129944069723770605172 \cdot 10^{-121} \lor \neg \left(b \le 26916558763106272\right):\\ \;\;\;\;\left(\left(\left(-i\right) \cdot \left(j \cdot y\right) + \left(t \cdot j\right) \cdot c\right) + \left(y \cdot \left(x \cdot z\right) - \left(x \cdot a\right) \cdot t\right)\right) + \left(a \cdot i - c \cdot z\right) \cdot b\\ \mathbf{else}:\\ \;\;\;\;\left(a \cdot i - c \cdot z\right) \cdot b + \left(\left(y \cdot \left(x \cdot z\right) - a \cdot \left(x \cdot t\right)\right) + \left(\left(-y \cdot i\right) \cdot j + \left(t \cdot j\right) \cdot c\right)\right)\\ \end{array}\]

Reproduce

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

  :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.0) (pow (* i y) 2.0))) (+ (* 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.0) (pow (* i y) 2.0))) (+ (* 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)))))