Average Error: 3.8 → 1.0
Time: 8.6s
Precision: 64
\[\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b\]
\[\begin{array}{l} \mathbf{if}\;\left(\left(y \cdot 9\right) \cdot z\right) \cdot t = -\infty:\\ \;\;\;\;\left(x \cdot 2 - y \cdot \left(\left(9 \cdot z\right) \cdot t\right)\right) + \left(\sqrt[3]{\left(a \cdot 27\right) \cdot b} \cdot \sqrt[3]{\left(a \cdot 27\right) \cdot b}\right) \cdot \sqrt[3]{\left(a \cdot 27\right) \cdot b}\\ \mathbf{elif}\;\left(\left(y \cdot 9\right) \cdot z\right) \cdot t \le 8.81455376018243294 \cdot 10^{242}:\\ \;\;\;\;\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + a \cdot \left(27 \cdot b\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot 2 - y \cdot \left(9 \cdot \left(z \cdot t\right)\right)\right) + \left(\left(a \cdot 27\right) \cdot \left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right)\right) \cdot \sqrt[3]{b}\\ \end{array}\]
\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b
\begin{array}{l}
\mathbf{if}\;\left(\left(y \cdot 9\right) \cdot z\right) \cdot t = -\infty:\\
\;\;\;\;\left(x \cdot 2 - y \cdot \left(\left(9 \cdot z\right) \cdot t\right)\right) + \left(\sqrt[3]{\left(a \cdot 27\right) \cdot b} \cdot \sqrt[3]{\left(a \cdot 27\right) \cdot b}\right) \cdot \sqrt[3]{\left(a \cdot 27\right) \cdot b}\\

\mathbf{elif}\;\left(\left(y \cdot 9\right) \cdot z\right) \cdot t \le 8.81455376018243294 \cdot 10^{242}:\\
\;\;\;\;\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + a \cdot \left(27 \cdot b\right)\\

\mathbf{else}:\\
\;\;\;\;\left(x \cdot 2 - y \cdot \left(9 \cdot \left(z \cdot t\right)\right)\right) + \left(\left(a \cdot 27\right) \cdot \left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right)\right) \cdot \sqrt[3]{b}\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r443661 = x;
        double r443662 = 2.0;
        double r443663 = r443661 * r443662;
        double r443664 = y;
        double r443665 = 9.0;
        double r443666 = r443664 * r443665;
        double r443667 = z;
        double r443668 = r443666 * r443667;
        double r443669 = t;
        double r443670 = r443668 * r443669;
        double r443671 = r443663 - r443670;
        double r443672 = a;
        double r443673 = 27.0;
        double r443674 = r443672 * r443673;
        double r443675 = b;
        double r443676 = r443674 * r443675;
        double r443677 = r443671 + r443676;
        return r443677;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r443678 = y;
        double r443679 = 9.0;
        double r443680 = r443678 * r443679;
        double r443681 = z;
        double r443682 = r443680 * r443681;
        double r443683 = t;
        double r443684 = r443682 * r443683;
        double r443685 = -inf.0;
        bool r443686 = r443684 <= r443685;
        double r443687 = x;
        double r443688 = 2.0;
        double r443689 = r443687 * r443688;
        double r443690 = r443679 * r443681;
        double r443691 = r443690 * r443683;
        double r443692 = r443678 * r443691;
        double r443693 = r443689 - r443692;
        double r443694 = a;
        double r443695 = 27.0;
        double r443696 = r443694 * r443695;
        double r443697 = b;
        double r443698 = r443696 * r443697;
        double r443699 = cbrt(r443698);
        double r443700 = r443699 * r443699;
        double r443701 = r443700 * r443699;
        double r443702 = r443693 + r443701;
        double r443703 = 8.814553760182433e+242;
        bool r443704 = r443684 <= r443703;
        double r443705 = r443689 - r443684;
        double r443706 = r443695 * r443697;
        double r443707 = r443694 * r443706;
        double r443708 = r443705 + r443707;
        double r443709 = r443681 * r443683;
        double r443710 = r443679 * r443709;
        double r443711 = r443678 * r443710;
        double r443712 = r443689 - r443711;
        double r443713 = cbrt(r443697);
        double r443714 = r443713 * r443713;
        double r443715 = r443696 * r443714;
        double r443716 = r443715 * r443713;
        double r443717 = r443712 + r443716;
        double r443718 = r443704 ? r443708 : r443717;
        double r443719 = r443686 ? r443702 : r443718;
        return r443719;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original3.8
Target2.6
Herbie1.0
\[\begin{array}{l} \mathbf{if}\;y \lt 7.590524218811189 \cdot 10^{-161}:\\ \;\;\;\;\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + a \cdot \left(27 \cdot b\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot 2 - 9 \cdot \left(y \cdot \left(t \cdot z\right)\right)\right) + \left(a \cdot 27\right) \cdot b\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if (* (* (* y 9.0) z) t) < -inf.0

    1. Initial program 64.0

      \[\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b\]
    2. Using strategy rm
    3. Applied associate-*l*2.4

      \[\leadsto \left(x \cdot 2 - \color{blue}{\left(y \cdot 9\right) \cdot \left(z \cdot t\right)}\right) + \left(a \cdot 27\right) \cdot b\]
    4. Using strategy rm
    5. Applied associate-*l*0.6

      \[\leadsto \left(x \cdot 2 - \color{blue}{y \cdot \left(9 \cdot \left(z \cdot t\right)\right)}\right) + \left(a \cdot 27\right) \cdot b\]
    6. Using strategy rm
    7. Applied associate-*r*0.6

      \[\leadsto \left(x \cdot 2 - y \cdot \color{blue}{\left(\left(9 \cdot z\right) \cdot t\right)}\right) + \left(a \cdot 27\right) \cdot b\]
    8. Using strategy rm
    9. Applied add-cube-cbrt0.7

      \[\leadsto \left(x \cdot 2 - y \cdot \left(\left(9 \cdot z\right) \cdot t\right)\right) + \color{blue}{\left(\sqrt[3]{\left(a \cdot 27\right) \cdot b} \cdot \sqrt[3]{\left(a \cdot 27\right) \cdot b}\right) \cdot \sqrt[3]{\left(a \cdot 27\right) \cdot b}}\]

    if -inf.0 < (* (* (* y 9.0) z) t) < 8.814553760182433e+242

    1. Initial program 0.5

      \[\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b\]
    2. Using strategy rm
    3. Applied associate-*l*0.5

      \[\leadsto \left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \color{blue}{a \cdot \left(27 \cdot b\right)}\]

    if 8.814553760182433e+242 < (* (* (* y 9.0) z) t)

    1. Initial program 31.8

      \[\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b\]
    2. Using strategy rm
    3. Applied associate-*l*9.9

      \[\leadsto \left(x \cdot 2 - \color{blue}{\left(y \cdot 9\right) \cdot \left(z \cdot t\right)}\right) + \left(a \cdot 27\right) \cdot b\]
    4. Using strategy rm
    5. Applied associate-*l*9.1

      \[\leadsto \left(x \cdot 2 - \color{blue}{y \cdot \left(9 \cdot \left(z \cdot t\right)\right)}\right) + \left(a \cdot 27\right) \cdot b\]
    6. Using strategy rm
    7. Applied add-cube-cbrt9.1

      \[\leadsto \left(x \cdot 2 - y \cdot \left(9 \cdot \left(z \cdot t\right)\right)\right) + \left(a \cdot 27\right) \cdot \color{blue}{\left(\left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right) \cdot \sqrt[3]{b}\right)}\]
    8. Applied associate-*r*9.1

      \[\leadsto \left(x \cdot 2 - y \cdot \left(9 \cdot \left(z \cdot t\right)\right)\right) + \color{blue}{\left(\left(a \cdot 27\right) \cdot \left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right)\right) \cdot \sqrt[3]{b}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification1.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(\left(y \cdot 9\right) \cdot z\right) \cdot t = -\infty:\\ \;\;\;\;\left(x \cdot 2 - y \cdot \left(\left(9 \cdot z\right) \cdot t\right)\right) + \left(\sqrt[3]{\left(a \cdot 27\right) \cdot b} \cdot \sqrt[3]{\left(a \cdot 27\right) \cdot b}\right) \cdot \sqrt[3]{\left(a \cdot 27\right) \cdot b}\\ \mathbf{elif}\;\left(\left(y \cdot 9\right) \cdot z\right) \cdot t \le 8.81455376018243294 \cdot 10^{242}:\\ \;\;\;\;\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + a \cdot \left(27 \cdot b\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot 2 - y \cdot \left(9 \cdot \left(z \cdot t\right)\right)\right) + \left(\left(a \cdot 27\right) \cdot \left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right)\right) \cdot \sqrt[3]{b}\\ \end{array}\]

Reproduce

herbie shell --seed 2020042 
(FPCore (x y z t a b)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, A"
  :precision binary64

  :herbie-target
  (if (< y 7.590524218811189e-161) (+ (- (* x 2) (* (* (* y 9) z) t)) (* a (* 27 b))) (+ (- (* x 2) (* 9 (* y (* t z)))) (* (* a 27) b)))

  (+ (- (* x 2) (* (* (* y 9) z) t)) (* (* a 27) b)))