Average Error: 5.8 → 2.0
Time: 26.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 -5.433898367772061 \cdot 10^{-33}:\\ \;\;\;\;\left(\left(b \cdot c + \left(18.0 \cdot \left(t \cdot \left(\left(z \cdot y\right) \cdot x\right)\right) - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\\ \mathbf{elif}\;t \le 8.769336708467037 \cdot 10^{+80}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(z \cdot \left(x \cdot t\right)\right) \cdot y\right) \cdot 18.0 - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(27.0 \cdot j\right) \cdot k\\ \mathbf{else}:\\ \;\;\;\;\left(\left(b \cdot c + \left(18.0 \cdot \left(t \cdot \left(\left(z \cdot y\right) \cdot x\right)\right) - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - j \cdot \left(27.0 \cdot k\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.433898367772061 \cdot 10^{-33}:\\
\;\;\;\;\left(\left(b \cdot c + \left(18.0 \cdot \left(t \cdot \left(\left(z \cdot y\right) \cdot x\right)\right) - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\\

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

\mathbf{else}:\\
\;\;\;\;\left(\left(b \cdot c + \left(18.0 \cdot \left(t \cdot \left(\left(z \cdot y\right) \cdot x\right)\right) - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - j \cdot \left(27.0 \cdot k\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 r5522109 = x;
        double r5522110 = 18.0;
        double r5522111 = r5522109 * r5522110;
        double r5522112 = y;
        double r5522113 = r5522111 * r5522112;
        double r5522114 = z;
        double r5522115 = r5522113 * r5522114;
        double r5522116 = t;
        double r5522117 = r5522115 * r5522116;
        double r5522118 = a;
        double r5522119 = 4.0;
        double r5522120 = r5522118 * r5522119;
        double r5522121 = r5522120 * r5522116;
        double r5522122 = r5522117 - r5522121;
        double r5522123 = b;
        double r5522124 = c;
        double r5522125 = r5522123 * r5522124;
        double r5522126 = r5522122 + r5522125;
        double r5522127 = r5522109 * r5522119;
        double r5522128 = i;
        double r5522129 = r5522127 * r5522128;
        double r5522130 = r5522126 - r5522129;
        double r5522131 = j;
        double r5522132 = 27.0;
        double r5522133 = r5522131 * r5522132;
        double r5522134 = k;
        double r5522135 = r5522133 * r5522134;
        double r5522136 = r5522130 - r5522135;
        return r5522136;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r5522137 = t;
        double r5522138 = -5.433898367772061e-33;
        bool r5522139 = r5522137 <= r5522138;
        double r5522140 = b;
        double r5522141 = c;
        double r5522142 = r5522140 * r5522141;
        double r5522143 = 18.0;
        double r5522144 = z;
        double r5522145 = y;
        double r5522146 = r5522144 * r5522145;
        double r5522147 = x;
        double r5522148 = r5522146 * r5522147;
        double r5522149 = r5522137 * r5522148;
        double r5522150 = r5522143 * r5522149;
        double r5522151 = a;
        double r5522152 = 4.0;
        double r5522153 = r5522151 * r5522152;
        double r5522154 = r5522153 * r5522137;
        double r5522155 = r5522150 - r5522154;
        double r5522156 = r5522142 + r5522155;
        double r5522157 = r5522147 * r5522152;
        double r5522158 = i;
        double r5522159 = r5522157 * r5522158;
        double r5522160 = r5522156 - r5522159;
        double r5522161 = 27.0;
        double r5522162 = j;
        double r5522163 = k;
        double r5522164 = r5522162 * r5522163;
        double r5522165 = r5522161 * r5522164;
        double r5522166 = r5522160 - r5522165;
        double r5522167 = 8.769336708467037e+80;
        bool r5522168 = r5522137 <= r5522167;
        double r5522169 = r5522147 * r5522137;
        double r5522170 = r5522144 * r5522169;
        double r5522171 = r5522170 * r5522145;
        double r5522172 = r5522171 * r5522143;
        double r5522173 = r5522172 - r5522154;
        double r5522174 = r5522142 + r5522173;
        double r5522175 = r5522174 - r5522159;
        double r5522176 = r5522161 * r5522162;
        double r5522177 = r5522176 * r5522163;
        double r5522178 = r5522175 - r5522177;
        double r5522179 = r5522161 * r5522163;
        double r5522180 = r5522162 * r5522179;
        double r5522181 = r5522160 - r5522180;
        double r5522182 = r5522168 ? r5522178 : r5522181;
        double r5522183 = r5522139 ? r5522166 : r5522182;
        return r5522183;
}

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 < -5.433898367772061e-33

    1. Initial program 2.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. Taylor expanded around inf 2.5

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

      \[\leadsto \left(\left(\left(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) - \color{blue}{27.0 \cdot \left(j \cdot k\right)}\]

    if -5.433898367772061e-33 < t < 8.769336708467037e+80

    1. Initial program 7.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. Taylor expanded around inf 8.5

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

      \[\leadsto \left(\left(\left(18.0 \cdot \color{blue}{\left(\left(t \cdot x\right) \cdot \left(z \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*2.0

      \[\leadsto \left(\left(\left(18.0 \cdot \color{blue}{\left(\left(\left(t \cdot x\right) \cdot z\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\]

    if 8.769336708467037e+80 < t

    1. Initial program 1.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. Taylor expanded around inf 1.3

      \[\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-*l*1.5

      \[\leadsto \left(\left(\left(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) - \color{blue}{j \cdot \left(27.0 \cdot k\right)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification2.0

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

Reproduce

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