Average Error: 5.2 → 4.1
Time: 19.6s
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}\;z \le -6.546212281532558 \cdot 10^{-146}:\\ \;\;\;\;\left(b \cdot c - \left(x \cdot \left(i \cdot 4.0\right) + \left(27.0 \cdot j\right) \cdot k\right)\right) + \left(\left(z \cdot 18.0\right) \cdot \left(x \cdot y\right) - 4.0 \cdot a\right) \cdot t\\ \mathbf{elif}\;z \le 1.0466960848960275 \cdot 10^{-212}:\\ \;\;\;\;\left(\left(\left(18.0 \cdot \left(t \cdot \left(x \cdot \left(z \cdot y\right)\right)\right) - \left(4.0 \cdot a\right) \cdot t\right) + b \cdot c\right) - \left(4.0 \cdot x\right) \cdot i\right) - \left(27.0 \cdot k\right) \cdot j\\ \mathbf{else}:\\ \;\;\;\;\left(\left(b \cdot c + \left(t \cdot \left(z \cdot \left(\left(18.0 \cdot x\right) \cdot y\right)\right) - \left(4.0 \cdot a\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - \sqrt{27.0} \cdot \left(\sqrt{27.0} \cdot \left(k \cdot j\right)\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}\;z \le -6.546212281532558 \cdot 10^{-146}:\\
\;\;\;\;\left(b \cdot c - \left(x \cdot \left(i \cdot 4.0\right) + \left(27.0 \cdot j\right) \cdot k\right)\right) + \left(\left(z \cdot 18.0\right) \cdot \left(x \cdot y\right) - 4.0 \cdot a\right) \cdot t\\

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

\mathbf{else}:\\
\;\;\;\;\left(\left(b \cdot c + \left(t \cdot \left(z \cdot \left(\left(18.0 \cdot x\right) \cdot y\right)\right) - \left(4.0 \cdot a\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - \sqrt{27.0} \cdot \left(\sqrt{27.0} \cdot \left(k \cdot j\right)\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 r2109704 = x;
        double r2109705 = 18.0;
        double r2109706 = r2109704 * r2109705;
        double r2109707 = y;
        double r2109708 = r2109706 * r2109707;
        double r2109709 = z;
        double r2109710 = r2109708 * r2109709;
        double r2109711 = t;
        double r2109712 = r2109710 * r2109711;
        double r2109713 = a;
        double r2109714 = 4.0;
        double r2109715 = r2109713 * r2109714;
        double r2109716 = r2109715 * r2109711;
        double r2109717 = r2109712 - r2109716;
        double r2109718 = b;
        double r2109719 = c;
        double r2109720 = r2109718 * r2109719;
        double r2109721 = r2109717 + r2109720;
        double r2109722 = r2109704 * r2109714;
        double r2109723 = i;
        double r2109724 = r2109722 * r2109723;
        double r2109725 = r2109721 - r2109724;
        double r2109726 = j;
        double r2109727 = 27.0;
        double r2109728 = r2109726 * r2109727;
        double r2109729 = k;
        double r2109730 = r2109728 * r2109729;
        double r2109731 = r2109725 - r2109730;
        return r2109731;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r2109732 = z;
        double r2109733 = -6.546212281532558e-146;
        bool r2109734 = r2109732 <= r2109733;
        double r2109735 = b;
        double r2109736 = c;
        double r2109737 = r2109735 * r2109736;
        double r2109738 = x;
        double r2109739 = i;
        double r2109740 = 4.0;
        double r2109741 = r2109739 * r2109740;
        double r2109742 = r2109738 * r2109741;
        double r2109743 = 27.0;
        double r2109744 = j;
        double r2109745 = r2109743 * r2109744;
        double r2109746 = k;
        double r2109747 = r2109745 * r2109746;
        double r2109748 = r2109742 + r2109747;
        double r2109749 = r2109737 - r2109748;
        double r2109750 = 18.0;
        double r2109751 = r2109732 * r2109750;
        double r2109752 = y;
        double r2109753 = r2109738 * r2109752;
        double r2109754 = r2109751 * r2109753;
        double r2109755 = a;
        double r2109756 = r2109740 * r2109755;
        double r2109757 = r2109754 - r2109756;
        double r2109758 = t;
        double r2109759 = r2109757 * r2109758;
        double r2109760 = r2109749 + r2109759;
        double r2109761 = 1.0466960848960275e-212;
        bool r2109762 = r2109732 <= r2109761;
        double r2109763 = r2109732 * r2109752;
        double r2109764 = r2109738 * r2109763;
        double r2109765 = r2109758 * r2109764;
        double r2109766 = r2109750 * r2109765;
        double r2109767 = r2109756 * r2109758;
        double r2109768 = r2109766 - r2109767;
        double r2109769 = r2109768 + r2109737;
        double r2109770 = r2109740 * r2109738;
        double r2109771 = r2109770 * r2109739;
        double r2109772 = r2109769 - r2109771;
        double r2109773 = r2109743 * r2109746;
        double r2109774 = r2109773 * r2109744;
        double r2109775 = r2109772 - r2109774;
        double r2109776 = r2109750 * r2109738;
        double r2109777 = r2109776 * r2109752;
        double r2109778 = r2109732 * r2109777;
        double r2109779 = r2109758 * r2109778;
        double r2109780 = r2109779 - r2109767;
        double r2109781 = r2109737 + r2109780;
        double r2109782 = r2109781 - r2109771;
        double r2109783 = sqrt(r2109743);
        double r2109784 = r2109746 * r2109744;
        double r2109785 = r2109783 * r2109784;
        double r2109786 = r2109783 * r2109785;
        double r2109787 = r2109782 - r2109786;
        double r2109788 = r2109762 ? r2109775 : r2109787;
        double r2109789 = r2109734 ? r2109760 : r2109788;
        return r2109789;
}

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 3 regimes
  2. if z < -6.546212281532558e-146

    1. Initial program 5.1

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

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

    if -6.546212281532558e-146 < z < 1.0466960848960275e-212

    1. Initial program 5.5

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

      \[\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}{j \cdot \left(27.0 \cdot k\right)}\]
    4. Taylor expanded around inf 0.5

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

    if 1.0466960848960275e-212 < z

    1. Initial program 5.1

      \[\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 5.1

      \[\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. Using strategy rm
    4. Applied add-sqr-sqrt5.1

      \[\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}{\left(\sqrt{27.0} \cdot \sqrt{27.0}\right)} \cdot \left(j \cdot k\right)\]
    5. Applied associate-*l*5.1

      \[\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}{\sqrt{27.0} \cdot \left(\sqrt{27.0} \cdot \left(j \cdot k\right)\right)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification4.1

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

Reproduce

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