Average Error: 5.6 → 2.0
Time: 29.7s
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 r2026451 = x;
        double r2026452 = 18.0;
        double r2026453 = r2026451 * r2026452;
        double r2026454 = y;
        double r2026455 = r2026453 * r2026454;
        double r2026456 = z;
        double r2026457 = r2026455 * r2026456;
        double r2026458 = t;
        double r2026459 = r2026457 * r2026458;
        double r2026460 = a;
        double r2026461 = 4.0;
        double r2026462 = r2026460 * r2026461;
        double r2026463 = r2026462 * r2026458;
        double r2026464 = r2026459 - r2026463;
        double r2026465 = b;
        double r2026466 = c;
        double r2026467 = r2026465 * r2026466;
        double r2026468 = r2026464 + r2026467;
        double r2026469 = r2026451 * r2026461;
        double r2026470 = i;
        double r2026471 = r2026469 * r2026470;
        double r2026472 = r2026468 - r2026471;
        double r2026473 = j;
        double r2026474 = 27.0;
        double r2026475 = r2026473 * r2026474;
        double r2026476 = k;
        double r2026477 = r2026475 * r2026476;
        double r2026478 = r2026472 - r2026477;
        return r2026478;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r2026479 = t;
        double r2026480 = -2.290721253144602e-39;
        bool r2026481 = r2026479 <= r2026480;
        double r2026482 = b;
        double r2026483 = c;
        double r2026484 = r2026482 * r2026483;
        double r2026485 = x;
        double r2026486 = 18.0;
        double r2026487 = r2026485 * r2026486;
        double r2026488 = y;
        double r2026489 = r2026487 * r2026488;
        double r2026490 = z;
        double r2026491 = r2026489 * r2026490;
        double r2026492 = r2026491 * r2026479;
        double r2026493 = a;
        double r2026494 = 4.0;
        double r2026495 = r2026493 * r2026494;
        double r2026496 = r2026495 * r2026479;
        double r2026497 = r2026492 - r2026496;
        double r2026498 = r2026484 + r2026497;
        double r2026499 = r2026494 * r2026485;
        double r2026500 = i;
        double r2026501 = r2026499 * r2026500;
        double r2026502 = r2026498 - r2026501;
        double r2026503 = j;
        double r2026504 = 27.0;
        double r2026505 = k;
        double r2026506 = r2026504 * r2026505;
        double r2026507 = r2026503 * r2026506;
        double r2026508 = r2026502 - r2026507;
        double r2026509 = 22289.977042498147;
        bool r2026510 = r2026479 <= r2026509;
        double r2026511 = r2026479 * r2026490;
        double r2026512 = r2026511 * r2026488;
        double r2026513 = r2026512 * r2026487;
        double r2026514 = r2026513 - r2026496;
        double r2026515 = r2026484 + r2026514;
        double r2026516 = r2026515 - r2026501;
        double r2026517 = r2026503 * r2026504;
        double r2026518 = r2026517 * r2026505;
        double r2026519 = cbrt(r2026518);
        double r2026520 = r2026519 * r2026519;
        double r2026521 = r2026519 * r2026520;
        double r2026522 = r2026516 - r2026521;
        double r2026523 = r2026510 ? r2026522 : r2026508;
        double r2026524 = r2026481 ? r2026508 : r2026523;
        return r2026524;
}

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 +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)))