Average Error: 5.8 → 3.7
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}\;t \le -1.205203319587854639702496288290674129254 \cdot 10^{-38}:\\ \;\;\;\;\left(\left(\left(z \cdot 18\right) \cdot x\right) \cdot y - a \cdot 4\right) \cdot t - \left(\left(k \cdot 27\right) \cdot j + \left(\left(x \cdot i\right) \cdot 4 - c \cdot b\right)\right)\\ \mathbf{elif}\;t \le 21398956214679056089773245927409728880640:\\ \;\;\;\;\left(\left(\left(\left(18 \cdot \left(y \cdot x\right)\right) \cdot \left(z \cdot t\right) - \left(a \cdot 4\right) \cdot t\right) + c \cdot b\right) - \left(4 \cdot x\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(z \cdot 18\right) \cdot x\right) \cdot y - a \cdot 4\right) \cdot t - \left(\left(k \cdot 27\right) \cdot j + \left(\left(x \cdot i\right) \cdot 4 - c \cdot b\right)\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}\;t \le -1.205203319587854639702496288290674129254 \cdot 10^{-38}:\\
\;\;\;\;\left(\left(\left(z \cdot 18\right) \cdot x\right) \cdot y - a \cdot 4\right) \cdot t - \left(\left(k \cdot 27\right) \cdot j + \left(\left(x \cdot i\right) \cdot 4 - c \cdot b\right)\right)\\

\mathbf{elif}\;t \le 21398956214679056089773245927409728880640:\\
\;\;\;\;\left(\left(\left(\left(18 \cdot \left(y \cdot x\right)\right) \cdot \left(z \cdot t\right) - \left(a \cdot 4\right) \cdot t\right) + c \cdot b\right) - \left(4 \cdot x\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(z \cdot 18\right) \cdot x\right) \cdot y - a \cdot 4\right) \cdot t - \left(\left(k \cdot 27\right) \cdot j + \left(\left(x \cdot i\right) \cdot 4 - c \cdot b\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 r5338869 = x;
        double r5338870 = 18.0;
        double r5338871 = r5338869 * r5338870;
        double r5338872 = y;
        double r5338873 = r5338871 * r5338872;
        double r5338874 = z;
        double r5338875 = r5338873 * r5338874;
        double r5338876 = t;
        double r5338877 = r5338875 * r5338876;
        double r5338878 = a;
        double r5338879 = 4.0;
        double r5338880 = r5338878 * r5338879;
        double r5338881 = r5338880 * r5338876;
        double r5338882 = r5338877 - r5338881;
        double r5338883 = b;
        double r5338884 = c;
        double r5338885 = r5338883 * r5338884;
        double r5338886 = r5338882 + r5338885;
        double r5338887 = r5338869 * r5338879;
        double r5338888 = i;
        double r5338889 = r5338887 * r5338888;
        double r5338890 = r5338886 - r5338889;
        double r5338891 = j;
        double r5338892 = 27.0;
        double r5338893 = r5338891 * r5338892;
        double r5338894 = k;
        double r5338895 = r5338893 * r5338894;
        double r5338896 = r5338890 - r5338895;
        return r5338896;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r5338897 = t;
        double r5338898 = -1.2052033195878546e-38;
        bool r5338899 = r5338897 <= r5338898;
        double r5338900 = z;
        double r5338901 = 18.0;
        double r5338902 = r5338900 * r5338901;
        double r5338903 = x;
        double r5338904 = r5338902 * r5338903;
        double r5338905 = y;
        double r5338906 = r5338904 * r5338905;
        double r5338907 = a;
        double r5338908 = 4.0;
        double r5338909 = r5338907 * r5338908;
        double r5338910 = r5338906 - r5338909;
        double r5338911 = r5338910 * r5338897;
        double r5338912 = k;
        double r5338913 = 27.0;
        double r5338914 = r5338912 * r5338913;
        double r5338915 = j;
        double r5338916 = r5338914 * r5338915;
        double r5338917 = i;
        double r5338918 = r5338903 * r5338917;
        double r5338919 = r5338918 * r5338908;
        double r5338920 = c;
        double r5338921 = b;
        double r5338922 = r5338920 * r5338921;
        double r5338923 = r5338919 - r5338922;
        double r5338924 = r5338916 + r5338923;
        double r5338925 = r5338911 - r5338924;
        double r5338926 = 2.1398956214679056e+40;
        bool r5338927 = r5338897 <= r5338926;
        double r5338928 = r5338905 * r5338903;
        double r5338929 = r5338901 * r5338928;
        double r5338930 = r5338900 * r5338897;
        double r5338931 = r5338929 * r5338930;
        double r5338932 = r5338909 * r5338897;
        double r5338933 = r5338931 - r5338932;
        double r5338934 = r5338933 + r5338922;
        double r5338935 = r5338908 * r5338903;
        double r5338936 = r5338935 * r5338917;
        double r5338937 = r5338934 - r5338936;
        double r5338938 = r5338915 * r5338913;
        double r5338939 = r5338938 * r5338912;
        double r5338940 = r5338937 - r5338939;
        double r5338941 = r5338927 ? r5338940 : r5338925;
        double r5338942 = r5338899 ? r5338925 : r5338941;
        return r5338942;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if t < -1.2052033195878546e-38 or 2.1398956214679056e+40 < t

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

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

    if -1.2052033195878546e-38 < t < 2.1398956214679056e+40

    1. Initial program 8.2

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

      \[\leadsto \left(\left(\left(\left(\color{blue}{\left(18 \cdot \left(x \cdot y\right)\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\]
    3. Using strategy rm
    4. Applied associate-*l*4.7

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1.205203319587854639702496288290674129254 \cdot 10^{-38}:\\ \;\;\;\;\left(\left(\left(z \cdot 18\right) \cdot x\right) \cdot y - a \cdot 4\right) \cdot t - \left(\left(k \cdot 27\right) \cdot j + \left(\left(x \cdot i\right) \cdot 4 - c \cdot b\right)\right)\\ \mathbf{elif}\;t \le 21398956214679056089773245927409728880640:\\ \;\;\;\;\left(\left(\left(\left(18 \cdot \left(y \cdot x\right)\right) \cdot \left(z \cdot t\right) - \left(a \cdot 4\right) \cdot t\right) + c \cdot b\right) - \left(4 \cdot x\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(z \cdot 18\right) \cdot x\right) \cdot y - a \cdot 4\right) \cdot t - \left(\left(k \cdot 27\right) \cdot j + \left(\left(x \cdot i\right) \cdot 4 - c \cdot b\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019171 
(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)))