Average Error: 5.1 → 4.0
Time: 1.2m
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 -1.0358597655674074 \cdot 10^{-175}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) \cdot \sqrt[3]{z}\right) \cdot t - t \cdot \left(4.0 \cdot a\right)\right)\right) - i \cdot \left(4.0 \cdot x\right)\right) - \left(k \cdot j\right) \cdot 27.0\\ \mathbf{elif}\;t \le 2.4153633075671652 \cdot 10^{-129}:\\ \;\;\;\;\left(\left(b \cdot c + t \cdot \left(4.0 \cdot \left(-a\right)\right)\right) - i \cdot \left(4.0 \cdot x\right)\right) - \left(k \cdot j\right) \cdot 27.0\\ \mathbf{else}:\\ \;\;\;\;\left(\left(b \cdot c + \left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - t \cdot \left(4.0 \cdot a\right)\right)\right) - i \cdot \left(4.0 \cdot x\right)\right) - \left(k \cdot 27.0\right) \cdot j\\ \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 -1.0358597655674074 \cdot 10^{-175}:\\
\;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) \cdot \sqrt[3]{z}\right) \cdot t - t \cdot \left(4.0 \cdot a\right)\right)\right) - i \cdot \left(4.0 \cdot x\right)\right) - \left(k \cdot j\right) \cdot 27.0\\

\mathbf{elif}\;t \le 2.4153633075671652 \cdot 10^{-129}:\\
\;\;\;\;\left(\left(b \cdot c + t \cdot \left(4.0 \cdot \left(-a\right)\right)\right) - i \cdot \left(4.0 \cdot x\right)\right) - \left(k \cdot j\right) \cdot 27.0\\

\mathbf{else}:\\
\;\;\;\;\left(\left(b \cdot c + \left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - t \cdot \left(4.0 \cdot a\right)\right)\right) - i \cdot \left(4.0 \cdot x\right)\right) - \left(k \cdot 27.0\right) \cdot j\\

\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 r15375526 = x;
        double r15375527 = 18.0;
        double r15375528 = r15375526 * r15375527;
        double r15375529 = y;
        double r15375530 = r15375528 * r15375529;
        double r15375531 = z;
        double r15375532 = r15375530 * r15375531;
        double r15375533 = t;
        double r15375534 = r15375532 * r15375533;
        double r15375535 = a;
        double r15375536 = 4.0;
        double r15375537 = r15375535 * r15375536;
        double r15375538 = r15375537 * r15375533;
        double r15375539 = r15375534 - r15375538;
        double r15375540 = b;
        double r15375541 = c;
        double r15375542 = r15375540 * r15375541;
        double r15375543 = r15375539 + r15375542;
        double r15375544 = r15375526 * r15375536;
        double r15375545 = i;
        double r15375546 = r15375544 * r15375545;
        double r15375547 = r15375543 - r15375546;
        double r15375548 = j;
        double r15375549 = 27.0;
        double r15375550 = r15375548 * r15375549;
        double r15375551 = k;
        double r15375552 = r15375550 * r15375551;
        double r15375553 = r15375547 - r15375552;
        return r15375553;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r15375554 = t;
        double r15375555 = -1.0358597655674074e-175;
        bool r15375556 = r15375554 <= r15375555;
        double r15375557 = b;
        double r15375558 = c;
        double r15375559 = r15375557 * r15375558;
        double r15375560 = x;
        double r15375561 = 18.0;
        double r15375562 = r15375560 * r15375561;
        double r15375563 = y;
        double r15375564 = r15375562 * r15375563;
        double r15375565 = z;
        double r15375566 = cbrt(r15375565);
        double r15375567 = r15375566 * r15375566;
        double r15375568 = r15375564 * r15375567;
        double r15375569 = r15375568 * r15375566;
        double r15375570 = r15375569 * r15375554;
        double r15375571 = 4.0;
        double r15375572 = a;
        double r15375573 = r15375571 * r15375572;
        double r15375574 = r15375554 * r15375573;
        double r15375575 = r15375570 - r15375574;
        double r15375576 = r15375559 + r15375575;
        double r15375577 = i;
        double r15375578 = r15375571 * r15375560;
        double r15375579 = r15375577 * r15375578;
        double r15375580 = r15375576 - r15375579;
        double r15375581 = k;
        double r15375582 = j;
        double r15375583 = r15375581 * r15375582;
        double r15375584 = 27.0;
        double r15375585 = r15375583 * r15375584;
        double r15375586 = r15375580 - r15375585;
        double r15375587 = 2.4153633075671652e-129;
        bool r15375588 = r15375554 <= r15375587;
        double r15375589 = -r15375572;
        double r15375590 = r15375571 * r15375589;
        double r15375591 = r15375554 * r15375590;
        double r15375592 = r15375559 + r15375591;
        double r15375593 = r15375592 - r15375579;
        double r15375594 = r15375593 - r15375585;
        double r15375595 = r15375564 * r15375565;
        double r15375596 = r15375554 * r15375595;
        double r15375597 = r15375596 - r15375574;
        double r15375598 = r15375559 + r15375597;
        double r15375599 = r15375598 - r15375579;
        double r15375600 = r15375581 * r15375584;
        double r15375601 = r15375600 * r15375582;
        double r15375602 = r15375599 - r15375601;
        double r15375603 = r15375588 ? r15375594 : r15375602;
        double r15375604 = r15375556 ? r15375586 : r15375603;
        return r15375604;
}

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.0358597655674074e-175

    1. Initial program 3.7

      \[\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. Taylor expanded around 0 3.6

      \[\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}{27.0 \cdot \left(j \cdot k\right)}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt3.7

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot \color{blue}{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}\right)}\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) - 27.0 \cdot \left(j \cdot k\right)\]
    5. Applied associate-*r*3.7

      \[\leadsto \left(\left(\left(\color{blue}{\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) \cdot \sqrt[3]{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) - 27.0 \cdot \left(j \cdot k\right)\]

    if -1.0358597655674074e-175 < t < 2.4153633075671652e-129

    1. Initial program 8.8

      \[\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. Taylor expanded around 0 8.8

      \[\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}{27.0 \cdot \left(j \cdot k\right)}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt8.8

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot \color{blue}{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}\right)}\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) - 27.0 \cdot \left(j \cdot k\right)\]
    5. Applied associate-*r*8.8

      \[\leadsto \left(\left(\left(\color{blue}{\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) \cdot \sqrt[3]{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) - 27.0 \cdot \left(j \cdot k\right)\]
    6. Taylor expanded around 0 5.4

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

    if 2.4153633075671652e-129 < t

    1. Initial program 3.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*3.1

      \[\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)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification4.0

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

Reproduce

herbie shell --seed 2019121 +o rules:numerics
(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)))