Average Error: 5.1 → 4.0
Time: 49.5s
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 -1.0358597655674074 \cdot 10^{-175}:\\ \;\;\;\;\left(c \cdot b - \left(i \cdot \left(x \cdot 4.0\right) + \left(j \cdot k\right) \cdot 27.0\right)\right) + t \cdot \left(\left(\left(18.0 \cdot x\right) \cdot z\right) \cdot y - a \cdot 4.0\right)\\ \mathbf{elif}\;t \le 8.002621826648453 \cdot 10^{-135}:\\ \;\;\;\;\left(a \cdot 4.0\right) \cdot \left(-t\right) + \left(c \cdot b - \left(i \cdot \left(x \cdot 4.0\right) + \left(j \cdot k\right) \cdot 27.0\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(18.0 \cdot x\right) \cdot y\right) \cdot z - a \cdot 4.0\right) \cdot t + \left(c \cdot b - \left(i \cdot \left(x \cdot 4.0\right) + \left(j \cdot k\right) \cdot 27.0\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 -1.0358597655674074 \cdot 10^{-175}:\\
\;\;\;\;\left(c \cdot b - \left(i \cdot \left(x \cdot 4.0\right) + \left(j \cdot k\right) \cdot 27.0\right)\right) + t \cdot \left(\left(\left(18.0 \cdot x\right) \cdot z\right) \cdot y - a \cdot 4.0\right)\\

\mathbf{elif}\;t \le 8.002621826648453 \cdot 10^{-135}:\\
\;\;\;\;\left(a \cdot 4.0\right) \cdot \left(-t\right) + \left(c \cdot b - \left(i \cdot \left(x \cdot 4.0\right) + \left(j \cdot k\right) \cdot 27.0\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(18.0 \cdot x\right) \cdot y\right) \cdot z - a \cdot 4.0\right) \cdot t + \left(c \cdot b - \left(i \cdot \left(x \cdot 4.0\right) + \left(j \cdot k\right) \cdot 27.0\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 r9929885 = x;
        double r9929886 = 18.0;
        double r9929887 = r9929885 * r9929886;
        double r9929888 = y;
        double r9929889 = r9929887 * r9929888;
        double r9929890 = z;
        double r9929891 = r9929889 * r9929890;
        double r9929892 = t;
        double r9929893 = r9929891 * r9929892;
        double r9929894 = a;
        double r9929895 = 4.0;
        double r9929896 = r9929894 * r9929895;
        double r9929897 = r9929896 * r9929892;
        double r9929898 = r9929893 - r9929897;
        double r9929899 = b;
        double r9929900 = c;
        double r9929901 = r9929899 * r9929900;
        double r9929902 = r9929898 + r9929901;
        double r9929903 = r9929885 * r9929895;
        double r9929904 = i;
        double r9929905 = r9929903 * r9929904;
        double r9929906 = r9929902 - r9929905;
        double r9929907 = j;
        double r9929908 = 27.0;
        double r9929909 = r9929907 * r9929908;
        double r9929910 = k;
        double r9929911 = r9929909 * r9929910;
        double r9929912 = r9929906 - r9929911;
        return r9929912;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r9929913 = t;
        double r9929914 = -1.0358597655674074e-175;
        bool r9929915 = r9929913 <= r9929914;
        double r9929916 = c;
        double r9929917 = b;
        double r9929918 = r9929916 * r9929917;
        double r9929919 = i;
        double r9929920 = x;
        double r9929921 = 4.0;
        double r9929922 = r9929920 * r9929921;
        double r9929923 = r9929919 * r9929922;
        double r9929924 = j;
        double r9929925 = k;
        double r9929926 = r9929924 * r9929925;
        double r9929927 = 27.0;
        double r9929928 = r9929926 * r9929927;
        double r9929929 = r9929923 + r9929928;
        double r9929930 = r9929918 - r9929929;
        double r9929931 = 18.0;
        double r9929932 = r9929931 * r9929920;
        double r9929933 = z;
        double r9929934 = r9929932 * r9929933;
        double r9929935 = y;
        double r9929936 = r9929934 * r9929935;
        double r9929937 = a;
        double r9929938 = r9929937 * r9929921;
        double r9929939 = r9929936 - r9929938;
        double r9929940 = r9929913 * r9929939;
        double r9929941 = r9929930 + r9929940;
        double r9929942 = 8.002621826648453e-135;
        bool r9929943 = r9929913 <= r9929942;
        double r9929944 = -r9929913;
        double r9929945 = r9929938 * r9929944;
        double r9929946 = r9929945 + r9929930;
        double r9929947 = r9929932 * r9929935;
        double r9929948 = r9929947 * r9929933;
        double r9929949 = r9929948 - r9929938;
        double r9929950 = r9929949 * r9929913;
        double r9929951 = r9929950 + r9929930;
        double r9929952 = r9929943 ? r9929946 : r9929951;
        double r9929953 = r9929915 ? r9929941 : r9929952;
        return r9929953;
}

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 3 regimes
  2. if t < -1.0358597655674074e-175

    1. Initial program 3.7

      \[\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. Simplified3.9

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

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

    if -1.0358597655674074e-175 < t < 8.002621826648453e-135

    1. Initial program 8.9

      \[\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. Simplified9.0

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

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

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

    if 8.002621826648453e-135 < t

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1.0358597655674074 \cdot 10^{-175}:\\ \;\;\;\;\left(c \cdot b - \left(i \cdot \left(x \cdot 4.0\right) + \left(j \cdot k\right) \cdot 27.0\right)\right) + t \cdot \left(\left(\left(18.0 \cdot x\right) \cdot z\right) \cdot y - a \cdot 4.0\right)\\ \mathbf{elif}\;t \le 8.002621826648453 \cdot 10^{-135}:\\ \;\;\;\;\left(a \cdot 4.0\right) \cdot \left(-t\right) + \left(c \cdot b - \left(i \cdot \left(x \cdot 4.0\right) + \left(j \cdot k\right) \cdot 27.0\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(18.0 \cdot x\right) \cdot y\right) \cdot z - a \cdot 4.0\right) \cdot t + \left(c \cdot b - \left(i \cdot \left(x \cdot 4.0\right) + \left(j \cdot k\right) \cdot 27.0\right)\right)\\ \end{array}\]

Reproduce

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