Average Error: 5.2 → 5.7
Time: 18.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}\;b \cdot c \le -7.78697423890387318 \cdot 10^{161}:\\ \;\;\;\;\left(\left(\left(0 \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 k\right)\\ \mathbf{elif}\;b \cdot c \le -4.72896944561745812 \cdot 10^{44}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right)\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 k\right)\\ \mathbf{elif}\;b \cdot c \le -1.6071174332412006 \cdot 10^{-10}:\\ \;\;\;\;\mathsf{fma}\left(z \cdot \left(x \cdot 18\right), t \cdot y, b \cdot c - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\\ \mathbf{elif}\;b \cdot c \le 1.236802286 \cdot 10^{-314}:\\ \;\;\;\;\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) - j \cdot \left(27 \cdot k\right)\\ \mathbf{elif}\;b \cdot c \le 7.832862067016947 \cdot 10^{-40}:\\ \;\;\;\;\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 \left(k \cdot j\right)\right) \cdot \sqrt{27}\\ \mathbf{elif}\;b \cdot c \le 1.7946900526051252 \cdot 10^{23}:\\ \;\;\;\;\mathsf{fma}\left(z \cdot \left(x \cdot 18\right), t \cdot y, b \cdot c - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right)\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 k\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}\;b \cdot c \le -7.78697423890387318 \cdot 10^{161}:\\
\;\;\;\;\left(\left(\left(0 \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 k\right)\\

\mathbf{elif}\;b \cdot c \le -4.72896944561745812 \cdot 10^{44}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right)\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 k\right)\\

\mathbf{elif}\;b \cdot c \le -1.6071174332412006 \cdot 10^{-10}:\\
\;\;\;\;\mathsf{fma}\left(z \cdot \left(x \cdot 18\right), t \cdot y, b \cdot c - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\\

\mathbf{elif}\;b \cdot c \le 1.236802286 \cdot 10^{-314}:\\
\;\;\;\;\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) - j \cdot \left(27 \cdot k\right)\\

\mathbf{elif}\;b \cdot c \le 7.832862067016947 \cdot 10^{-40}:\\
\;\;\;\;\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 \left(k \cdot j\right)\right) \cdot \sqrt{27}\\

\mathbf{elif}\;b \cdot c \le 1.7946900526051252 \cdot 10^{23}:\\
\;\;\;\;\mathsf{fma}\left(z \cdot \left(x \cdot 18\right), t \cdot y, b \cdot c - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right)\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 k\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 r722432 = x;
        double r722433 = 18.0;
        double r722434 = r722432 * r722433;
        double r722435 = y;
        double r722436 = r722434 * r722435;
        double r722437 = z;
        double r722438 = r722436 * r722437;
        double r722439 = t;
        double r722440 = r722438 * r722439;
        double r722441 = a;
        double r722442 = 4.0;
        double r722443 = r722441 * r722442;
        double r722444 = r722443 * r722439;
        double r722445 = r722440 - r722444;
        double r722446 = b;
        double r722447 = c;
        double r722448 = r722446 * r722447;
        double r722449 = r722445 + r722448;
        double r722450 = r722432 * r722442;
        double r722451 = i;
        double r722452 = r722450 * r722451;
        double r722453 = r722449 - r722452;
        double r722454 = j;
        double r722455 = 27.0;
        double r722456 = r722454 * r722455;
        double r722457 = k;
        double r722458 = r722456 * r722457;
        double r722459 = r722453 - r722458;
        return r722459;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r722460 = b;
        double r722461 = c;
        double r722462 = r722460 * r722461;
        double r722463 = -7.786974238903873e+161;
        bool r722464 = r722462 <= r722463;
        double r722465 = 0.0;
        double r722466 = t;
        double r722467 = r722465 * r722466;
        double r722468 = a;
        double r722469 = 4.0;
        double r722470 = r722468 * r722469;
        double r722471 = r722470 * r722466;
        double r722472 = r722467 - r722471;
        double r722473 = r722472 + r722462;
        double r722474 = x;
        double r722475 = r722474 * r722469;
        double r722476 = i;
        double r722477 = r722475 * r722476;
        double r722478 = r722473 - r722477;
        double r722479 = j;
        double r722480 = 27.0;
        double r722481 = k;
        double r722482 = r722480 * r722481;
        double r722483 = r722479 * r722482;
        double r722484 = r722478 - r722483;
        double r722485 = -4.728969445617458e+44;
        bool r722486 = r722462 <= r722485;
        double r722487 = 18.0;
        double r722488 = r722474 * r722487;
        double r722489 = y;
        double r722490 = z;
        double r722491 = r722489 * r722490;
        double r722492 = r722488 * r722491;
        double r722493 = r722492 * r722466;
        double r722494 = r722493 - r722471;
        double r722495 = r722494 + r722462;
        double r722496 = r722495 - r722477;
        double r722497 = r722496 - r722483;
        double r722498 = -1.6071174332412006e-10;
        bool r722499 = r722462 <= r722498;
        double r722500 = r722490 * r722488;
        double r722501 = r722466 * r722489;
        double r722502 = r722474 * r722476;
        double r722503 = fma(r722466, r722468, r722502);
        double r722504 = r722479 * r722480;
        double r722505 = r722504 * r722481;
        double r722506 = fma(r722469, r722503, r722505);
        double r722507 = r722462 - r722506;
        double r722508 = fma(r722500, r722501, r722507);
        double r722509 = 1.2368022860888e-314;
        bool r722510 = r722462 <= r722509;
        double r722511 = r722488 * r722489;
        double r722512 = r722490 * r722466;
        double r722513 = r722511 * r722512;
        double r722514 = r722513 - r722471;
        double r722515 = r722514 + r722462;
        double r722516 = r722515 - r722477;
        double r722517 = r722516 - r722483;
        double r722518 = 7.832862067016947e-40;
        bool r722519 = r722462 <= r722518;
        double r722520 = r722511 * r722490;
        double r722521 = r722520 * r722466;
        double r722522 = r722521 - r722471;
        double r722523 = r722522 + r722462;
        double r722524 = r722523 - r722477;
        double r722525 = sqrt(r722480);
        double r722526 = r722481 * r722479;
        double r722527 = r722525 * r722526;
        double r722528 = r722527 * r722525;
        double r722529 = r722524 - r722528;
        double r722530 = 1.7946900526051252e+23;
        bool r722531 = r722462 <= r722530;
        double r722532 = r722531 ? r722508 : r722497;
        double r722533 = r722519 ? r722529 : r722532;
        double r722534 = r722510 ? r722517 : r722533;
        double r722535 = r722499 ? r722508 : r722534;
        double r722536 = r722486 ? r722497 : r722535;
        double r722537 = r722464 ? r722484 : r722536;
        return r722537;
}

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

Target

Original5.2
Target1.5
Herbie5.7
\[\begin{array}{l} \mathbf{if}\;t \lt -1.6210815397541398 \cdot 10^{-69}:\\ \;\;\;\;\left(\left(18 \cdot t\right) \cdot \left(\left(x \cdot y\right) \cdot z\right) - \left(a \cdot t + i \cdot x\right) \cdot 4\right) - \left(\left(k \cdot j\right) \cdot 27 - c \cdot b\right)\\ \mathbf{elif}\;t \lt 165.680279438052224:\\ \;\;\;\;\left(\left(18 \cdot y\right) \cdot \left(x \cdot \left(z \cdot t\right)\right) - \left(a \cdot t + i \cdot x\right) \cdot 4\right) + \left(c \cdot b - 27 \cdot \left(k \cdot j\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(18 \cdot t\right) \cdot \left(\left(x \cdot y\right) \cdot z\right) - \left(a \cdot t + i \cdot x\right) \cdot 4\right) - \left(\left(k \cdot j\right) \cdot 27 - c \cdot b\right)\\ \end{array}\]

Derivation

  1. Split input into 5 regimes
  2. if (* b c) < -7.786974238903873e+161

    1. Initial program 5.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*5.8

      \[\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. Taylor expanded around 0 3.8

      \[\leadsto \left(\left(\left(\color{blue}{0} \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 k\right)\]

    if -7.786974238903873e+161 < (* b c) < -4.728969445617458e+44 or 1.7946900526051252e+23 < (* b c)

    1. Initial program 4.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*4.8

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

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

    if -4.728969445617458e+44 < (* b c) < -1.6071174332412006e-10 or 7.832862067016947e-40 < (* b c) < 1.7946900526051252e+23

    1. Initial program 5.1

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

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

    if -1.6071174332412006e-10 < (* b c) < 1.2368022860888e-314

    1. Initial program 5.1

      \[\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*5.1

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

      \[\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) - j \cdot \left(27 \cdot k\right)\]

    if 1.2368022860888e-314 < (* b c) < 7.832862067016947e-40

    1. Initial program 5.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. Using strategy rm
    3. Applied pow15.6

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

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

      \[\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}{{j}^{1}} \cdot {27}^{1}\right) \cdot {k}^{1}\]
    6. Applied pow-prod-down5.6

      \[\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 27\right)}^{1}} \cdot {k}^{1}\]
    7. Applied pow-prod-down5.6

      \[\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(\left(j \cdot 27\right) \cdot k\right)}^{1}}\]
    8. Simplified5.6

      \[\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}\]
    9. Using strategy rm
    10. Applied add-sqr-sqrt5.6

      \[\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}\]
    11. Applied associate-*l*5.7

      \[\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}\]
  3. Recombined 5 regimes into one program.
  4. Final simplification5.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \cdot c \le -7.78697423890387318 \cdot 10^{161}:\\ \;\;\;\;\left(\left(\left(0 \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 k\right)\\ \mathbf{elif}\;b \cdot c \le -4.72896944561745812 \cdot 10^{44}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right)\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 k\right)\\ \mathbf{elif}\;b \cdot c \le -1.6071174332412006 \cdot 10^{-10}:\\ \;\;\;\;\mathsf{fma}\left(z \cdot \left(x \cdot 18\right), t \cdot y, b \cdot c - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\\ \mathbf{elif}\;b \cdot c \le 1.236802286 \cdot 10^{-314}:\\ \;\;\;\;\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) - j \cdot \left(27 \cdot k\right)\\ \mathbf{elif}\;b \cdot c \le 7.832862067016947 \cdot 10^{-40}:\\ \;\;\;\;\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 \left(k \cdot j\right)\right) \cdot \sqrt{27}\\ \mathbf{elif}\;b \cdot c \le 1.7946900526051252 \cdot 10^{23}:\\ \;\;\;\;\mathsf{fma}\left(z \cdot \left(x \cdot 18\right), t \cdot y, b \cdot c - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right)\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 k\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020047 +o rules:numerics
(FPCore (x y z t a b c i j k)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, E"
  :precision binary64

  :herbie-target
  (if (< t -1.6210815397541398e-69) (- (- (* (* 18 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4)) (- (* (* k j) 27) (* c b))) (if (< t 165.68027943805222) (+ (- (* (* 18 y) (* x (* z t))) (* (+ (* a t) (* i x)) 4)) (- (* c b) (* 27 (* k j)))) (- (- (* (* 18 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4)) (- (* (* k j) 27) (* c b)))))

  (- (- (+ (- (* (* (* (* x 18) y) z) t) (* (* a 4) t)) (* b c)) (* (* x 4) i)) (* (* j 27) k)))