Average Error: 5.8 → 1.0
Time: 39.6s
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}\;\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 \le -1.591976256934889034187455180953636735584 \cdot 10^{302} \lor \neg \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 \le 2.618961756211518564383950228017988163092 \cdot 10^{294}\right):\\ \;\;\;\;\mathsf{fma}\left(\left(\left(z \cdot t\right) \cdot y\right) \cdot x, 18, \mathsf{fma}\left(c, b, -\mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\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\\ \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}\;\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 \le -1.591976256934889034187455180953636735584 \cdot 10^{302} \lor \neg \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 \le 2.618961756211518564383950228017988163092 \cdot 10^{294}\right):\\
\;\;\;\;\mathsf{fma}\left(\left(\left(z \cdot t\right) \cdot y\right) \cdot x, 18, \mathsf{fma}\left(c, b, -\mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\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\\

\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 r104482 = x;
        double r104483 = 18.0;
        double r104484 = r104482 * r104483;
        double r104485 = y;
        double r104486 = r104484 * r104485;
        double r104487 = z;
        double r104488 = r104486 * r104487;
        double r104489 = t;
        double r104490 = r104488 * r104489;
        double r104491 = a;
        double r104492 = 4.0;
        double r104493 = r104491 * r104492;
        double r104494 = r104493 * r104489;
        double r104495 = r104490 - r104494;
        double r104496 = b;
        double r104497 = c;
        double r104498 = r104496 * r104497;
        double r104499 = r104495 + r104498;
        double r104500 = r104482 * r104492;
        double r104501 = i;
        double r104502 = r104500 * r104501;
        double r104503 = r104499 - r104502;
        double r104504 = j;
        double r104505 = 27.0;
        double r104506 = r104504 * r104505;
        double r104507 = k;
        double r104508 = r104506 * r104507;
        double r104509 = r104503 - r104508;
        return r104509;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r104510 = x;
        double r104511 = 18.0;
        double r104512 = r104510 * r104511;
        double r104513 = y;
        double r104514 = r104512 * r104513;
        double r104515 = z;
        double r104516 = r104514 * r104515;
        double r104517 = t;
        double r104518 = r104516 * r104517;
        double r104519 = a;
        double r104520 = 4.0;
        double r104521 = r104519 * r104520;
        double r104522 = r104521 * r104517;
        double r104523 = r104518 - r104522;
        double r104524 = b;
        double r104525 = c;
        double r104526 = r104524 * r104525;
        double r104527 = r104523 + r104526;
        double r104528 = r104510 * r104520;
        double r104529 = i;
        double r104530 = r104528 * r104529;
        double r104531 = r104527 - r104530;
        double r104532 = -1.591976256934889e+302;
        bool r104533 = r104531 <= r104532;
        double r104534 = 2.6189617562115186e+294;
        bool r104535 = r104531 <= r104534;
        double r104536 = !r104535;
        bool r104537 = r104533 || r104536;
        double r104538 = r104515 * r104517;
        double r104539 = r104538 * r104513;
        double r104540 = r104539 * r104510;
        double r104541 = r104510 * r104529;
        double r104542 = fma(r104517, r104519, r104541);
        double r104543 = j;
        double r104544 = 27.0;
        double r104545 = r104543 * r104544;
        double r104546 = k;
        double r104547 = r104545 * r104546;
        double r104548 = fma(r104520, r104542, r104547);
        double r104549 = -r104548;
        double r104550 = fma(r104525, r104524, r104549);
        double r104551 = fma(r104540, r104511, r104550);
        double r104552 = r104531 - r104547;
        double r104553 = r104537 ? r104551 : r104552;
        return r104553;
}

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

Derivation

  1. Split input into 2 regimes
  2. if (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < -1.591976256934889e+302 or 2.6189617562115186e+294 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i))

    1. Initial program 49.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. Simplified13.5

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

      \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\left(t \cdot y\right) \cdot z\right) \cdot x}, 18, \mathsf{fma}\left(c, b, -\mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\right)\]
    5. Using strategy rm
    6. Applied associate-*l*16.5

      \[\leadsto \mathsf{fma}\left(\color{blue}{\left(t \cdot \left(y \cdot z\right)\right)} \cdot x, 18, \mathsf{fma}\left(c, b, -\mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\right)\]
    7. Simplified16.5

      \[\leadsto \mathsf{fma}\left(\left(t \cdot \color{blue}{\left(z \cdot y\right)}\right) \cdot x, 18, \mathsf{fma}\left(c, b, -\mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\right)\]
    8. Using strategy rm
    9. Applied associate-*r*6.0

      \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\left(t \cdot z\right) \cdot y\right)} \cdot x, 18, \mathsf{fma}\left(c, b, -\mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\right)\]
    10. Simplified6.0

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

    if -1.591976256934889e+302 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < 2.6189617562115186e+294

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\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 \le -1.591976256934889034187455180953636735584 \cdot 10^{302} \lor \neg \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 \le 2.618961756211518564383950228017988163092 \cdot 10^{294}\right):\\ \;\;\;\;\mathsf{fma}\left(\left(\left(z \cdot t\right) \cdot y\right) \cdot x, 18, \mathsf{fma}\left(c, b, -\mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\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\\ \end{array}\]

Reproduce

herbie shell --seed 2019325 +o rules:numerics
(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)))