Average Error: 5.5 → 3.2
Time: 9.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 -1230856537969914387638316433408:\\ \;\;\;\;\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(\left(j \cdot 27\right) \cdot \left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)\right) \cdot \sqrt[3]{k}\\ \mathbf{elif}\;t \le 21.73111932267078572067475761286914348602:\\ \;\;\;\;\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) - j \cdot \left(27 \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot \left(y \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)\\ \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 -1230856537969914387638316433408:\\
\;\;\;\;\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(\left(j \cdot 27\right) \cdot \left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)\right) \cdot \sqrt[3]{k}\\

\mathbf{elif}\;t \le 21.73111932267078572067475761286914348602:\\
\;\;\;\;\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) - j \cdot \left(27 \cdot k\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot \left(y \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)\\

\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 r140794 = x;
        double r140795 = 18.0;
        double r140796 = r140794 * r140795;
        double r140797 = y;
        double r140798 = r140796 * r140797;
        double r140799 = z;
        double r140800 = r140798 * r140799;
        double r140801 = t;
        double r140802 = r140800 * r140801;
        double r140803 = a;
        double r140804 = 4.0;
        double r140805 = r140803 * r140804;
        double r140806 = r140805 * r140801;
        double r140807 = r140802 - r140806;
        double r140808 = b;
        double r140809 = c;
        double r140810 = r140808 * r140809;
        double r140811 = r140807 + r140810;
        double r140812 = r140794 * r140804;
        double r140813 = i;
        double r140814 = r140812 * r140813;
        double r140815 = r140811 - r140814;
        double r140816 = j;
        double r140817 = 27.0;
        double r140818 = r140816 * r140817;
        double r140819 = k;
        double r140820 = r140818 * r140819;
        double r140821 = r140815 - r140820;
        return r140821;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r140822 = t;
        double r140823 = -1.2308565379699144e+30;
        bool r140824 = r140822 <= r140823;
        double r140825 = x;
        double r140826 = 18.0;
        double r140827 = r140825 * r140826;
        double r140828 = y;
        double r140829 = r140827 * r140828;
        double r140830 = z;
        double r140831 = r140829 * r140830;
        double r140832 = r140831 * r140822;
        double r140833 = a;
        double r140834 = 4.0;
        double r140835 = r140833 * r140834;
        double r140836 = r140835 * r140822;
        double r140837 = r140832 - r140836;
        double r140838 = b;
        double r140839 = c;
        double r140840 = r140838 * r140839;
        double r140841 = r140837 + r140840;
        double r140842 = r140825 * r140834;
        double r140843 = i;
        double r140844 = r140842 * r140843;
        double r140845 = r140841 - r140844;
        double r140846 = j;
        double r140847 = 27.0;
        double r140848 = r140846 * r140847;
        double r140849 = k;
        double r140850 = cbrt(r140849);
        double r140851 = r140850 * r140850;
        double r140852 = r140848 * r140851;
        double r140853 = r140852 * r140850;
        double r140854 = r140845 - r140853;
        double r140855 = 21.731119322670786;
        bool r140856 = r140822 <= r140855;
        double r140857 = r140830 * r140822;
        double r140858 = r140829 * r140857;
        double r140859 = r140858 - r140836;
        double r140860 = r140859 + r140840;
        double r140861 = r140860 - r140844;
        double r140862 = r140847 * r140849;
        double r140863 = r140846 * r140862;
        double r140864 = r140861 - r140863;
        double r140865 = r140828 * r140830;
        double r140866 = r140827 * r140865;
        double r140867 = r140866 * r140822;
        double r140868 = r140867 - r140836;
        double r140869 = r140868 + r140840;
        double r140870 = r140869 - r140844;
        double r140871 = r140870 - r140863;
        double r140872 = r140856 ? r140864 : r140871;
        double r140873 = r140824 ? r140854 : r140872;
        return r140873;
}

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 t < -1.2308565379699144e+30

    1. Initial program 1.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. Using strategy rm
    3. Applied add-cube-cbrt1.8

      \[\leadsto \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 \color{blue}{\left(\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right) \cdot \sqrt[3]{k}\right)}\]
    4. Applied associate-*r*1.8

      \[\leadsto \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) - \color{blue}{\left(\left(j \cdot 27\right) \cdot \left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)\right) \cdot \sqrt[3]{k}}\]

    if -1.2308565379699144e+30 < t < 21.731119322670786

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

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

      \[\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) - j \cdot \left(27 \cdot k\right)\]

    if 21.731119322670786 < t

    1. Initial program 1.9

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

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

      \[\leadsto \left(\left(\left(\color{blue}{\left(\left(x \cdot 18\right) \cdot \left(y \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)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification3.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1230856537969914387638316433408:\\ \;\;\;\;\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(\left(j \cdot 27\right) \cdot \left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)\right) \cdot \sqrt[3]{k}\\ \mathbf{elif}\;t \le 21.73111932267078572067475761286914348602:\\ \;\;\;\;\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) - j \cdot \left(27 \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot \left(y \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)\\ \end{array}\]

Reproduce

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