Average Error: 5.6 → 1.3
Time: 20.7s
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}\;\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 = -\infty:\\ \;\;\;\;\mathsf{fma}\left(z \cdot \left(x \cdot 18\right), t \cdot y, b \cdot c - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\\ \mathbf{elif}\;\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 \le 9.44691043772436753 \cdot 10^{300}:\\ \;\;\;\;\left(\left(\mathsf{fma}\left(b, c, t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right)\right) - 4 \cdot \left(i \cdot x\right)\right) + \left(x \cdot 4\right) \cdot \left(\left(-i\right) + i\right)\right) - \left(j \cdot 27\right) \cdot k\\ \mathbf{else}:\\ \;\;\;\;\left(\left(x \cdot 18\right) \cdot \left(y \cdot \left(z \cdot t\right)\right) - \mathsf{fma}\left(x \cdot 4, i, \left(a \cdot 4\right) \cdot t - b \cdot c\right)\right) - \left(j \cdot 27\right) \cdot k\\ \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}\;\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 = -\infty:\\
\;\;\;\;\mathsf{fma}\left(z \cdot \left(x \cdot 18\right), t \cdot y, b \cdot c - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\\

\mathbf{elif}\;\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 \le 9.44691043772436753 \cdot 10^{300}:\\
\;\;\;\;\left(\left(\mathsf{fma}\left(b, c, t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right)\right) - 4 \cdot \left(i \cdot x\right)\right) + \left(x \cdot 4\right) \cdot \left(\left(-i\right) + i\right)\right) - \left(j \cdot 27\right) \cdot k\\

\mathbf{else}:\\
\;\;\;\;\left(\left(x \cdot 18\right) \cdot \left(y \cdot \left(z \cdot t\right)\right) - \mathsf{fma}\left(x \cdot 4, i, \left(a \cdot 4\right) \cdot t - b \cdot c\right)\right) - \left(j \cdot 27\right) \cdot k\\

\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 r161223 = x;
        double r161224 = 18.0;
        double r161225 = r161223 * r161224;
        double r161226 = y;
        double r161227 = r161225 * r161226;
        double r161228 = z;
        double r161229 = r161227 * r161228;
        double r161230 = t;
        double r161231 = r161229 * r161230;
        double r161232 = a;
        double r161233 = 4.0;
        double r161234 = r161232 * r161233;
        double r161235 = r161234 * r161230;
        double r161236 = r161231 - r161235;
        double r161237 = b;
        double r161238 = c;
        double r161239 = r161237 * r161238;
        double r161240 = r161236 + r161239;
        double r161241 = r161223 * r161233;
        double r161242 = i;
        double r161243 = r161241 * r161242;
        double r161244 = r161240 - r161243;
        double r161245 = j;
        double r161246 = 27.0;
        double r161247 = r161245 * r161246;
        double r161248 = k;
        double r161249 = r161247 * r161248;
        double r161250 = r161244 - r161249;
        return r161250;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r161251 = x;
        double r161252 = 18.0;
        double r161253 = r161251 * r161252;
        double r161254 = y;
        double r161255 = r161253 * r161254;
        double r161256 = z;
        double r161257 = r161255 * r161256;
        double r161258 = t;
        double r161259 = r161257 * r161258;
        double r161260 = a;
        double r161261 = 4.0;
        double r161262 = r161260 * r161261;
        double r161263 = r161262 * r161258;
        double r161264 = r161259 - r161263;
        double r161265 = b;
        double r161266 = c;
        double r161267 = r161265 * r161266;
        double r161268 = r161264 + r161267;
        double r161269 = r161251 * r161261;
        double r161270 = i;
        double r161271 = r161269 * r161270;
        double r161272 = r161268 - r161271;
        double r161273 = -inf.0;
        bool r161274 = r161272 <= r161273;
        double r161275 = r161256 * r161253;
        double r161276 = r161258 * r161254;
        double r161277 = r161251 * r161270;
        double r161278 = fma(r161258, r161260, r161277);
        double r161279 = j;
        double r161280 = 27.0;
        double r161281 = r161279 * r161280;
        double r161282 = k;
        double r161283 = r161281 * r161282;
        double r161284 = fma(r161261, r161278, r161283);
        double r161285 = r161267 - r161284;
        double r161286 = fma(r161275, r161276, r161285);
        double r161287 = 9.446910437724368e+300;
        bool r161288 = r161272 <= r161287;
        double r161289 = r161257 - r161262;
        double r161290 = r161258 * r161289;
        double r161291 = fma(r161265, r161266, r161290);
        double r161292 = r161270 * r161251;
        double r161293 = r161261 * r161292;
        double r161294 = r161291 - r161293;
        double r161295 = -r161270;
        double r161296 = r161295 + r161270;
        double r161297 = r161269 * r161296;
        double r161298 = r161294 + r161297;
        double r161299 = r161298 - r161283;
        double r161300 = r161256 * r161258;
        double r161301 = r161254 * r161300;
        double r161302 = r161253 * r161301;
        double r161303 = r161263 - r161267;
        double r161304 = fma(r161269, r161270, r161303);
        double r161305 = r161302 - r161304;
        double r161306 = r161305 - r161283;
        double r161307 = r161288 ? r161299 : r161306;
        double r161308 = r161274 ? r161286 : r161307;
        return r161308;
}

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

Derivation

  1. Split input into 3 regimes
  2. if (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < -inf.0

    1. Initial program 64.0

      \[\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. Simplified14.3

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

    if -inf.0 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < 9.446910437724368e+300

    1. Initial program 0.4

      \[\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. Using strategy rm
    3. Applied associate-*l*3.3

      \[\leadsto \left(\left(\left(\color{blue}{\left(\left(x \cdot 18\right) \cdot y\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\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt34.3

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

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

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

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

    if 9.446910437724368e+300 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i))

    1. Initial program 49.4

      \[\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. Using strategy rm
    3. Applied associate-*l*28.1

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

      \[\leadsto \left(\left(\left(\color{blue}{\left(x \cdot 18\right) \cdot \left(y \cdot \left(z \cdot t\right)\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\]
    6. Using strategy rm
    7. Applied associate-+l-7.0

      \[\leadsto \left(\color{blue}{\left(\left(x \cdot 18\right) \cdot \left(y \cdot \left(z \cdot t\right)\right) - \left(\left(a \cdot 4\right) \cdot t - b \cdot c\right)\right)} - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    8. Applied associate--l-7.0

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

      \[\leadsto \left(\left(x \cdot 18\right) \cdot \left(y \cdot \left(z \cdot t\right)\right) - \color{blue}{\mathsf{fma}\left(x \cdot 4, i, \left(a \cdot 4\right) \cdot t - b \cdot c\right)}\right) - \left(j \cdot 27\right) \cdot k\]
  3. Recombined 3 regimes into one program.
  4. Final simplification1.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\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 = -\infty:\\ \;\;\;\;\mathsf{fma}\left(z \cdot \left(x \cdot 18\right), t \cdot y, b \cdot c - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), \left(j \cdot 27\right) \cdot k\right)\right)\\ \mathbf{elif}\;\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 \le 9.44691043772436753 \cdot 10^{300}:\\ \;\;\;\;\left(\left(\mathsf{fma}\left(b, c, t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right)\right) - 4 \cdot \left(i \cdot x\right)\right) + \left(x \cdot 4\right) \cdot \left(\left(-i\right) + i\right)\right) - \left(j \cdot 27\right) \cdot k\\ \mathbf{else}:\\ \;\;\;\;\left(\left(x \cdot 18\right) \cdot \left(y \cdot \left(z \cdot t\right)\right) - \mathsf{fma}\left(x \cdot 4, i, \left(a \cdot 4\right) \cdot t - b \cdot c\right)\right) - \left(j \cdot 27\right) \cdot k\\ \end{array}\]

Reproduce

herbie shell --seed 2020042 +o rules:numerics
(FPCore (x y z t a b c i j k)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1"
  :precision binary64
  (- (- (+ (- (* (* (* (* x 18) y) z) t) (* (* a 4) t)) (* b c)) (* (* x 4) i)) (* (* j 27) k)))