Average Error: 5.4 → 5.1
Time: 37.0s
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}\;t \le -5.693821820785257 \cdot 10^{-97}:\\ \;\;\;\;\sqrt[3]{\mathsf{fma}\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z - a \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z - a \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z - a \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)}\right)\\ \mathbf{elif}\;t \le 3.980404264959953 \cdot 10^{-105}:\\ \;\;\;\;\mathsf{fma}\left(\left(\left(-a\right) \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\mathsf{fma}\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z - a \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z - a \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z - a \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\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}\;t \le -5.693821820785257 \cdot 10^{-97}:\\
\;\;\;\;\sqrt[3]{\mathsf{fma}\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z - a \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z - a \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z - a \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)}\right)\\

\mathbf{elif}\;t \le 3.980404264959953 \cdot 10^{-105}:\\
\;\;\;\;\mathsf{fma}\left(\left(\left(-a\right) \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\sqrt[3]{\mathsf{fma}\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z - a \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z - a \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z - a \cdot 4.0\right), t, \left(b \cdot c - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\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 r2368844 = x;
        double r2368845 = 18.0;
        double r2368846 = r2368844 * r2368845;
        double r2368847 = y;
        double r2368848 = r2368846 * r2368847;
        double r2368849 = z;
        double r2368850 = r2368848 * r2368849;
        double r2368851 = t;
        double r2368852 = r2368850 * r2368851;
        double r2368853 = a;
        double r2368854 = 4.0;
        double r2368855 = r2368853 * r2368854;
        double r2368856 = r2368855 * r2368851;
        double r2368857 = r2368852 - r2368856;
        double r2368858 = b;
        double r2368859 = c;
        double r2368860 = r2368858 * r2368859;
        double r2368861 = r2368857 + r2368860;
        double r2368862 = r2368844 * r2368854;
        double r2368863 = i;
        double r2368864 = r2368862 * r2368863;
        double r2368865 = r2368861 - r2368864;
        double r2368866 = j;
        double r2368867 = 27.0;
        double r2368868 = r2368866 * r2368867;
        double r2368869 = k;
        double r2368870 = r2368868 * r2368869;
        double r2368871 = r2368865 - r2368870;
        return r2368871;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r2368872 = t;
        double r2368873 = -5.693821820785257e-97;
        bool r2368874 = r2368872 <= r2368873;
        double r2368875 = x;
        double r2368876 = 18.0;
        double r2368877 = r2368875 * r2368876;
        double r2368878 = y;
        double r2368879 = r2368877 * r2368878;
        double r2368880 = z;
        double r2368881 = r2368879 * r2368880;
        double r2368882 = a;
        double r2368883 = 4.0;
        double r2368884 = r2368882 * r2368883;
        double r2368885 = r2368881 - r2368884;
        double r2368886 = b;
        double r2368887 = c;
        double r2368888 = r2368886 * r2368887;
        double r2368889 = k;
        double r2368890 = 27.0;
        double r2368891 = j;
        double r2368892 = r2368890 * r2368891;
        double r2368893 = r2368875 * r2368883;
        double r2368894 = i;
        double r2368895 = r2368893 * r2368894;
        double r2368896 = fma(r2368889, r2368892, r2368895);
        double r2368897 = r2368888 - r2368896;
        double r2368898 = fma(r2368885, r2368872, r2368897);
        double r2368899 = cbrt(r2368898);
        double r2368900 = r2368899 * r2368899;
        double r2368901 = r2368899 * r2368900;
        double r2368902 = 3.980404264959953e-105;
        bool r2368903 = r2368872 <= r2368902;
        double r2368904 = -r2368882;
        double r2368905 = r2368904 * r2368883;
        double r2368906 = fma(r2368905, r2368872, r2368897);
        double r2368907 = r2368903 ? r2368906 : r2368901;
        double r2368908 = r2368874 ? r2368901 : r2368907;
        return r2368908;
}

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 t < -5.693821820785257e-97 or 3.980404264959953e-105 < t

    1. Initial program 2.8

      \[\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. Simplified2.8

      \[\leadsto \color{blue}{\mathsf{fma}\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z - a \cdot 4.0\right), t, \left(c \cdot b - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt3.9

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

    if -5.693821820785257e-97 < t < 3.980404264959953e-105

    1. Initial program 8.6

      \[\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. Simplified8.6

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

      \[\leadsto \mathsf{fma}\left(\left(\color{blue}{0} - a \cdot 4.0\right), t, \left(c \cdot b - \mathsf{fma}\left(k, \left(27.0 \cdot j\right), \left(\left(x \cdot 4.0\right) \cdot i\right)\right)\right)\right)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification5.1

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

Reproduce

herbie shell --seed 2019128 +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)))