Average Error: 5.2 → 1.8
Time: 56.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 -1.213022955905185 \cdot 10^{-78}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(x \cdot \left(18.0 \cdot y\right)\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) - k \cdot \left(j \cdot 27.0\right)\\ \mathbf{elif}\;t \le 0.00021300604894650404:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(y \cdot \left(t \cdot z\right)\right) \cdot 18.0\right) \cdot x - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(x \cdot \left(18.0 \cdot y\right)\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) - k \cdot \left(j \cdot 27.0\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 -1.213022955905185 \cdot 10^{-78}:\\
\;\;\;\;\left(\left(b \cdot c + \left(\left(\left(x \cdot \left(18.0 \cdot y\right)\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) - k \cdot \left(j \cdot 27.0\right)\\

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

\mathbf{else}:\\
\;\;\;\;\left(\left(b \cdot c + \left(\left(\left(x \cdot \left(18.0 \cdot y\right)\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) - k \cdot \left(j \cdot 27.0\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 r7193508 = x;
        double r7193509 = 18.0;
        double r7193510 = r7193508 * r7193509;
        double r7193511 = y;
        double r7193512 = r7193510 * r7193511;
        double r7193513 = z;
        double r7193514 = r7193512 * r7193513;
        double r7193515 = t;
        double r7193516 = r7193514 * r7193515;
        double r7193517 = a;
        double r7193518 = 4.0;
        double r7193519 = r7193517 * r7193518;
        double r7193520 = r7193519 * r7193515;
        double r7193521 = r7193516 - r7193520;
        double r7193522 = b;
        double r7193523 = c;
        double r7193524 = r7193522 * r7193523;
        double r7193525 = r7193521 + r7193524;
        double r7193526 = r7193508 * r7193518;
        double r7193527 = i;
        double r7193528 = r7193526 * r7193527;
        double r7193529 = r7193525 - r7193528;
        double r7193530 = j;
        double r7193531 = 27.0;
        double r7193532 = r7193530 * r7193531;
        double r7193533 = k;
        double r7193534 = r7193532 * r7193533;
        double r7193535 = r7193529 - r7193534;
        return r7193535;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r7193536 = t;
        double r7193537 = -1.213022955905185e-78;
        bool r7193538 = r7193536 <= r7193537;
        double r7193539 = b;
        double r7193540 = c;
        double r7193541 = r7193539 * r7193540;
        double r7193542 = x;
        double r7193543 = 18.0;
        double r7193544 = y;
        double r7193545 = r7193543 * r7193544;
        double r7193546 = r7193542 * r7193545;
        double r7193547 = z;
        double r7193548 = r7193546 * r7193547;
        double r7193549 = r7193548 * r7193536;
        double r7193550 = a;
        double r7193551 = 4.0;
        double r7193552 = r7193550 * r7193551;
        double r7193553 = r7193552 * r7193536;
        double r7193554 = r7193549 - r7193553;
        double r7193555 = r7193541 + r7193554;
        double r7193556 = r7193551 * r7193542;
        double r7193557 = i;
        double r7193558 = r7193556 * r7193557;
        double r7193559 = r7193555 - r7193558;
        double r7193560 = k;
        double r7193561 = j;
        double r7193562 = 27.0;
        double r7193563 = r7193561 * r7193562;
        double r7193564 = r7193560 * r7193563;
        double r7193565 = r7193559 - r7193564;
        double r7193566 = 0.00021300604894650404;
        bool r7193567 = r7193536 <= r7193566;
        double r7193568 = r7193536 * r7193547;
        double r7193569 = r7193544 * r7193568;
        double r7193570 = r7193569 * r7193543;
        double r7193571 = r7193570 * r7193542;
        double r7193572 = r7193571 - r7193553;
        double r7193573 = r7193541 + r7193572;
        double r7193574 = r7193573 - r7193558;
        double r7193575 = r7193561 * r7193560;
        double r7193576 = r7193562 * r7193575;
        double r7193577 = r7193574 - r7193576;
        double r7193578 = r7193567 ? r7193577 : r7193565;
        double r7193579 = r7193538 ? r7193565 : r7193578;
        return r7193579;
}

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 < -1.213022955905185e-78 or 0.00021300604894650404 < t

    1. Initial program 2.3

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

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

    if -1.213022955905185e-78 < t < 0.00021300604894650404

    1. Initial program 7.5

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

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

      \[\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 associate-*l*1.5

      \[\leadsto \left(\left(\left(\color{blue}{x \cdot \left(18.0 \cdot \left(y \cdot \left(z \cdot t\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\]
    8. Taylor expanded around inf 1.5

      \[\leadsto \left(\left(\left(x \cdot \left(18.0 \cdot \left(y \cdot \left(z \cdot t\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}{27.0 \cdot \left(j \cdot k\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1.213022955905185 \cdot 10^{-78}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(x \cdot \left(18.0 \cdot y\right)\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) - k \cdot \left(j \cdot 27.0\right)\\ \mathbf{elif}\;t \le 0.00021300604894650404:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(y \cdot \left(t \cdot z\right)\right) \cdot 18.0\right) \cdot x - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(x \cdot \left(18.0 \cdot y\right)\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) - k \cdot \left(j \cdot 27.0\right)\\ \end{array}\]

Reproduce

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