Average Error: 5.6 → 2.0
Time: 35.1s
Precision: 64
\[\left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\]
\[\begin{array}{l} \mathbf{if}\;t \le -2.290721253144602 \cdot 10^{-39}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - j \cdot \left(27.0 \cdot k\right)\\ \mathbf{elif}\;t \le 22289.977042498147:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(t \cdot z\right) \cdot y\right) \cdot \left(x \cdot 18.0\right) - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - \sqrt[3]{\left(j \cdot 27.0\right) \cdot k} \cdot \left(\sqrt[3]{\left(j \cdot 27.0\right) \cdot k} \cdot \sqrt[3]{\left(j \cdot 27.0\right) \cdot k}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - j \cdot \left(27.0 \cdot k\right)\\ \end{array}\]
\left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k
\begin{array}{l}
\mathbf{if}\;t \le -2.290721253144602 \cdot 10^{-39}:\\
\;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - j \cdot \left(27.0 \cdot k\right)\\

\mathbf{elif}\;t \le 22289.977042498147:\\
\;\;\;\;\left(\left(b \cdot c + \left(\left(\left(t \cdot z\right) \cdot y\right) \cdot \left(x \cdot 18.0\right) - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - \sqrt[3]{\left(j \cdot 27.0\right) \cdot k} \cdot \left(\sqrt[3]{\left(j \cdot 27.0\right) \cdot k} \cdot \sqrt[3]{\left(j \cdot 27.0\right) \cdot k}\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - j \cdot \left(27.0 \cdot 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 r5155534 = x;
        double r5155535 = 18.0;
        double r5155536 = r5155534 * r5155535;
        double r5155537 = y;
        double r5155538 = r5155536 * r5155537;
        double r5155539 = z;
        double r5155540 = r5155538 * r5155539;
        double r5155541 = t;
        double r5155542 = r5155540 * r5155541;
        double r5155543 = a;
        double r5155544 = 4.0;
        double r5155545 = r5155543 * r5155544;
        double r5155546 = r5155545 * r5155541;
        double r5155547 = r5155542 - r5155546;
        double r5155548 = b;
        double r5155549 = c;
        double r5155550 = r5155548 * r5155549;
        double r5155551 = r5155547 + r5155550;
        double r5155552 = r5155534 * r5155544;
        double r5155553 = i;
        double r5155554 = r5155552 * r5155553;
        double r5155555 = r5155551 - r5155554;
        double r5155556 = j;
        double r5155557 = 27.0;
        double r5155558 = r5155556 * r5155557;
        double r5155559 = k;
        double r5155560 = r5155558 * r5155559;
        double r5155561 = r5155555 - r5155560;
        return r5155561;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r5155562 = t;
        double r5155563 = -2.290721253144602e-39;
        bool r5155564 = r5155562 <= r5155563;
        double r5155565 = b;
        double r5155566 = c;
        double r5155567 = r5155565 * r5155566;
        double r5155568 = x;
        double r5155569 = 18.0;
        double r5155570 = r5155568 * r5155569;
        double r5155571 = y;
        double r5155572 = r5155570 * r5155571;
        double r5155573 = z;
        double r5155574 = r5155572 * r5155573;
        double r5155575 = r5155574 * r5155562;
        double r5155576 = a;
        double r5155577 = 4.0;
        double r5155578 = r5155576 * r5155577;
        double r5155579 = r5155578 * r5155562;
        double r5155580 = r5155575 - r5155579;
        double r5155581 = r5155567 + r5155580;
        double r5155582 = r5155577 * r5155568;
        double r5155583 = i;
        double r5155584 = r5155582 * r5155583;
        double r5155585 = r5155581 - r5155584;
        double r5155586 = j;
        double r5155587 = 27.0;
        double r5155588 = k;
        double r5155589 = r5155587 * r5155588;
        double r5155590 = r5155586 * r5155589;
        double r5155591 = r5155585 - r5155590;
        double r5155592 = 22289.977042498147;
        bool r5155593 = r5155562 <= r5155592;
        double r5155594 = r5155562 * r5155573;
        double r5155595 = r5155594 * r5155571;
        double r5155596 = r5155595 * r5155570;
        double r5155597 = r5155596 - r5155579;
        double r5155598 = r5155567 + r5155597;
        double r5155599 = r5155598 - r5155584;
        double r5155600 = r5155586 * r5155587;
        double r5155601 = r5155600 * r5155588;
        double r5155602 = cbrt(r5155601);
        double r5155603 = r5155602 * r5155602;
        double r5155604 = r5155602 * r5155603;
        double r5155605 = r5155599 - r5155604;
        double r5155606 = r5155593 ? r5155605 : r5155591;
        double r5155607 = r5155564 ? r5155591 : r5155606;
        return r5155607;
}

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 t < -2.290721253144602e-39 or 22289.977042498147 < t

    1. Initial program 2.0

      \[\left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\]
    2. Using strategy rm
    3. Applied associate-*l*2.0

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

    if -2.290721253144602e-39 < t < 22289.977042498147

    1. Initial program 8.0

      \[\left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\]
    2. Using strategy rm
    3. Applied associate-*l*4.4

      \[\leadsto \left(\left(\left(\color{blue}{\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot \left(z \cdot t\right)} - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\]
    4. Using strategy rm
    5. Applied associate-*l*1.6

      \[\leadsto \left(\left(\left(\color{blue}{\left(x \cdot 18.0\right) \cdot \left(y \cdot \left(z \cdot t\right)\right)} - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\]
    6. Using strategy rm
    7. Applied add-cube-cbrt1.9

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -2.290721253144602 \cdot 10^{-39}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - j \cdot \left(27.0 \cdot k\right)\\ \mathbf{elif}\;t \le 22289.977042498147:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(t \cdot z\right) \cdot y\right) \cdot \left(x \cdot 18.0\right) - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - \sqrt[3]{\left(j \cdot 27.0\right) \cdot k} \cdot \left(\sqrt[3]{\left(j \cdot 27.0\right) \cdot k} \cdot \sqrt[3]{\left(j \cdot 27.0\right) \cdot k}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - j \cdot \left(27.0 \cdot k\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019152 
(FPCore (x y z t a b c i j k)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1"
  (- (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) (* (* j 27.0) k)))