Average Error: 5.4 → 4.2
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 - \left(\left(x \cdot 4.0\right) \cdot i - \left(\left(-a\right) \cdot 4.0\right) \cdot t\right)\right) - 27.0 \cdot \left(j \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\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) - k \cdot \left(27.0 \cdot j\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 - \left(\left(x \cdot 4.0\right) \cdot i - \left(\left(-a\right) \cdot 4.0\right) \cdot t\right)\right) - 27.0 \cdot \left(j \cdot k\right)\\

\mathbf{else}:\\
\;\;\;\;\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) - k \cdot \left(27.0 \cdot j\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 r18466133 = x;
        double r18466134 = 18.0;
        double r18466135 = r18466133 * r18466134;
        double r18466136 = y;
        double r18466137 = r18466135 * r18466136;
        double r18466138 = z;
        double r18466139 = r18466137 * r18466138;
        double r18466140 = t;
        double r18466141 = r18466139 * r18466140;
        double r18466142 = a;
        double r18466143 = 4.0;
        double r18466144 = r18466142 * r18466143;
        double r18466145 = r18466144 * r18466140;
        double r18466146 = r18466141 - r18466145;
        double r18466147 = b;
        double r18466148 = c;
        double r18466149 = r18466147 * r18466148;
        double r18466150 = r18466146 + r18466149;
        double r18466151 = r18466133 * r18466143;
        double r18466152 = i;
        double r18466153 = r18466151 * r18466152;
        double r18466154 = r18466150 - r18466153;
        double r18466155 = j;
        double r18466156 = 27.0;
        double r18466157 = r18466155 * r18466156;
        double r18466158 = k;
        double r18466159 = r18466157 * r18466158;
        double r18466160 = r18466154 - r18466159;
        return r18466160;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r18466161 = t;
        double r18466162 = x;
        double r18466163 = 18.0;
        double r18466164 = r18466162 * r18466163;
        double r18466165 = y;
        double r18466166 = r18466164 * r18466165;
        double r18466167 = z;
        double r18466168 = r18466166 * r18466167;
        double r18466169 = r18466161 * r18466168;
        double r18466170 = a;
        double r18466171 = 4.0;
        double r18466172 = r18466170 * r18466171;
        double r18466173 = r18466172 * r18466161;
        double r18466174 = r18466169 - r18466173;
        double r18466175 = c;
        double r18466176 = b;
        double r18466177 = r18466175 * r18466176;
        double r18466178 = r18466174 + r18466177;
        double r18466179 = r18466162 * r18466171;
        double r18466180 = i;
        double r18466181 = r18466179 * r18466180;
        double r18466182 = r18466178 - r18466181;
        double r18466183 = -inf.0;
        bool r18466184 = r18466182 <= r18466183;
        double r18466185 = -r18466170;
        double r18466186 = r18466185 * r18466171;
        double r18466187 = r18466186 * r18466161;
        double r18466188 = r18466181 - r18466187;
        double r18466189 = r18466177 - r18466188;
        double r18466190 = 27.0;
        double r18466191 = j;
        double r18466192 = k;
        double r18466193 = r18466191 * r18466192;
        double r18466194 = r18466190 * r18466193;
        double r18466195 = r18466189 - r18466194;
        double r18466196 = r18466190 * r18466191;
        double r18466197 = r18466192 * r18466196;
        double r18466198 = r18466182 - r18466197;
        double r18466199 = r18466184 ? r18466195 : r18466198;
        return r18466199;
}

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

    1. Initial program 60.6

      \[\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. Simplified40.3

      \[\leadsto \color{blue}{\left(c \cdot b - \left(\left(x \cdot 4.0\right) \cdot i - \left(y \cdot \left(\left(x \cdot 18.0\right) \cdot z\right) - a \cdot 4.0\right) \cdot t\right)\right) - \left(k \cdot 27.0\right) \cdot j}\]
    3. Taylor expanded around -inf 40.3

      \[\leadsto \left(c \cdot b - \left(\left(x \cdot 4.0\right) \cdot i - \left(y \cdot \left(\left(x \cdot 18.0\right) \cdot z\right) - a \cdot 4.0\right) \cdot t\right)\right) - \color{blue}{27.0 \cdot \left(j \cdot k\right)}\]
    4. Taylor expanded around 0 33.0

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

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

    1. Initial program 3.0

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

    \[\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 - \left(\left(x \cdot 4.0\right) \cdot i - \left(\left(-a\right) \cdot 4.0\right) \cdot t\right)\right) - 27.0 \cdot \left(j \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\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) - k \cdot \left(27.0 \cdot j\right)\\ \end{array}\]

Reproduce

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