Average Error: 11.5 → 11.5
Time: 7.2s
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}\;x \le 1.30806973774118257 \cdot 10^{-50}:\\ \;\;\;\;\left(\left(\left(\sqrt[3]{\left(x \cdot y\right) \cdot z} \cdot \sqrt[3]{\left(x \cdot y\right) \cdot z}\right) \cdot \sqrt[3]{\left(x \cdot y\right) \cdot z} + \left(x \cdot t\right) \cdot \left(-a\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(x \cdot y\right) \cdot z + x \cdot \left(t \cdot \left(-a\right)\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}\;x \le 1.30806973774118257 \cdot 10^{-50}:\\
\;\;\;\;\left(\left(\left(\sqrt[3]{\left(x \cdot y\right) \cdot z} \cdot \sqrt[3]{\left(x \cdot y\right) \cdot z}\right) \cdot \sqrt[3]{\left(x \cdot y\right) \cdot z} + \left(x \cdot t\right) \cdot \left(-a\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(x \cdot y\right) \cdot z + x \cdot \left(t \cdot \left(-a\right)\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 r606633 = x;
        double r606634 = y;
        double r606635 = z;
        double r606636 = r606634 * r606635;
        double r606637 = t;
        double r606638 = a;
        double r606639 = r606637 * r606638;
        double r606640 = r606636 - r606639;
        double r606641 = r606633 * r606640;
        double r606642 = b;
        double r606643 = c;
        double r606644 = r606643 * r606635;
        double r606645 = i;
        double r606646 = r606645 * r606638;
        double r606647 = r606644 - r606646;
        double r606648 = r606642 * r606647;
        double r606649 = r606641 - r606648;
        double r606650 = j;
        double r606651 = r606643 * r606637;
        double r606652 = r606645 * r606634;
        double r606653 = r606651 - r606652;
        double r606654 = r606650 * r606653;
        double r606655 = r606649 + r606654;
        return r606655;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r606656 = x;
        double r606657 = 1.3080697377411826e-50;
        bool r606658 = r606656 <= r606657;
        double r606659 = y;
        double r606660 = r606656 * r606659;
        double r606661 = z;
        double r606662 = r606660 * r606661;
        double r606663 = cbrt(r606662);
        double r606664 = r606663 * r606663;
        double r606665 = r606664 * r606663;
        double r606666 = t;
        double r606667 = r606656 * r606666;
        double r606668 = a;
        double r606669 = -r606668;
        double r606670 = r606667 * r606669;
        double r606671 = r606665 + r606670;
        double r606672 = b;
        double r606673 = c;
        double r606674 = r606673 * r606661;
        double r606675 = i;
        double r606676 = r606675 * r606668;
        double r606677 = r606674 - r606676;
        double r606678 = r606672 * r606677;
        double r606679 = r606671 - r606678;
        double r606680 = j;
        double r606681 = r606673 * r606666;
        double r606682 = r606675 * r606659;
        double r606683 = r606681 - r606682;
        double r606684 = r606680 * r606683;
        double r606685 = r606679 + r606684;
        double r606686 = r606666 * r606669;
        double r606687 = r606656 * r606686;
        double r606688 = r606662 + r606687;
        double r606689 = r606688 - r606678;
        double r606690 = r606689 + r606684;
        double r606691 = r606658 ? r606685 : r606690;
        return r606691;
}

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

Original11.5
Target15.4
Herbie11.5
\[\begin{array}{l} \mathbf{if}\;t \lt -8.1209789191959122 \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.7125538182184851 \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.63353334603158369 \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.0535888557455487 \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 2 regimes
  2. if x < 1.3080697377411826e-50

    1. Initial program 12.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. Using strategy rm
    3. Applied sub-neg12.7

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

      \[\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. Using strategy rm
    6. Applied distribute-rgt-neg-in12.7

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

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

      \[\leadsto \left(\left(\color{blue}{\left(x \cdot y\right) \cdot z} + \left(x \cdot t\right) \cdot \left(-a\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    10. Using strategy rm
    11. Applied add-cube-cbrt11.4

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

    if 1.3080697377411826e-50 < x

    1. Initial program 7.5

      \[\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-neg7.5

      \[\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-in7.5

      \[\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. Using strategy rm
    6. Applied distribute-rgt-neg-in7.5

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

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

      \[\leadsto \left(\left(\color{blue}{\left(x \cdot y\right) \cdot z} + \left(x \cdot t\right) \cdot \left(-a\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    10. Using strategy rm
    11. Applied associate-*l*11.9

      \[\leadsto \left(\left(\left(x \cdot y\right) \cdot z + \color{blue}{x \cdot \left(t \cdot \left(-a\right)\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 2 regimes into one program.
  4. Final simplification11.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le 1.30806973774118257 \cdot 10^{-50}:\\ \;\;\;\;\left(\left(\left(\sqrt[3]{\left(x \cdot y\right) \cdot z} \cdot \sqrt[3]{\left(x \cdot y\right) \cdot z}\right) \cdot \sqrt[3]{\left(x \cdot y\right) \cdot z} + \left(x \cdot t\right) \cdot \left(-a\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(x \cdot y\right) \cdot z + x \cdot \left(t \cdot \left(-a\right)\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 2020056 
(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)))))