Average Error: 5.0 → 4.1
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 -5.442676120004847 \cdot 10^{-262}:\\ \;\;\;\;\left(\left(b \cdot c + \left(18.0 \cdot \left(t \cdot \left(\left(z \cdot y\right) \cdot x\right)\right) - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - j \cdot \left(27.0 \cdot k\right)\\ \mathbf{elif}\;t \le 7.540536889545399 \cdot 10^{-05}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(z \cdot t\right) \cdot \left(\left(18.0 \cdot x\right) \cdot y\right) - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\\ \mathbf{else}:\\ \;\;\;\;\left(\left(b \cdot c + \left(18.0 \cdot \left(t \cdot \left(\left(z \cdot y\right) \cdot x\right)\right) - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\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 -5.442676120004847 \cdot 10^{-262}:\\
\;\;\;\;\left(\left(b \cdot c + \left(18.0 \cdot \left(t \cdot \left(\left(z \cdot y\right) \cdot x\right)\right) - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - j \cdot \left(27.0 \cdot k\right)\\

\mathbf{elif}\;t \le 7.540536889545399 \cdot 10^{-05}:\\
\;\;\;\;\left(\left(b \cdot c + \left(\left(z \cdot t\right) \cdot \left(\left(18.0 \cdot x\right) \cdot y\right) - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\\

\mathbf{else}:\\
\;\;\;\;\left(\left(b \cdot c + \left(18.0 \cdot \left(t \cdot \left(\left(z \cdot y\right) \cdot x\right)\right) - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\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 r1825466 = x;
        double r1825467 = 18.0;
        double r1825468 = r1825466 * r1825467;
        double r1825469 = y;
        double r1825470 = r1825468 * r1825469;
        double r1825471 = z;
        double r1825472 = r1825470 * r1825471;
        double r1825473 = t;
        double r1825474 = r1825472 * r1825473;
        double r1825475 = a;
        double r1825476 = 4.0;
        double r1825477 = r1825475 * r1825476;
        double r1825478 = r1825477 * r1825473;
        double r1825479 = r1825474 - r1825478;
        double r1825480 = b;
        double r1825481 = c;
        double r1825482 = r1825480 * r1825481;
        double r1825483 = r1825479 + r1825482;
        double r1825484 = r1825466 * r1825476;
        double r1825485 = i;
        double r1825486 = r1825484 * r1825485;
        double r1825487 = r1825483 - r1825486;
        double r1825488 = j;
        double r1825489 = 27.0;
        double r1825490 = r1825488 * r1825489;
        double r1825491 = k;
        double r1825492 = r1825490 * r1825491;
        double r1825493 = r1825487 - r1825492;
        return r1825493;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r1825494 = t;
        double r1825495 = -5.442676120004847e-262;
        bool r1825496 = r1825494 <= r1825495;
        double r1825497 = b;
        double r1825498 = c;
        double r1825499 = r1825497 * r1825498;
        double r1825500 = 18.0;
        double r1825501 = z;
        double r1825502 = y;
        double r1825503 = r1825501 * r1825502;
        double r1825504 = x;
        double r1825505 = r1825503 * r1825504;
        double r1825506 = r1825494 * r1825505;
        double r1825507 = r1825500 * r1825506;
        double r1825508 = a;
        double r1825509 = 4.0;
        double r1825510 = r1825508 * r1825509;
        double r1825511 = r1825510 * r1825494;
        double r1825512 = r1825507 - r1825511;
        double r1825513 = r1825499 + r1825512;
        double r1825514 = r1825504 * r1825509;
        double r1825515 = i;
        double r1825516 = r1825514 * r1825515;
        double r1825517 = r1825513 - r1825516;
        double r1825518 = j;
        double r1825519 = 27.0;
        double r1825520 = k;
        double r1825521 = r1825519 * r1825520;
        double r1825522 = r1825518 * r1825521;
        double r1825523 = r1825517 - r1825522;
        double r1825524 = 7.540536889545399e-05;
        bool r1825525 = r1825494 <= r1825524;
        double r1825526 = r1825501 * r1825494;
        double r1825527 = r1825500 * r1825504;
        double r1825528 = r1825527 * r1825502;
        double r1825529 = r1825526 * r1825528;
        double r1825530 = r1825529 - r1825511;
        double r1825531 = r1825499 + r1825530;
        double r1825532 = r1825531 - r1825516;
        double r1825533 = r1825518 * r1825519;
        double r1825534 = r1825533 * r1825520;
        double r1825535 = r1825532 - r1825534;
        double r1825536 = r1825525 ? r1825535 : r1825523;
        double r1825537 = r1825496 ? r1825523 : r1825536;
        return r1825537;
}

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 < -5.442676120004847e-262 or 7.540536889545399e-05 < t

    1. Initial program 3.6

      \[\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 inf 4.2

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

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

    if -5.442676120004847e-262 < t < 7.540536889545399e-05

    1. Initial program 7.4

      \[\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.8

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

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

Reproduce

herbie shell --seed 2019153 +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)))