Average Error: 5.5 → 1.7
Time: 24.6s
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}\;x \le -1.15848203748868583 \cdot 10^{-15} \lor \neg \left(x \le 4.75949776591493624 \cdot 10^{-71}\right):\\ \;\;\;\;\left(\left(\left(x \cdot \left(\left(18 \cdot y\right) \cdot \left(z \cdot t\right)\right) - \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\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)\right) \cdot \sqrt[3]{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\\ \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}\;x \le -1.15848203748868583 \cdot 10^{-15} \lor \neg \left(x \le 4.75949776591493624 \cdot 10^{-71}\right):\\
\;\;\;\;\left(\left(\left(x \cdot \left(\left(18 \cdot y\right) \cdot \left(z \cdot t\right)\right) - \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\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)\right) \cdot \sqrt[3]{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\\

\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 r142410 = x;
        double r142411 = 18.0;
        double r142412 = r142410 * r142411;
        double r142413 = y;
        double r142414 = r142412 * r142413;
        double r142415 = z;
        double r142416 = r142414 * r142415;
        double r142417 = t;
        double r142418 = r142416 * r142417;
        double r142419 = a;
        double r142420 = 4.0;
        double r142421 = r142419 * r142420;
        double r142422 = r142421 * r142417;
        double r142423 = r142418 - r142422;
        double r142424 = b;
        double r142425 = c;
        double r142426 = r142424 * r142425;
        double r142427 = r142423 + r142426;
        double r142428 = r142410 * r142420;
        double r142429 = i;
        double r142430 = r142428 * r142429;
        double r142431 = r142427 - r142430;
        double r142432 = j;
        double r142433 = 27.0;
        double r142434 = r142432 * r142433;
        double r142435 = k;
        double r142436 = r142434 * r142435;
        double r142437 = r142431 - r142436;
        return r142437;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r142438 = x;
        double r142439 = -1.1584820374886858e-15;
        bool r142440 = r142438 <= r142439;
        double r142441 = 4.759497765914936e-71;
        bool r142442 = r142438 <= r142441;
        double r142443 = !r142442;
        bool r142444 = r142440 || r142443;
        double r142445 = 18.0;
        double r142446 = y;
        double r142447 = r142445 * r142446;
        double r142448 = z;
        double r142449 = t;
        double r142450 = r142448 * r142449;
        double r142451 = r142447 * r142450;
        double r142452 = r142438 * r142451;
        double r142453 = a;
        double r142454 = 4.0;
        double r142455 = r142453 * r142454;
        double r142456 = r142455 * r142449;
        double r142457 = r142452 - r142456;
        double r142458 = b;
        double r142459 = c;
        double r142460 = r142458 * r142459;
        double r142461 = r142457 + r142460;
        double r142462 = r142438 * r142454;
        double r142463 = i;
        double r142464 = r142462 * r142463;
        double r142465 = r142461 - r142464;
        double r142466 = j;
        double r142467 = 27.0;
        double r142468 = r142466 * r142467;
        double r142469 = k;
        double r142470 = r142468 * r142469;
        double r142471 = r142465 - r142470;
        double r142472 = r142438 * r142445;
        double r142473 = r142472 * r142446;
        double r142474 = r142473 * r142448;
        double r142475 = cbrt(r142449);
        double r142476 = r142475 * r142475;
        double r142477 = r142474 * r142476;
        double r142478 = r142477 * r142475;
        double r142479 = r142478 - r142456;
        double r142480 = r142479 + r142460;
        double r142481 = r142480 - r142464;
        double r142482 = r142481 - r142470;
        double r142483 = r142444 ? r142471 : r142482;
        return r142483;
}

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

Derivation

  1. Split input into 2 regimes
  2. if x < -1.1584820374886858e-15 or 4.759497765914936e-71 < x

    1. Initial program 10.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 associate-*l*7.5

      \[\leadsto \left(\left(\left(\color{blue}{\left(\left(x \cdot 18\right) \cdot y\right) \cdot \left(z \cdot t\right)} - \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\]
    4. Using strategy rm
    5. Applied associate-*l*7.5

      \[\leadsto \left(\left(\left(\color{blue}{\left(x \cdot \left(18 \cdot y\right)\right)} \cdot \left(z \cdot t\right) - \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\]
    6. Using strategy rm
    7. Applied associate-*l*1.9

      \[\leadsto \left(\left(\left(\color{blue}{x \cdot \left(\left(18 \cdot y\right) \cdot \left(z \cdot t\right)\right)} - \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\]

    if -1.1584820374886858e-15 < x < 4.759497765914936e-71

    1. Initial program 1.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 add-cube-cbrt1.6

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot \color{blue}{\left(\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}\right)} - \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\]
    4. Applied associate-*r*1.6

      \[\leadsto \left(\left(\left(\color{blue}{\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)\right) \cdot \sqrt[3]{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\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -1.15848203748868583 \cdot 10^{-15} \lor \neg \left(x \le 4.75949776591493624 \cdot 10^{-71}\right):\\ \;\;\;\;\left(\left(\left(x \cdot \left(\left(18 \cdot y\right) \cdot \left(z \cdot t\right)\right) - \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\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)\right) \cdot \sqrt[3]{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\\ \end{array}\]

Reproduce

herbie shell --seed 2020083 
(FPCore (x y z t a b c i j k)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1"
  :precision binary64
  (- (- (+ (- (* (* (* (* x 18) y) z) t) (* (* a 4) t)) (* b c)) (* (* x 4) i)) (* (* j 27) k)))