Average Error: 5.4 → 2.1
Time: 28.9s
Precision: 64
\[\left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\]
\[\begin{array}{l} \mathbf{if}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i = -\infty:\\ \;\;\;\;\mathsf{fma}\left(b, c, \left(\left(t \cdot x\right) \cdot \left(y \cdot 18.0\right)\right) \cdot z - \mathsf{fma}\left(4.0, \mathsf{fma}\left(t, a, x \cdot i\right), 27.0 \cdot \left(k \cdot j\right)\right)\right)\\ \mathbf{elif}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i \le 2.403209667818115 \cdot 10^{+294}:\\ \;\;\;\;\left(\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i\right) - j \cdot \left(27.0 \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(c \cdot b + \left(\left(y \cdot \left(\left(z \cdot x\right) \cdot t\right)\right) \cdot 18.0 - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - \sqrt[3]{\left(k \cdot j\right) \cdot \left(27.0 \cdot \left(\left(27.0 \cdot \left(k \cdot j\right)\right) \cdot \left(27.0 \cdot \left(k \cdot j\right)\right)\right)\right)}\\ \end{array}\]
\left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k
\begin{array}{l}
\mathbf{if}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i = -\infty:\\
\;\;\;\;\mathsf{fma}\left(b, c, \left(\left(t \cdot x\right) \cdot \left(y \cdot 18.0\right)\right) \cdot z - \mathsf{fma}\left(4.0, \mathsf{fma}\left(t, a, x \cdot i\right), 27.0 \cdot \left(k \cdot j\right)\right)\right)\\

\mathbf{elif}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i \le 2.403209667818115 \cdot 10^{+294}:\\
\;\;\;\;\left(\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i\right) - j \cdot \left(27.0 \cdot k\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(c \cdot b + \left(\left(y \cdot \left(\left(z \cdot x\right) \cdot t\right)\right) \cdot 18.0 - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - \sqrt[3]{\left(k \cdot j\right) \cdot \left(27.0 \cdot \left(\left(27.0 \cdot \left(k \cdot j\right)\right) \cdot \left(27.0 \cdot \left(k \cdot j\right)\right)\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 r4259355 = x;
        double r4259356 = 18.0;
        double r4259357 = r4259355 * r4259356;
        double r4259358 = y;
        double r4259359 = r4259357 * r4259358;
        double r4259360 = z;
        double r4259361 = r4259359 * r4259360;
        double r4259362 = t;
        double r4259363 = r4259361 * r4259362;
        double r4259364 = a;
        double r4259365 = 4.0;
        double r4259366 = r4259364 * r4259365;
        double r4259367 = r4259366 * r4259362;
        double r4259368 = r4259363 - r4259367;
        double r4259369 = b;
        double r4259370 = c;
        double r4259371 = r4259369 * r4259370;
        double r4259372 = r4259368 + r4259371;
        double r4259373 = r4259355 * r4259365;
        double r4259374 = i;
        double r4259375 = r4259373 * r4259374;
        double r4259376 = r4259372 - r4259375;
        double r4259377 = j;
        double r4259378 = 27.0;
        double r4259379 = r4259377 * r4259378;
        double r4259380 = k;
        double r4259381 = r4259379 * r4259380;
        double r4259382 = r4259376 - r4259381;
        return r4259382;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r4259383 = t;
        double r4259384 = x;
        double r4259385 = 18.0;
        double r4259386 = r4259384 * r4259385;
        double r4259387 = y;
        double r4259388 = r4259386 * r4259387;
        double r4259389 = z;
        double r4259390 = r4259388 * r4259389;
        double r4259391 = r4259383 * r4259390;
        double r4259392 = a;
        double r4259393 = 4.0;
        double r4259394 = r4259392 * r4259393;
        double r4259395 = r4259394 * r4259383;
        double r4259396 = r4259391 - r4259395;
        double r4259397 = c;
        double r4259398 = b;
        double r4259399 = r4259397 * r4259398;
        double r4259400 = r4259396 + r4259399;
        double r4259401 = r4259384 * r4259393;
        double r4259402 = i;
        double r4259403 = r4259401 * r4259402;
        double r4259404 = r4259400 - r4259403;
        double r4259405 = -inf.0;
        bool r4259406 = r4259404 <= r4259405;
        double r4259407 = r4259383 * r4259384;
        double r4259408 = r4259387 * r4259385;
        double r4259409 = r4259407 * r4259408;
        double r4259410 = r4259409 * r4259389;
        double r4259411 = r4259384 * r4259402;
        double r4259412 = fma(r4259383, r4259392, r4259411);
        double r4259413 = 27.0;
        double r4259414 = k;
        double r4259415 = j;
        double r4259416 = r4259414 * r4259415;
        double r4259417 = r4259413 * r4259416;
        double r4259418 = fma(r4259393, r4259412, r4259417);
        double r4259419 = r4259410 - r4259418;
        double r4259420 = fma(r4259398, r4259397, r4259419);
        double r4259421 = 2.403209667818115e+294;
        bool r4259422 = r4259404 <= r4259421;
        double r4259423 = r4259413 * r4259414;
        double r4259424 = r4259415 * r4259423;
        double r4259425 = r4259404 - r4259424;
        double r4259426 = r4259389 * r4259384;
        double r4259427 = r4259426 * r4259383;
        double r4259428 = r4259387 * r4259427;
        double r4259429 = r4259428 * r4259385;
        double r4259430 = r4259429 - r4259395;
        double r4259431 = r4259399 + r4259430;
        double r4259432 = r4259431 - r4259403;
        double r4259433 = r4259417 * r4259417;
        double r4259434 = r4259413 * r4259433;
        double r4259435 = r4259416 * r4259434;
        double r4259436 = cbrt(r4259435);
        double r4259437 = r4259432 - r4259436;
        double r4259438 = r4259422 ? r4259425 : r4259437;
        double r4259439 = r4259406 ? r4259420 : r4259438;
        return r4259439;
}

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 60.5

      \[\left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\]
    2. Simplified12.8

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

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

    1. Initial program 0.3

      \[\left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\]
    2. Using strategy rm
    3. Applied associate-*l*0.3

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

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

    1. Initial program 42.0

      \[\left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\]
    2. Taylor expanded around inf 27.1

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

      \[\leadsto \left(\left(\left(18.0 \cdot \left(t \cdot \color{blue}{\left(\left(x \cdot z\right) \cdot y\right)}\right) - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\]
    5. Using strategy rm
    6. Applied associate-*r*10.2

      \[\leadsto \left(\left(\left(18.0 \cdot \color{blue}{\left(\left(t \cdot \left(x \cdot z\right)\right) \cdot y\right)} - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\]
    7. Using strategy rm
    8. Applied add-cbrt-cube21.3

      \[\leadsto \left(\left(\left(18.0 \cdot \left(\left(t \cdot \left(x \cdot z\right)\right) \cdot y\right) - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot \color{blue}{\sqrt[3]{\left(k \cdot k\right) \cdot k}}\]
    9. Applied add-cbrt-cube21.3

      \[\leadsto \left(\left(\left(18.0 \cdot \left(\left(t \cdot \left(x \cdot z\right)\right) \cdot y\right) - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot \color{blue}{\sqrt[3]{\left(27.0 \cdot 27.0\right) \cdot 27.0}}\right) \cdot \sqrt[3]{\left(k \cdot k\right) \cdot k}\]
    10. Applied add-cbrt-cube34.1

      \[\leadsto \left(\left(\left(18.0 \cdot \left(\left(t \cdot \left(x \cdot z\right)\right) \cdot y\right) - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(\color{blue}{\sqrt[3]{\left(j \cdot j\right) \cdot j}} \cdot \sqrt[3]{\left(27.0 \cdot 27.0\right) \cdot 27.0}\right) \cdot \sqrt[3]{\left(k \cdot k\right) \cdot k}\]
    11. Applied cbrt-unprod34.1

      \[\leadsto \left(\left(\left(18.0 \cdot \left(\left(t \cdot \left(x \cdot z\right)\right) \cdot y\right) - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \color{blue}{\sqrt[3]{\left(\left(j \cdot j\right) \cdot j\right) \cdot \left(\left(27.0 \cdot 27.0\right) \cdot 27.0\right)}} \cdot \sqrt[3]{\left(k \cdot k\right) \cdot k}\]
    12. Applied cbrt-unprod34.5

      \[\leadsto \left(\left(\left(18.0 \cdot \left(\left(t \cdot \left(x \cdot z\right)\right) \cdot y\right) - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \color{blue}{\sqrt[3]{\left(\left(\left(j \cdot j\right) \cdot j\right) \cdot \left(\left(27.0 \cdot 27.0\right) \cdot 27.0\right)\right) \cdot \left(\left(k \cdot k\right) \cdot k\right)}}\]
    13. Simplified21.9

      \[\leadsto \left(\left(\left(18.0 \cdot \left(\left(t \cdot \left(x \cdot z\right)\right) \cdot y\right) - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \sqrt[3]{\color{blue}{\left(\left(\left(27.0 \cdot \left(j \cdot k\right)\right) \cdot \left(27.0 \cdot \left(j \cdot k\right)\right)\right) \cdot 27.0\right) \cdot \left(j \cdot k\right)}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification2.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i = -\infty:\\ \;\;\;\;\mathsf{fma}\left(b, c, \left(\left(t \cdot x\right) \cdot \left(y \cdot 18.0\right)\right) \cdot z - \mathsf{fma}\left(4.0, \mathsf{fma}\left(t, a, x \cdot i\right), 27.0 \cdot \left(k \cdot j\right)\right)\right)\\ \mathbf{elif}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i \le 2.403209667818115 \cdot 10^{+294}:\\ \;\;\;\;\left(\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i\right) - j \cdot \left(27.0 \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(c \cdot b + \left(\left(y \cdot \left(\left(z \cdot x\right) \cdot t\right)\right) \cdot 18.0 - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - \sqrt[3]{\left(k \cdot j\right) \cdot \left(27.0 \cdot \left(\left(27.0 \cdot \left(k \cdot j\right)\right) \cdot \left(27.0 \cdot \left(k \cdot j\right)\right)\right)\right)}\\ \end{array}\]

Reproduce

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