Average Error: 5.7 → 4.2
Time: 31.5s
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}\;z \le -6.023016971486713978695466466448444890718 \cdot 10^{129} \lor \neg \left(z \le 4.983042576879064654649325286831293190518 \cdot 10^{-72}\right):\\ \;\;\;\;\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(t \cdot \left(x \cdot \left(\left(y \cdot 18\right) \cdot z\right) - a \cdot 4\right) + b \cdot c\right) - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\\ \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}\;z \le -6.023016971486713978695466466448444890718 \cdot 10^{129} \lor \neg \left(z \le 4.983042576879064654649325286831293190518 \cdot 10^{-72}\right):\\
\;\;\;\;\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(t \cdot \left(x \cdot \left(\left(y \cdot 18\right) \cdot z\right) - a \cdot 4\right) + b \cdot c\right) - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \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 r78510 = x;
        double r78511 = 18.0;
        double r78512 = r78510 * r78511;
        double r78513 = y;
        double r78514 = r78512 * r78513;
        double r78515 = z;
        double r78516 = r78514 * r78515;
        double r78517 = t;
        double r78518 = r78516 * r78517;
        double r78519 = a;
        double r78520 = 4.0;
        double r78521 = r78519 * r78520;
        double r78522 = r78521 * r78517;
        double r78523 = r78518 - r78522;
        double r78524 = b;
        double r78525 = c;
        double r78526 = r78524 * r78525;
        double r78527 = r78523 + r78526;
        double r78528 = r78510 * r78520;
        double r78529 = i;
        double r78530 = r78528 * r78529;
        double r78531 = r78527 - r78530;
        double r78532 = j;
        double r78533 = 27.0;
        double r78534 = r78532 * r78533;
        double r78535 = k;
        double r78536 = r78534 * r78535;
        double r78537 = r78531 - r78536;
        return r78537;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r78538 = z;
        double r78539 = -6.023016971486714e+129;
        bool r78540 = r78538 <= r78539;
        double r78541 = 4.983042576879065e-72;
        bool r78542 = r78538 <= r78541;
        double r78543 = !r78542;
        bool r78544 = r78540 || r78543;
        double r78545 = t;
        double r78546 = x;
        double r78547 = 18.0;
        double r78548 = r78546 * r78547;
        double r78549 = y;
        double r78550 = r78548 * r78549;
        double r78551 = r78550 * r78538;
        double r78552 = a;
        double r78553 = 4.0;
        double r78554 = r78552 * r78553;
        double r78555 = r78551 - r78554;
        double r78556 = r78545 * r78555;
        double r78557 = b;
        double r78558 = c;
        double r78559 = r78557 * r78558;
        double r78560 = r78556 + r78559;
        double r78561 = r78546 * r78553;
        double r78562 = i;
        double r78563 = r78561 * r78562;
        double r78564 = j;
        double r78565 = 27.0;
        double r78566 = k;
        double r78567 = r78565 * r78566;
        double r78568 = r78564 * r78567;
        double r78569 = r78563 + r78568;
        double r78570 = r78560 - r78569;
        double r78571 = r78549 * r78547;
        double r78572 = r78571 * r78538;
        double r78573 = r78546 * r78572;
        double r78574 = r78573 - r78554;
        double r78575 = r78545 * r78574;
        double r78576 = r78575 + r78559;
        double r78577 = r78564 * r78565;
        double r78578 = r78577 * r78566;
        double r78579 = r78563 + r78578;
        double r78580 = r78576 - r78579;
        double r78581 = r78544 ? r78570 : r78580;
        return r78581;
}

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 z < -6.023016971486714e+129 or 4.983042576879065e-72 < z

    1. Initial program 6.7

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

      \[\leadsto \color{blue}{\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)}\]
    3. Using strategy rm
    4. Applied associate-*l*6.7

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

    if -6.023016971486714e+129 < z < 4.983042576879065e-72

    1. Initial program 5.1

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

      \[\leadsto \color{blue}{\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)}\]
    3. Using strategy rm
    4. Applied associate-*l*5.1

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

      \[\leadsto \left(t \cdot \left(\left(x \cdot \color{blue}{\left(y \cdot 18\right)}\right) \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\]
    6. Using strategy rm
    7. Applied associate-*l*2.5

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -6.023016971486713978695466466448444890718 \cdot 10^{129} \lor \neg \left(z \le 4.983042576879064654649325286831293190518 \cdot 10^{-72}\right):\\ \;\;\;\;\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(t \cdot \left(x \cdot \left(\left(y \cdot 18\right) \cdot z\right) - a \cdot 4\right) + b \cdot c\right) - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\\ \end{array}\]

Reproduce

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