Average Error: 5.5 → 3.1
Time: 6.9s
Precision: 64
\[\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
\[\begin{array}{l} \mathbf{if}\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i = -\infty \lor \neg \left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i \le 5.3319379792198453 \cdot 10^{304}\right):\\ \;\;\;\;\left(\left(\left(0 \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - j \cdot \left(27 \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(\sqrt[3]{\left(j \cdot 27\right) \cdot k} \cdot \sqrt[3]{\left(j \cdot 27\right) \cdot k}\right) \cdot \left(\sqrt[3]{j \cdot 27} \cdot \sqrt[3]{k}\right)\\ \end{array}\]
\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k
\begin{array}{l}
\mathbf{if}\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i = -\infty \lor \neg \left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i \le 5.3319379792198453 \cdot 10^{304}\right):\\
\;\;\;\;\left(\left(\left(0 \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - j \cdot \left(27 \cdot k\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(\sqrt[3]{\left(j \cdot 27\right) \cdot k} \cdot \sqrt[3]{\left(j \cdot 27\right) \cdot k}\right) \cdot \left(\sqrt[3]{j \cdot 27} \cdot \sqrt[3]{k}\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 r730100 = x;
        double r730101 = 18.0;
        double r730102 = r730100 * r730101;
        double r730103 = y;
        double r730104 = r730102 * r730103;
        double r730105 = z;
        double r730106 = r730104 * r730105;
        double r730107 = t;
        double r730108 = r730106 * r730107;
        double r730109 = a;
        double r730110 = 4.0;
        double r730111 = r730109 * r730110;
        double r730112 = r730111 * r730107;
        double r730113 = r730108 - r730112;
        double r730114 = b;
        double r730115 = c;
        double r730116 = r730114 * r730115;
        double r730117 = r730113 + r730116;
        double r730118 = r730100 * r730110;
        double r730119 = i;
        double r730120 = r730118 * r730119;
        double r730121 = r730117 - r730120;
        double r730122 = j;
        double r730123 = 27.0;
        double r730124 = r730122 * r730123;
        double r730125 = k;
        double r730126 = r730124 * r730125;
        double r730127 = r730121 - r730126;
        return r730127;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r730128 = x;
        double r730129 = 18.0;
        double r730130 = r730128 * r730129;
        double r730131 = y;
        double r730132 = r730130 * r730131;
        double r730133 = z;
        double r730134 = r730132 * r730133;
        double r730135 = t;
        double r730136 = r730134 * r730135;
        double r730137 = a;
        double r730138 = 4.0;
        double r730139 = r730137 * r730138;
        double r730140 = r730139 * r730135;
        double r730141 = r730136 - r730140;
        double r730142 = b;
        double r730143 = c;
        double r730144 = r730142 * r730143;
        double r730145 = r730141 + r730144;
        double r730146 = r730128 * r730138;
        double r730147 = i;
        double r730148 = r730146 * r730147;
        double r730149 = r730145 - r730148;
        double r730150 = -inf.0;
        bool r730151 = r730149 <= r730150;
        double r730152 = 5.331937979219845e+304;
        bool r730153 = r730149 <= r730152;
        double r730154 = !r730153;
        bool r730155 = r730151 || r730154;
        double r730156 = 0.0;
        double r730157 = r730156 * r730135;
        double r730158 = r730157 - r730140;
        double r730159 = r730158 + r730144;
        double r730160 = r730159 - r730148;
        double r730161 = j;
        double r730162 = 27.0;
        double r730163 = k;
        double r730164 = r730162 * r730163;
        double r730165 = r730161 * r730164;
        double r730166 = r730160 - r730165;
        double r730167 = r730161 * r730162;
        double r730168 = r730167 * r730163;
        double r730169 = cbrt(r730168);
        double r730170 = r730169 * r730169;
        double r730171 = cbrt(r730167);
        double r730172 = cbrt(r730163);
        double r730173 = r730171 * r730172;
        double r730174 = r730170 * r730173;
        double r730175 = r730149 - r730174;
        double r730176 = r730155 ? r730166 : r730175;
        return r730176;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original5.5
Target1.6
Herbie3.1
\[\begin{array}{l} \mathbf{if}\;t \lt -1.6210815397541398 \cdot 10^{-69}:\\ \;\;\;\;\left(\left(18 \cdot t\right) \cdot \left(\left(x \cdot y\right) \cdot z\right) - \left(a \cdot t + i \cdot x\right) \cdot 4\right) - \left(\left(k \cdot j\right) \cdot 27 - c \cdot b\right)\\ \mathbf{elif}\;t \lt 165.680279438052224:\\ \;\;\;\;\left(\left(18 \cdot y\right) \cdot \left(x \cdot \left(z \cdot t\right)\right) - \left(a \cdot t + i \cdot x\right) \cdot 4\right) + \left(c \cdot b - 27 \cdot \left(k \cdot j\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(18 \cdot t\right) \cdot \left(\left(x \cdot y\right) \cdot z\right) - \left(a \cdot t + i \cdot x\right) \cdot 4\right) - \left(\left(k \cdot j\right) \cdot 27 - c \cdot b\right)\\ \end{array}\]

Derivation

  1. Split input into 2 regimes
  2. if (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < -inf.0 or 5.331937979219845e+304 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i))

    1. Initial program 60.5

      \[\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    2. Using strategy rm
    3. Applied associate-*l*60.5

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \color{blue}{j \cdot \left(27 \cdot k\right)}\]
    4. Taylor expanded around 0 29.9

      \[\leadsto \left(\left(\left(\color{blue}{0} \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - j \cdot \left(27 \cdot k\right)\]

    if -inf.0 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < 5.331937979219845e+304

    1. Initial program 0.4

      \[\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    2. Using strategy rm
    3. Applied add-cube-cbrt0.6

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \color{blue}{\left(\sqrt[3]{\left(j \cdot 27\right) \cdot k} \cdot \sqrt[3]{\left(j \cdot 27\right) \cdot k}\right) \cdot \sqrt[3]{\left(j \cdot 27\right) \cdot k}}\]
    4. Using strategy rm
    5. Applied cbrt-prod0.6

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(\sqrt[3]{\left(j \cdot 27\right) \cdot k} \cdot \sqrt[3]{\left(j \cdot 27\right) \cdot k}\right) \cdot \color{blue}{\left(\sqrt[3]{j \cdot 27} \cdot \sqrt[3]{k}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification3.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i = -\infty \lor \neg \left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i \le 5.3319379792198453 \cdot 10^{304}\right):\\ \;\;\;\;\left(\left(\left(0 \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - j \cdot \left(27 \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(\sqrt[3]{\left(j \cdot 27\right) \cdot k} \cdot \sqrt[3]{\left(j \cdot 27\right) \cdot k}\right) \cdot \left(\sqrt[3]{j \cdot 27} \cdot \sqrt[3]{k}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020024 
(FPCore (x y z t a b c i j k)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, E"
  :precision binary64

  :herbie-target
  (if (< t -1.6210815397541398e-69) (- (- (* (* 18 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4)) (- (* (* k j) 27) (* c b))) (if (< t 165.68027943805222) (+ (- (* (* 18 y) (* x (* z t))) (* (+ (* a t) (* i x)) 4)) (- (* c b) (* 27 (* k j)))) (- (- (* (* 18 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4)) (- (* (* k j) 27) (* c b)))))

  (- (- (+ (- (* (* (* (* x 18) y) z) t) (* (* a 4) t)) (* b c)) (* (* x 4) i)) (* (* j 27) k)))