Average Error: 5.6 → 3.1
Time: 29.0s
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 = -\infty:\\ \;\;\;\;\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)\\ \mathbf{elif}\;\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 3.790565547516040000125064508344150956225 \cdot 10^{245}:\\ \;\;\;\;\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) - \sqrt{27} \cdot \left(\left(\sqrt{27} \cdot k\right) \cdot j\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot \left(z \cdot t\right) - \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 = -\infty:\\
\;\;\;\;\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)\\

\mathbf{elif}\;\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 3.790565547516040000125064508344150956225 \cdot 10^{245}:\\
\;\;\;\;\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) - \sqrt{27} \cdot \left(\left(\sqrt{27} \cdot k\right) \cdot j\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot \left(z \cdot t\right) - \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 r127360 = x;
        double r127361 = 18.0;
        double r127362 = r127360 * r127361;
        double r127363 = y;
        double r127364 = r127362 * r127363;
        double r127365 = z;
        double r127366 = r127364 * r127365;
        double r127367 = t;
        double r127368 = r127366 * r127367;
        double r127369 = a;
        double r127370 = 4.0;
        double r127371 = r127369 * r127370;
        double r127372 = r127371 * r127367;
        double r127373 = r127368 - r127372;
        double r127374 = b;
        double r127375 = c;
        double r127376 = r127374 * r127375;
        double r127377 = r127373 + r127376;
        double r127378 = r127360 * r127370;
        double r127379 = i;
        double r127380 = r127378 * r127379;
        double r127381 = r127377 - r127380;
        double r127382 = j;
        double r127383 = 27.0;
        double r127384 = r127382 * r127383;
        double r127385 = k;
        double r127386 = r127384 * r127385;
        double r127387 = r127381 - r127386;
        return r127387;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r127388 = x;
        double r127389 = 18.0;
        double r127390 = r127388 * r127389;
        double r127391 = y;
        double r127392 = r127390 * r127391;
        double r127393 = z;
        double r127394 = r127392 * r127393;
        double r127395 = t;
        double r127396 = r127394 * r127395;
        double r127397 = a;
        double r127398 = 4.0;
        double r127399 = r127397 * r127398;
        double r127400 = r127399 * r127395;
        double r127401 = r127396 - r127400;
        double r127402 = b;
        double r127403 = c;
        double r127404 = r127402 * r127403;
        double r127405 = r127401 + r127404;
        double r127406 = r127388 * r127398;
        double r127407 = i;
        double r127408 = r127406 * r127407;
        double r127409 = r127405 - r127408;
        double r127410 = -inf.0;
        bool r127411 = r127409 <= r127410;
        double r127412 = r127395 * r127391;
        double r127413 = r127393 * r127388;
        double r127414 = r127412 * r127413;
        double r127415 = r127388 * r127407;
        double r127416 = fma(r127395, r127397, r127415);
        double r127417 = j;
        double r127418 = 27.0;
        double r127419 = r127417 * r127418;
        double r127420 = k;
        double r127421 = r127419 * r127420;
        double r127422 = fma(r127398, r127416, r127421);
        double r127423 = -r127422;
        double r127424 = fma(r127403, r127402, r127423);
        double r127425 = fma(r127414, r127389, r127424);
        double r127426 = 3.79056554751604e+245;
        bool r127427 = r127409 <= r127426;
        double r127428 = sqrt(r127418);
        double r127429 = r127428 * r127420;
        double r127430 = r127429 * r127417;
        double r127431 = r127428 * r127430;
        double r127432 = r127409 - r127431;
        double r127433 = r127393 * r127395;
        double r127434 = r127392 * r127433;
        double r127435 = r127434 - r127400;
        double r127436 = r127435 + r127404;
        double r127437 = r127436 - r127408;
        double r127438 = r127437 - r127421;
        double r127439 = r127427 ? r127432 : r127438;
        double r127440 = r127411 ? r127425 : r127439;
        return r127440;
}

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 3 regimes
  2. if (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < -inf.0

    1. Initial program 64.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. Simplified14.1

      \[\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)}\]

    if -inf.0 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < 3.79056554751604e+245

    1. Initial program 0.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. Using strategy rm
    3. Applied associate-*l*0.4

      \[\leadsto \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) - \color{blue}{j \cdot \left(27 \cdot k\right)}\]
    4. Using strategy rm
    5. Applied pow10.4

      \[\leadsto \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) - j \cdot \left(27 \cdot \color{blue}{{k}^{1}}\right)\]
    6. Applied pow10.4

      \[\leadsto \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) - j \cdot \left(\color{blue}{{27}^{1}} \cdot {k}^{1}\right)\]
    7. Applied pow-prod-down0.4

      \[\leadsto \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) - j \cdot \color{blue}{{\left(27 \cdot k\right)}^{1}}\]
    8. Applied pow10.4

      \[\leadsto \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) - \color{blue}{{j}^{1}} \cdot {\left(27 \cdot k\right)}^{1}\]
    9. Applied pow-prod-down0.4

      \[\leadsto \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) - \color{blue}{{\left(j \cdot \left(27 \cdot k\right)\right)}^{1}}\]
    10. Simplified0.3

      \[\leadsto \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) - {\color{blue}{\left(27 \cdot \left(k \cdot j\right)\right)}}^{1}\]
    11. Using strategy rm
    12. Applied add-sqr-sqrt0.3

      \[\leadsto \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(\color{blue}{\left(\sqrt{27} \cdot \sqrt{27}\right)} \cdot \left(k \cdot j\right)\right)}^{1}\]
    13. Applied associate-*l*0.3

      \[\leadsto \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) - {\color{blue}{\left(\sqrt{27} \cdot \left(\sqrt{27} \cdot \left(k \cdot j\right)\right)\right)}}^{1}\]
    14. Using strategy rm
    15. Applied associate-*r*0.4

      \[\leadsto \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(\sqrt{27} \cdot \color{blue}{\left(\left(\sqrt{27} \cdot k\right) \cdot j\right)}\right)}^{1}\]

    if 3.79056554751604e+245 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i))

    1. Initial program 20.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. Using strategy rm
    3. Applied associate-*l*17.4

      \[\leadsto \left(\left(\left(\color{blue}{\left(\left(x \cdot 18\right) \cdot y\right) \cdot \left(z \cdot t\right)} - \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 3 regimes into one program.
  4. Final simplification3.1

    \[\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 = -\infty:\\ \;\;\;\;\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)\\ \mathbf{elif}\;\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 3.790565547516040000125064508344150956225 \cdot 10^{245}:\\ \;\;\;\;\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) - \sqrt{27} \cdot \left(\left(\sqrt{27} \cdot k\right) \cdot j\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot \left(z \cdot t\right) - \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 2019303 +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)))