Average Error: 5.9 → 4.8
Time: 6.9s
Precision: 64
\[\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
\[\begin{array}{l} \mathbf{if}\;t \le -4.05720677656797186 \cdot 10^{-131}:\\ \;\;\;\;t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\ \mathbf{elif}\;t \le 5.71695176928990877 \cdot 10^{-142}:\\ \;\;\;\;t \cdot \left(0 - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t \cdot \left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right) - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)\\ \end{array}\]
\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k
\begin{array}{l}
\mathbf{if}\;t \le -4.05720677656797186 \cdot 10^{-131}:\\
\;\;\;\;t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\

\mathbf{elif}\;t \le 5.71695176928990877 \cdot 10^{-142}:\\
\;\;\;\;t \cdot \left(0 - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)\\

\mathbf{else}:\\
\;\;\;\;t \cdot \left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right) - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\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 r142440 = x;
        double r142441 = 18.0;
        double r142442 = r142440 * r142441;
        double r142443 = y;
        double r142444 = r142442 * r142443;
        double r142445 = z;
        double r142446 = r142444 * r142445;
        double r142447 = t;
        double r142448 = r142446 * r142447;
        double r142449 = a;
        double r142450 = 4.0;
        double r142451 = r142449 * r142450;
        double r142452 = r142451 * r142447;
        double r142453 = r142448 - r142452;
        double r142454 = b;
        double r142455 = c;
        double r142456 = r142454 * r142455;
        double r142457 = r142453 + r142456;
        double r142458 = r142440 * r142450;
        double r142459 = i;
        double r142460 = r142458 * r142459;
        double r142461 = r142457 - r142460;
        double r142462 = j;
        double r142463 = 27.0;
        double r142464 = r142462 * r142463;
        double r142465 = k;
        double r142466 = r142464 * r142465;
        double r142467 = r142461 - r142466;
        return r142467;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r142468 = t;
        double r142469 = -4.057206776567972e-131;
        bool r142470 = r142468 <= r142469;
        double r142471 = x;
        double r142472 = 18.0;
        double r142473 = r142471 * r142472;
        double r142474 = y;
        double r142475 = r142473 * r142474;
        double r142476 = z;
        double r142477 = r142475 * r142476;
        double r142478 = a;
        double r142479 = 4.0;
        double r142480 = r142478 * r142479;
        double r142481 = r142477 - r142480;
        double r142482 = r142468 * r142481;
        double r142483 = b;
        double r142484 = c;
        double r142485 = r142483 * r142484;
        double r142486 = r142471 * r142479;
        double r142487 = i;
        double r142488 = r142486 * r142487;
        double r142489 = j;
        double r142490 = 27.0;
        double r142491 = k;
        double r142492 = r142490 * r142491;
        double r142493 = r142489 * r142492;
        double r142494 = r142488 + r142493;
        double r142495 = r142485 - r142494;
        double r142496 = r142482 + r142495;
        double r142497 = 5.716951769289909e-142;
        bool r142498 = r142468 <= r142497;
        double r142499 = 0.0;
        double r142500 = r142499 - r142480;
        double r142501 = r142468 * r142500;
        double r142502 = r142489 * r142490;
        double r142503 = r142502 * r142491;
        double r142504 = r142488 + r142503;
        double r142505 = r142485 - r142504;
        double r142506 = r142501 + r142505;
        double r142507 = r142474 * r142476;
        double r142508 = r142473 * r142507;
        double r142509 = r142508 - r142480;
        double r142510 = r142468 * r142509;
        double r142511 = r142510 + r142505;
        double r142512 = r142498 ? r142506 : r142511;
        double r142513 = r142470 ? r142496 : r142512;
        return r142513;
}

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 < -4.057206776567972e-131

    1. Initial program 3.4

      \[\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    2. Simplified3.4

      \[\leadsto \color{blue}{t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)}\]
    3. Using strategy rm
    4. Applied associate-*l*3.4

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

    if -4.057206776567972e-131 < t < 5.716951769289909e-142

    1. Initial program 10.3

      \[\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    2. Simplified10.3

      \[\leadsto \color{blue}{t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)}\]
    3. Taylor expanded around 0 6.8

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

    if 5.716951769289909e-142 < t

    1. Initial program 3.6

      \[\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    2. Simplified3.6

      \[\leadsto \color{blue}{t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)}\]
    3. Using strategy rm
    4. Applied associate-*l*4.1

      \[\leadsto t \cdot \left(\color{blue}{\left(x \cdot 18\right) \cdot \left(y \cdot z\right)} - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification4.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -4.05720677656797186 \cdot 10^{-131}:\\ \;\;\;\;t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\ \mathbf{elif}\;t \le 5.71695176928990877 \cdot 10^{-142}:\\ \;\;\;\;t \cdot \left(0 - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t \cdot \left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right) - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020018 
(FPCore (x y z t a b c i j k)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1"
  :precision binary64
  (- (- (+ (- (* (* (* (* x 18) y) z) t) (* (* a 4) t)) (* b c)) (* (* x 4) i)) (* (* j 27) k)))