Average Error: 5.4 → 3.3
Time: 8.3s
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}\;t \le -1.787999632129042313109932440053673622756 \cdot 10^{-58} \lor \neg \left(t \le 5.125651671865202290233189735963724228734 \cdot 10^{51}\right):\\ \;\;\;\;\left(\left(\left(\left(x \cdot \left(\left(18 \cdot y\right) \cdot z\right)\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - j \cdot \left(27 \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\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\right) - \left(x \cdot 4\right) \cdot i\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}\;t \le -1.787999632129042313109932440053673622756 \cdot 10^{-58} \lor \neg \left(t \le 5.125651671865202290233189735963724228734 \cdot 10^{51}\right):\\
\;\;\;\;\left(\left(\left(\left(x \cdot \left(\left(18 \cdot y\right) \cdot z\right)\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - j \cdot \left(27 \cdot k\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\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\right) - \left(x \cdot 4\right) \cdot i\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 r174571 = x;
        double r174572 = 18.0;
        double r174573 = r174571 * r174572;
        double r174574 = y;
        double r174575 = r174573 * r174574;
        double r174576 = z;
        double r174577 = r174575 * r174576;
        double r174578 = t;
        double r174579 = r174577 * r174578;
        double r174580 = a;
        double r174581 = 4.0;
        double r174582 = r174580 * r174581;
        double r174583 = r174582 * r174578;
        double r174584 = r174579 - r174583;
        double r174585 = b;
        double r174586 = c;
        double r174587 = r174585 * r174586;
        double r174588 = r174584 + r174587;
        double r174589 = r174571 * r174581;
        double r174590 = i;
        double r174591 = r174589 * r174590;
        double r174592 = r174588 - r174591;
        double r174593 = j;
        double r174594 = 27.0;
        double r174595 = r174593 * r174594;
        double r174596 = k;
        double r174597 = r174595 * r174596;
        double r174598 = r174592 - r174597;
        return r174598;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r174599 = t;
        double r174600 = -1.7879996321290423e-58;
        bool r174601 = r174599 <= r174600;
        double r174602 = 5.125651671865202e+51;
        bool r174603 = r174599 <= r174602;
        double r174604 = !r174603;
        bool r174605 = r174601 || r174604;
        double r174606 = x;
        double r174607 = 18.0;
        double r174608 = y;
        double r174609 = r174607 * r174608;
        double r174610 = z;
        double r174611 = r174609 * r174610;
        double r174612 = r174606 * r174611;
        double r174613 = r174612 * r174599;
        double r174614 = a;
        double r174615 = 4.0;
        double r174616 = r174614 * r174615;
        double r174617 = r174616 * r174599;
        double r174618 = r174613 - r174617;
        double r174619 = b;
        double r174620 = c;
        double r174621 = r174619 * r174620;
        double r174622 = r174618 + r174621;
        double r174623 = r174606 * r174615;
        double r174624 = i;
        double r174625 = r174623 * r174624;
        double r174626 = r174622 - r174625;
        double r174627 = j;
        double r174628 = 27.0;
        double r174629 = k;
        double r174630 = r174628 * r174629;
        double r174631 = r174627 * r174630;
        double r174632 = r174626 - r174631;
        double r174633 = r174606 * r174607;
        double r174634 = r174633 * r174608;
        double r174635 = r174610 * r174599;
        double r174636 = r174634 * r174635;
        double r174637 = r174636 - r174617;
        double r174638 = r174637 + r174621;
        double r174639 = r174638 - r174625;
        double r174640 = r174627 * r174628;
        double r174641 = r174640 * r174629;
        double r174642 = r174639 - r174641;
        double r174643 = r174605 ? r174632 : r174642;
        return r174643;
}

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 < -1.7879996321290423e-58 or 5.125651671865202e+51 < t

    1. Initial program 2.3

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

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

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

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

    if -1.7879996321290423e-58 < t < 5.125651671865202e+51

    1. Initial program 7.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*4.0

      \[\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\]
  3. Recombined 2 regimes into one program.
  4. Final simplification3.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1.787999632129042313109932440053673622756 \cdot 10^{-58} \lor \neg \left(t \le 5.125651671865202290233189735963724228734 \cdot 10^{51}\right):\\ \;\;\;\;\left(\left(\left(\left(x \cdot \left(\left(18 \cdot y\right) \cdot z\right)\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - j \cdot \left(27 \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\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\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\\ \end{array}\]

Reproduce

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