Average Error: 5.6 → 3.6
Time: 35.6s
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.023825023846045 \cdot 10^{+64}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - 4.0 \cdot \left(a \cdot t\right)\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - \sqrt{27.0} \cdot \left(\left(k \cdot j\right) \cdot \sqrt{27.0}\right)\\ \mathbf{elif}\;t \le 6.353966005555308 \cdot 10^{-89}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(t \cdot z\right) \cdot \left(\left(x \cdot 18.0\right) \cdot y\right) - 4.0 \cdot \left(a \cdot t\right)\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - k \cdot \left(27.0 \cdot j\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(b \cdot c + \left(t \cdot \left(z \cdot \left(\left(x \cdot y\right) \cdot 18.0\right)\right) - 4.0 \cdot \left(a \cdot t\right)\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - k \cdot \left(27.0 \cdot j\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.023825023846045 \cdot 10^{+64}:\\
\;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - 4.0 \cdot \left(a \cdot t\right)\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - \sqrt{27.0} \cdot \left(\left(k \cdot j\right) \cdot \sqrt{27.0}\right)\\

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

\mathbf{else}:\\
\;\;\;\;\left(\left(b \cdot c + \left(t \cdot \left(z \cdot \left(\left(x \cdot y\right) \cdot 18.0\right)\right) - 4.0 \cdot \left(a \cdot t\right)\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - k \cdot \left(27.0 \cdot j\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 r5673178 = x;
        double r5673179 = 18.0;
        double r5673180 = r5673178 * r5673179;
        double r5673181 = y;
        double r5673182 = r5673180 * r5673181;
        double r5673183 = z;
        double r5673184 = r5673182 * r5673183;
        double r5673185 = t;
        double r5673186 = r5673184 * r5673185;
        double r5673187 = a;
        double r5673188 = 4.0;
        double r5673189 = r5673187 * r5673188;
        double r5673190 = r5673189 * r5673185;
        double r5673191 = r5673186 - r5673190;
        double r5673192 = b;
        double r5673193 = c;
        double r5673194 = r5673192 * r5673193;
        double r5673195 = r5673191 + r5673194;
        double r5673196 = r5673178 * r5673188;
        double r5673197 = i;
        double r5673198 = r5673196 * r5673197;
        double r5673199 = r5673195 - r5673198;
        double r5673200 = j;
        double r5673201 = 27.0;
        double r5673202 = r5673200 * r5673201;
        double r5673203 = k;
        double r5673204 = r5673202 * r5673203;
        double r5673205 = r5673199 - r5673204;
        return r5673205;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r5673206 = t;
        double r5673207 = -5.023825023846045e+64;
        bool r5673208 = r5673206 <= r5673207;
        double r5673209 = b;
        double r5673210 = c;
        double r5673211 = r5673209 * r5673210;
        double r5673212 = x;
        double r5673213 = 18.0;
        double r5673214 = r5673212 * r5673213;
        double r5673215 = y;
        double r5673216 = r5673214 * r5673215;
        double r5673217 = z;
        double r5673218 = r5673216 * r5673217;
        double r5673219 = r5673218 * r5673206;
        double r5673220 = 4.0;
        double r5673221 = a;
        double r5673222 = r5673221 * r5673206;
        double r5673223 = r5673220 * r5673222;
        double r5673224 = r5673219 - r5673223;
        double r5673225 = r5673211 + r5673224;
        double r5673226 = r5673212 * r5673220;
        double r5673227 = i;
        double r5673228 = r5673226 * r5673227;
        double r5673229 = r5673225 - r5673228;
        double r5673230 = 27.0;
        double r5673231 = sqrt(r5673230);
        double r5673232 = k;
        double r5673233 = j;
        double r5673234 = r5673232 * r5673233;
        double r5673235 = r5673234 * r5673231;
        double r5673236 = r5673231 * r5673235;
        double r5673237 = r5673229 - r5673236;
        double r5673238 = 6.353966005555308e-89;
        bool r5673239 = r5673206 <= r5673238;
        double r5673240 = r5673206 * r5673217;
        double r5673241 = r5673240 * r5673216;
        double r5673242 = r5673241 - r5673223;
        double r5673243 = r5673211 + r5673242;
        double r5673244 = r5673243 - r5673228;
        double r5673245 = r5673230 * r5673233;
        double r5673246 = r5673232 * r5673245;
        double r5673247 = r5673244 - r5673246;
        double r5673248 = r5673212 * r5673215;
        double r5673249 = r5673248 * r5673213;
        double r5673250 = r5673217 * r5673249;
        double r5673251 = r5673206 * r5673250;
        double r5673252 = r5673251 - r5673223;
        double r5673253 = r5673211 + r5673252;
        double r5673254 = r5673253 - r5673228;
        double r5673255 = r5673254 - r5673246;
        double r5673256 = r5673239 ? r5673247 : r5673255;
        double r5673257 = r5673208 ? r5673237 : r5673256;
        return r5673257;
}

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.023825023846045e+64

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

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

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

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - 4.0 \cdot \left(t \cdot a\right)\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \color{blue}{\left(\sqrt{27.0} \cdot \sqrt{27.0}\right)} \cdot \left(j \cdot k\right)\]
    6. Applied associate-*l*1.6

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

    if -5.023825023846045e+64 < t < 6.353966005555308e-89

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

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

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

    if 6.353966005555308e-89 < t

    1. Initial program 2.2

      \[\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.2

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

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

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

Reproduce

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