Average Error: 5.7 → 1.9
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}\;t \le -2.09206231284064533924647487158246602957 \cdot 10^{-45} \lor \neg \left(t \le 7.712463495126096893546357295759619116123 \cdot 10^{-24}\right):\\ \;\;\;\;\left(t \cdot \left(\left(x \cdot \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)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(18 \cdot \left(\left(\left(t \cdot x\right) \cdot z\right) \cdot y\right) + -4 \cdot \left(t \cdot a\right)\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}\;t \le -2.09206231284064533924647487158246602957 \cdot 10^{-45} \lor \neg \left(t \le 7.712463495126096893546357295759619116123 \cdot 10^{-24}\right):\\
\;\;\;\;\left(t \cdot \left(\left(x \cdot \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)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(18 \cdot \left(\left(\left(t \cdot x\right) \cdot z\right) \cdot y\right) + -4 \cdot \left(t \cdot a\right)\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 r141587 = x;
        double r141588 = 18.0;
        double r141589 = r141587 * r141588;
        double r141590 = y;
        double r141591 = r141589 * r141590;
        double r141592 = z;
        double r141593 = r141591 * r141592;
        double r141594 = t;
        double r141595 = r141593 * r141594;
        double r141596 = a;
        double r141597 = 4.0;
        double r141598 = r141596 * r141597;
        double r141599 = r141598 * r141594;
        double r141600 = r141595 - r141599;
        double r141601 = b;
        double r141602 = c;
        double r141603 = r141601 * r141602;
        double r141604 = r141600 + r141603;
        double r141605 = r141587 * r141597;
        double r141606 = i;
        double r141607 = r141605 * r141606;
        double r141608 = r141604 - r141607;
        double r141609 = j;
        double r141610 = 27.0;
        double r141611 = r141609 * r141610;
        double r141612 = k;
        double r141613 = r141611 * r141612;
        double r141614 = r141608 - r141613;
        return r141614;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r141615 = t;
        double r141616 = -2.0920623128406453e-45;
        bool r141617 = r141615 <= r141616;
        double r141618 = 7.712463495126097e-24;
        bool r141619 = r141615 <= r141618;
        double r141620 = !r141619;
        bool r141621 = r141617 || r141620;
        double r141622 = x;
        double r141623 = y;
        double r141624 = 18.0;
        double r141625 = r141623 * r141624;
        double r141626 = r141622 * r141625;
        double r141627 = z;
        double r141628 = r141626 * r141627;
        double r141629 = a;
        double r141630 = 4.0;
        double r141631 = r141629 * r141630;
        double r141632 = r141628 - r141631;
        double r141633 = r141615 * r141632;
        double r141634 = b;
        double r141635 = c;
        double r141636 = r141634 * r141635;
        double r141637 = r141633 + r141636;
        double r141638 = r141622 * r141630;
        double r141639 = i;
        double r141640 = r141638 * r141639;
        double r141641 = j;
        double r141642 = 27.0;
        double r141643 = r141641 * r141642;
        double r141644 = k;
        double r141645 = r141643 * r141644;
        double r141646 = r141640 + r141645;
        double r141647 = r141637 - r141646;
        double r141648 = r141615 * r141622;
        double r141649 = r141648 * r141627;
        double r141650 = r141649 * r141623;
        double r141651 = r141624 * r141650;
        double r141652 = -4.0;
        double r141653 = r141615 * r141629;
        double r141654 = r141652 * r141653;
        double r141655 = r141651 + r141654;
        double r141656 = r141655 + r141636;
        double r141657 = r141656 - r141646;
        double r141658 = r141621 ? r141647 : r141657;
        return r141658;
}

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 < -2.0920623128406453e-45 or 7.712463495126097e-24 < t

    1. Initial program 2.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. Simplified2.0

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

      \[\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. Simplified2.0

      \[\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)\]

    if -2.0920623128406453e-45 < t < 7.712463495126097e-24

    1. Initial program 8.6

      \[\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. Simplified8.6

      \[\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 sub-neg8.6

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

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

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

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

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

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

      \[\leadsto \left(\left(18 \cdot \left(\left(\left(t \cdot x\right) \cdot z\right) \cdot y\right) + \color{blue}{-4 \cdot \left(t \cdot a\right)}\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 simplification1.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -2.09206231284064533924647487158246602957 \cdot 10^{-45} \lor \neg \left(t \le 7.712463495126096893546357295759619116123 \cdot 10^{-24}\right):\\ \;\;\;\;\left(t \cdot \left(\left(x \cdot \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)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(18 \cdot \left(\left(\left(t \cdot x\right) \cdot z\right) \cdot y\right) + -4 \cdot \left(t \cdot a\right)\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 2019350 
(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)))