Average Error: 5.5 → 4.3
Time: 1.1m
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 -8.760666895464302 \cdot 10^{-244}:\\ \;\;\;\;\left(b \cdot c - \left(4.0 \cdot \left(i \cdot x\right) + \left(j \cdot k\right) \cdot 27.0\right)\right) + t \cdot \left(\left(x \cdot \left(z \cdot y\right)\right) \cdot 18.0 - a \cdot 4.0\right)\\ \mathbf{elif}\;t \le 2.4482662989943874 \cdot 10^{+44}:\\ \;\;\;\;\left(\left(\left(\left(x \cdot \left(y \cdot 18.0\right)\right) \cdot \left(t \cdot z\right) - t \cdot \left(a \cdot 4.0\right)\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\\ \mathbf{else}:\\ \;\;\;\;\left(b \cdot c - \left(4.0 \cdot \left(i \cdot x\right) + \left(j \cdot k\right) \cdot 27.0\right)\right) + t \cdot \left(\left(x \cdot \left(z \cdot y\right)\right) \cdot 18.0 - a \cdot 4.0\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 -8.760666895464302 \cdot 10^{-244}:\\
\;\;\;\;\left(b \cdot c - \left(4.0 \cdot \left(i \cdot x\right) + \left(j \cdot k\right) \cdot 27.0\right)\right) + t \cdot \left(\left(x \cdot \left(z \cdot y\right)\right) \cdot 18.0 - a \cdot 4.0\right)\\

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

\mathbf{else}:\\
\;\;\;\;\left(b \cdot c - \left(4.0 \cdot \left(i \cdot x\right) + \left(j \cdot k\right) \cdot 27.0\right)\right) + t \cdot \left(\left(x \cdot \left(z \cdot y\right)\right) \cdot 18.0 - a \cdot 4.0\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 r5571893 = x;
        double r5571894 = 18.0;
        double r5571895 = r5571893 * r5571894;
        double r5571896 = y;
        double r5571897 = r5571895 * r5571896;
        double r5571898 = z;
        double r5571899 = r5571897 * r5571898;
        double r5571900 = t;
        double r5571901 = r5571899 * r5571900;
        double r5571902 = a;
        double r5571903 = 4.0;
        double r5571904 = r5571902 * r5571903;
        double r5571905 = r5571904 * r5571900;
        double r5571906 = r5571901 - r5571905;
        double r5571907 = b;
        double r5571908 = c;
        double r5571909 = r5571907 * r5571908;
        double r5571910 = r5571906 + r5571909;
        double r5571911 = r5571893 * r5571903;
        double r5571912 = i;
        double r5571913 = r5571911 * r5571912;
        double r5571914 = r5571910 - r5571913;
        double r5571915 = j;
        double r5571916 = 27.0;
        double r5571917 = r5571915 * r5571916;
        double r5571918 = k;
        double r5571919 = r5571917 * r5571918;
        double r5571920 = r5571914 - r5571919;
        return r5571920;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r5571921 = t;
        double r5571922 = -8.760666895464302e-244;
        bool r5571923 = r5571921 <= r5571922;
        double r5571924 = b;
        double r5571925 = c;
        double r5571926 = r5571924 * r5571925;
        double r5571927 = 4.0;
        double r5571928 = i;
        double r5571929 = x;
        double r5571930 = r5571928 * r5571929;
        double r5571931 = r5571927 * r5571930;
        double r5571932 = j;
        double r5571933 = k;
        double r5571934 = r5571932 * r5571933;
        double r5571935 = 27.0;
        double r5571936 = r5571934 * r5571935;
        double r5571937 = r5571931 + r5571936;
        double r5571938 = r5571926 - r5571937;
        double r5571939 = z;
        double r5571940 = y;
        double r5571941 = r5571939 * r5571940;
        double r5571942 = r5571929 * r5571941;
        double r5571943 = 18.0;
        double r5571944 = r5571942 * r5571943;
        double r5571945 = a;
        double r5571946 = r5571945 * r5571927;
        double r5571947 = r5571944 - r5571946;
        double r5571948 = r5571921 * r5571947;
        double r5571949 = r5571938 + r5571948;
        double r5571950 = 2.4482662989943874e+44;
        bool r5571951 = r5571921 <= r5571950;
        double r5571952 = r5571940 * r5571943;
        double r5571953 = r5571929 * r5571952;
        double r5571954 = r5571921 * r5571939;
        double r5571955 = r5571953 * r5571954;
        double r5571956 = r5571921 * r5571946;
        double r5571957 = r5571955 - r5571956;
        double r5571958 = r5571957 + r5571926;
        double r5571959 = r5571929 * r5571927;
        double r5571960 = r5571959 * r5571928;
        double r5571961 = r5571958 - r5571960;
        double r5571962 = r5571932 * r5571935;
        double r5571963 = r5571962 * r5571933;
        double r5571964 = r5571961 - r5571963;
        double r5571965 = r5571951 ? r5571964 : r5571949;
        double r5571966 = r5571923 ? r5571949 : r5571965;
        return r5571966;
}

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 < -8.760666895464302e-244 or 2.4482662989943874e+44 < t

    1. Initial program 4.1

      \[\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. Simplified4.1

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

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

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

    if -8.760666895464302e-244 < t < 2.4482662989943874e+44

    1. Initial program 7.4

      \[\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*7.4

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

      \[\leadsto \left(\left(\left(\color{blue}{\left(x \cdot \left(18.0 \cdot y\right)\right) \cdot \left(z \cdot t\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. Recombined 2 regimes into one program.
  4. Final simplification4.3

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

Reproduce

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