Average Error: 5.5 → 2.0
Time: 10.0s
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}\;t \le -1.036775871972911749699325479966497352254 \cdot 10^{-16}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right)\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\\ \mathbf{elif}\;t \le 1.532489333056134866631301001282850563412 \cdot 10^{-52}:\\ \;\;\;\;\left(\left(\left(\left(x \cdot 18\right) \cdot \left(\left(\sqrt[3]{y \cdot \left(z \cdot t\right)} \cdot \sqrt[3]{y \cdot \left(z \cdot t\right)}\right) \cdot \sqrt[3]{y \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}:\\ \;\;\;\;t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\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}\;t \le -1.036775871972911749699325479966497352254 \cdot 10^{-16}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right)\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\\

\mathbf{elif}\;t \le 1.532489333056134866631301001282850563412 \cdot 10^{-52}:\\
\;\;\;\;\left(\left(\left(\left(x \cdot 18\right) \cdot \left(\left(\sqrt[3]{y \cdot \left(z \cdot t\right)} \cdot \sqrt[3]{y \cdot \left(z \cdot t\right)}\right) \cdot \sqrt[3]{y \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}:\\
\;\;\;\;t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\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 k) {
        double r180413 = x;
        double r180414 = 18.0;
        double r180415 = r180413 * r180414;
        double r180416 = y;
        double r180417 = r180415 * r180416;
        double r180418 = z;
        double r180419 = r180417 * r180418;
        double r180420 = t;
        double r180421 = r180419 * r180420;
        double r180422 = a;
        double r180423 = 4.0;
        double r180424 = r180422 * r180423;
        double r180425 = r180424 * r180420;
        double r180426 = r180421 - r180425;
        double r180427 = b;
        double r180428 = c;
        double r180429 = r180427 * r180428;
        double r180430 = r180426 + r180429;
        double r180431 = r180413 * r180423;
        double r180432 = i;
        double r180433 = r180431 * r180432;
        double r180434 = r180430 - r180433;
        double r180435 = j;
        double r180436 = 27.0;
        double r180437 = r180435 * r180436;
        double r180438 = k;
        double r180439 = r180437 * r180438;
        double r180440 = r180434 - r180439;
        return r180440;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r180441 = t;
        double r180442 = -1.0367758719729117e-16;
        bool r180443 = r180441 <= r180442;
        double r180444 = x;
        double r180445 = 18.0;
        double r180446 = r180444 * r180445;
        double r180447 = y;
        double r180448 = z;
        double r180449 = r180447 * r180448;
        double r180450 = r180446 * r180449;
        double r180451 = r180450 * r180441;
        double r180452 = a;
        double r180453 = 4.0;
        double r180454 = r180452 * r180453;
        double r180455 = r180454 * r180441;
        double r180456 = r180451 - r180455;
        double r180457 = b;
        double r180458 = c;
        double r180459 = r180457 * r180458;
        double r180460 = r180456 + r180459;
        double r180461 = r180444 * r180453;
        double r180462 = i;
        double r180463 = r180461 * r180462;
        double r180464 = r180460 - r180463;
        double r180465 = j;
        double r180466 = 27.0;
        double r180467 = r180465 * r180466;
        double r180468 = k;
        double r180469 = r180467 * r180468;
        double r180470 = r180464 - r180469;
        double r180471 = 1.5324893330561349e-52;
        bool r180472 = r180441 <= r180471;
        double r180473 = r180448 * r180441;
        double r180474 = r180447 * r180473;
        double r180475 = cbrt(r180474);
        double r180476 = r180475 * r180475;
        double r180477 = r180476 * r180475;
        double r180478 = r180446 * r180477;
        double r180479 = r180478 - r180455;
        double r180480 = r180479 + r180459;
        double r180481 = r180480 - r180463;
        double r180482 = r180481 - r180469;
        double r180483 = r180446 * r180447;
        double r180484 = r180483 * r180448;
        double r180485 = r180484 - r180454;
        double r180486 = r180441 * r180485;
        double r180487 = r180463 + r180469;
        double r180488 = r180459 - r180487;
        double r180489 = r180486 + r180488;
        double r180490 = r180472 ? r180482 : r180489;
        double r180491 = r180443 ? r180470 : r180490;
        return r180491;
}

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 3 regimes
  2. if t < -1.0367758719729117e-16

    1. Initial program 2.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*2.7

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

    if -1.0367758719729117e-16 < t < 1.5324893330561349e-52

    1. Initial program 8.0

      \[\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*4.0

      \[\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*1.6

      \[\leadsto \left(\left(\left(\color{blue}{\left(x \cdot 18\right) \cdot \left(y \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\]
    6. Using strategy rm
    7. Applied add-cube-cbrt1.6

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

    1. Initial program 2.1

      \[\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. Simplified2.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1.036775871972911749699325479966497352254 \cdot 10^{-16}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right)\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\\ \mathbf{elif}\;t \le 1.532489333056134866631301001282850563412 \cdot 10^{-52}:\\ \;\;\;\;\left(\left(\left(\left(x \cdot 18\right) \cdot \left(\left(\sqrt[3]{y \cdot \left(z \cdot t\right)} \cdot \sqrt[3]{y \cdot \left(z \cdot t\right)}\right) \cdot \sqrt[3]{y \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}:\\ \;\;\;\;t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019322 
(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)))