Average Error: 5.4 → 2.1
Time: 25.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 r5432959 = x;
        double r5432960 = 18.0;
        double r5432961 = r5432959 * r5432960;
        double r5432962 = y;
        double r5432963 = r5432961 * r5432962;
        double r5432964 = z;
        double r5432965 = r5432963 * r5432964;
        double r5432966 = t;
        double r5432967 = r5432965 * r5432966;
        double r5432968 = a;
        double r5432969 = 4.0;
        double r5432970 = r5432968 * r5432969;
        double r5432971 = r5432970 * r5432966;
        double r5432972 = r5432967 - r5432971;
        double r5432973 = b;
        double r5432974 = c;
        double r5432975 = r5432973 * r5432974;
        double r5432976 = r5432972 + r5432975;
        double r5432977 = r5432959 * r5432969;
        double r5432978 = i;
        double r5432979 = r5432977 * r5432978;
        double r5432980 = r5432976 - r5432979;
        double r5432981 = j;
        double r5432982 = 27.0;
        double r5432983 = r5432981 * r5432982;
        double r5432984 = k;
        double r5432985 = r5432983 * r5432984;
        double r5432986 = r5432980 - r5432985;
        return r5432986;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r5432987 = t;
        double r5432988 = x;
        double r5432989 = 18.0;
        double r5432990 = r5432988 * r5432989;
        double r5432991 = y;
        double r5432992 = r5432990 * r5432991;
        double r5432993 = z;
        double r5432994 = r5432992 * r5432993;
        double r5432995 = r5432987 * r5432994;
        double r5432996 = a;
        double r5432997 = 4.0;
        double r5432998 = r5432996 * r5432997;
        double r5432999 = r5432998 * r5432987;
        double r5433000 = r5432995 - r5432999;
        double r5433001 = c;
        double r5433002 = b;
        double r5433003 = r5433001 * r5433002;
        double r5433004 = r5433000 + r5433003;
        double r5433005 = r5432988 * r5432997;
        double r5433006 = i;
        double r5433007 = r5433005 * r5433006;
        double r5433008 = r5433004 - r5433007;
        double r5433009 = -inf.0;
        bool r5433010 = r5433008 <= r5433009;
        double r5433011 = r5432987 * r5432988;
        double r5433012 = r5432991 * r5432989;
        double r5433013 = r5433011 * r5433012;
        double r5433014 = r5433013 * r5432993;
        double r5433015 = r5432988 * r5433006;
        double r5433016 = fma(r5432987, r5432996, r5433015);
        double r5433017 = 27.0;
        double r5433018 = k;
        double r5433019 = j;
        double r5433020 = r5433018 * r5433019;
        double r5433021 = r5433017 * r5433020;
        double r5433022 = fma(r5432997, r5433016, r5433021);
        double r5433023 = r5433014 - r5433022;
        double r5433024 = fma(r5433002, r5433001, r5433023);
        double r5433025 = 2.403209667818115e+294;
        bool r5433026 = r5433008 <= r5433025;
        double r5433027 = r5433017 * r5433018;
        double r5433028 = r5433019 * r5433027;
        double r5433029 = r5433008 - r5433028;
        double r5433030 = r5432993 * r5432988;
        double r5433031 = r5433030 * r5432987;
        double r5433032 = r5432991 * r5433031;
        double r5433033 = r5433032 * r5432989;
        double r5433034 = r5433033 - r5432999;
        double r5433035 = r5433003 + r5433034;
        double r5433036 = r5433035 - r5433007;
        double r5433037 = r5433021 * r5433021;
        double r5433038 = r5433017 * r5433037;
        double r5433039 = r5433020 * r5433038;
        double r5433040 = cbrt(r5433039);
        double r5433041 = r5433036 - r5433040;
        double r5433042 = r5433026 ? r5433029 : r5433041;
        double r5433043 = r5433010 ? r5433024 : r5433042;
        return r5433043;
}

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)))