Average Error: 5.6 → 1.3
Time: 1.5m
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}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i = -\infty:\\ \;\;\;\;\left(c \cdot b - x \cdot \left(4.0 \cdot i - \left(y \cdot \left(18.0 \cdot t\right)\right) \cdot z\right)\right) - k \cdot \left(j \cdot 27.0\right)\\ \mathbf{elif}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i \le 5.560084394641165 \cdot 10^{+292}:\\ \;\;\;\;\left(\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot k\right) \cdot 27.0\\ \mathbf{else}:\\ \;\;\;\;\left(c \cdot b - x \cdot \left(4.0 \cdot i - \left(y \cdot \left(18.0 \cdot t\right)\right) \cdot z\right)\right) - k \cdot \left(j \cdot 27.0\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}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i = -\infty:\\
\;\;\;\;\left(c \cdot b - x \cdot \left(4.0 \cdot i - \left(y \cdot \left(18.0 \cdot t\right)\right) \cdot z\right)\right) - k \cdot \left(j \cdot 27.0\right)\\

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

\mathbf{else}:\\
\;\;\;\;\left(c \cdot b - x \cdot \left(4.0 \cdot i - \left(y \cdot \left(18.0 \cdot t\right)\right) \cdot z\right)\right) - k \cdot \left(j \cdot 27.0\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 r22749702 = x;
        double r22749703 = 18.0;
        double r22749704 = r22749702 * r22749703;
        double r22749705 = y;
        double r22749706 = r22749704 * r22749705;
        double r22749707 = z;
        double r22749708 = r22749706 * r22749707;
        double r22749709 = t;
        double r22749710 = r22749708 * r22749709;
        double r22749711 = a;
        double r22749712 = 4.0;
        double r22749713 = r22749711 * r22749712;
        double r22749714 = r22749713 * r22749709;
        double r22749715 = r22749710 - r22749714;
        double r22749716 = b;
        double r22749717 = c;
        double r22749718 = r22749716 * r22749717;
        double r22749719 = r22749715 + r22749718;
        double r22749720 = r22749702 * r22749712;
        double r22749721 = i;
        double r22749722 = r22749720 * r22749721;
        double r22749723 = r22749719 - r22749722;
        double r22749724 = j;
        double r22749725 = 27.0;
        double r22749726 = r22749724 * r22749725;
        double r22749727 = k;
        double r22749728 = r22749726 * r22749727;
        double r22749729 = r22749723 - r22749728;
        return r22749729;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r22749730 = t;
        double r22749731 = x;
        double r22749732 = 18.0;
        double r22749733 = r22749731 * r22749732;
        double r22749734 = y;
        double r22749735 = r22749733 * r22749734;
        double r22749736 = z;
        double r22749737 = r22749735 * r22749736;
        double r22749738 = r22749730 * r22749737;
        double r22749739 = a;
        double r22749740 = 4.0;
        double r22749741 = r22749739 * r22749740;
        double r22749742 = r22749741 * r22749730;
        double r22749743 = r22749738 - r22749742;
        double r22749744 = c;
        double r22749745 = b;
        double r22749746 = r22749744 * r22749745;
        double r22749747 = r22749743 + r22749746;
        double r22749748 = r22749731 * r22749740;
        double r22749749 = i;
        double r22749750 = r22749748 * r22749749;
        double r22749751 = r22749747 - r22749750;
        double r22749752 = -inf.0;
        bool r22749753 = r22749751 <= r22749752;
        double r22749754 = r22749740 * r22749749;
        double r22749755 = r22749732 * r22749730;
        double r22749756 = r22749734 * r22749755;
        double r22749757 = r22749756 * r22749736;
        double r22749758 = r22749754 - r22749757;
        double r22749759 = r22749731 * r22749758;
        double r22749760 = r22749746 - r22749759;
        double r22749761 = k;
        double r22749762 = j;
        double r22749763 = 27.0;
        double r22749764 = r22749762 * r22749763;
        double r22749765 = r22749761 * r22749764;
        double r22749766 = r22749760 - r22749765;
        double r22749767 = 5.560084394641165e+292;
        bool r22749768 = r22749751 <= r22749767;
        double r22749769 = r22749762 * r22749761;
        double r22749770 = r22749769 * r22749763;
        double r22749771 = r22749751 - r22749770;
        double r22749772 = r22749768 ? r22749771 : r22749766;
        double r22749773 = r22749753 ? r22749766 : r22749772;
        return r22749773;
}

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 (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < -inf.0 or 5.560084394641165e+292 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i))

    1. Initial program 48.9

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

      \[\leadsto \left(\left(\left(\color{blue}{\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot \left(z \cdot t\right)} - \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\]
    4. Taylor expanded around inf 37.1

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

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

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

    1. Initial program 0.3

      \[\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 0 0.2

      \[\leadsto \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) - \color{blue}{27.0 \cdot \left(j \cdot k\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.3

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

Reproduce

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