Average Error: 5.6 → 4.5
Time: 29.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 -9.206800721396283745070197539175102484788 \cdot 10^{-173}:\\ \;\;\;\;\left(\left(\left(z \cdot 18\right) \cdot x\right) \cdot y - a \cdot 4\right) \cdot t - \left(27 \cdot \left(j \cdot k\right) + \left(\left(x \cdot i\right) \cdot 4 - c \cdot b\right)\right)\\ \mathbf{elif}\;t \le 3.139097384817554521245580418208289195104 \cdot 10^{-115}:\\ \;\;\;\;\left(-t\right) \cdot \left(a \cdot 4\right) - \left(27 \cdot \left(j \cdot k\right) + \left(\left(x \cdot i\right) \cdot 4 - c \cdot b\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(z \cdot 18\right) \cdot x\right) \cdot y - a \cdot 4\right) \cdot t - \left(27 \cdot \left(j \cdot k\right) + \left(\left(x \cdot i\right) \cdot 4 - c \cdot b\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 -9.206800721396283745070197539175102484788 \cdot 10^{-173}:\\
\;\;\;\;\left(\left(\left(z \cdot 18\right) \cdot x\right) \cdot y - a \cdot 4\right) \cdot t - \left(27 \cdot \left(j \cdot k\right) + \left(\left(x \cdot i\right) \cdot 4 - c \cdot b\right)\right)\\

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

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(z \cdot 18\right) \cdot x\right) \cdot y - a \cdot 4\right) \cdot t - \left(27 \cdot \left(j \cdot k\right) + \left(\left(x \cdot i\right) \cdot 4 - c \cdot b\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 r5774487 = x;
        double r5774488 = 18.0;
        double r5774489 = r5774487 * r5774488;
        double r5774490 = y;
        double r5774491 = r5774489 * r5774490;
        double r5774492 = z;
        double r5774493 = r5774491 * r5774492;
        double r5774494 = t;
        double r5774495 = r5774493 * r5774494;
        double r5774496 = a;
        double r5774497 = 4.0;
        double r5774498 = r5774496 * r5774497;
        double r5774499 = r5774498 * r5774494;
        double r5774500 = r5774495 - r5774499;
        double r5774501 = b;
        double r5774502 = c;
        double r5774503 = r5774501 * r5774502;
        double r5774504 = r5774500 + r5774503;
        double r5774505 = r5774487 * r5774497;
        double r5774506 = i;
        double r5774507 = r5774505 * r5774506;
        double r5774508 = r5774504 - r5774507;
        double r5774509 = j;
        double r5774510 = 27.0;
        double r5774511 = r5774509 * r5774510;
        double r5774512 = k;
        double r5774513 = r5774511 * r5774512;
        double r5774514 = r5774508 - r5774513;
        return r5774514;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r5774515 = t;
        double r5774516 = -9.206800721396284e-173;
        bool r5774517 = r5774515 <= r5774516;
        double r5774518 = z;
        double r5774519 = 18.0;
        double r5774520 = r5774518 * r5774519;
        double r5774521 = x;
        double r5774522 = r5774520 * r5774521;
        double r5774523 = y;
        double r5774524 = r5774522 * r5774523;
        double r5774525 = a;
        double r5774526 = 4.0;
        double r5774527 = r5774525 * r5774526;
        double r5774528 = r5774524 - r5774527;
        double r5774529 = r5774528 * r5774515;
        double r5774530 = 27.0;
        double r5774531 = j;
        double r5774532 = k;
        double r5774533 = r5774531 * r5774532;
        double r5774534 = r5774530 * r5774533;
        double r5774535 = i;
        double r5774536 = r5774521 * r5774535;
        double r5774537 = r5774536 * r5774526;
        double r5774538 = c;
        double r5774539 = b;
        double r5774540 = r5774538 * r5774539;
        double r5774541 = r5774537 - r5774540;
        double r5774542 = r5774534 + r5774541;
        double r5774543 = r5774529 - r5774542;
        double r5774544 = 3.1390973848175545e-115;
        bool r5774545 = r5774515 <= r5774544;
        double r5774546 = -r5774515;
        double r5774547 = r5774546 * r5774527;
        double r5774548 = r5774547 - r5774542;
        double r5774549 = r5774545 ? r5774548 : r5774543;
        double r5774550 = r5774517 ? r5774543 : r5774549;
        return r5774550;
}

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 < -9.206800721396284e-173 or 3.1390973848175545e-115 < t

    1. Initial program 3.8

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

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

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

    if -9.206800721396284e-173 < t < 3.1390973848175545e-115

    1. Initial program 9.0

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

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

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

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

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

Reproduce

herbie shell --seed 2019192 
(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)))