Average Error: 5.6 → 1.7
Time: 27.1s
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}\;t \le -1.072957652330537 \cdot 10^{-15}:\\ \;\;\;\;\left(\left(b \cdot c + \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)\right) - \left(4.0 \cdot x\right) \cdot i\right) - k \cdot \left(j \cdot 27.0\right)\\ \mathbf{elif}\;t \le 7.236958844779297 \cdot 10^{+28}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(t \cdot z\right) \cdot y\right) \cdot 18.0\right) \cdot x - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - k \cdot \left(j \cdot 27.0\right)\\ \mathbf{else}:\\ \;\;\;\;\left(b \cdot c - \left(x \cdot \left(4.0 \cdot i\right) + \left(k \cdot 27.0\right) \cdot j\right)\right) + \left(\left(x \cdot y\right) \cdot \left(18.0 \cdot z\right) - a \cdot 4.0\right) \cdot t\\ \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}\;t \le -1.072957652330537 \cdot 10^{-15}:\\
\;\;\;\;\left(\left(b \cdot c + \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)\right) - \left(4.0 \cdot x\right) \cdot i\right) - k \cdot \left(j \cdot 27.0\right)\\

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

\mathbf{else}:\\
\;\;\;\;\left(b \cdot c - \left(x \cdot \left(4.0 \cdot i\right) + \left(k \cdot 27.0\right) \cdot j\right)\right) + \left(\left(x \cdot y\right) \cdot \left(18.0 \cdot z\right) - a \cdot 4.0\right) \cdot t\\

\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 r2740244 = x;
        double r2740245 = 18.0;
        double r2740246 = r2740244 * r2740245;
        double r2740247 = y;
        double r2740248 = r2740246 * r2740247;
        double r2740249 = z;
        double r2740250 = r2740248 * r2740249;
        double r2740251 = t;
        double r2740252 = r2740250 * r2740251;
        double r2740253 = a;
        double r2740254 = 4.0;
        double r2740255 = r2740253 * r2740254;
        double r2740256 = r2740255 * r2740251;
        double r2740257 = r2740252 - r2740256;
        double r2740258 = b;
        double r2740259 = c;
        double r2740260 = r2740258 * r2740259;
        double r2740261 = r2740257 + r2740260;
        double r2740262 = r2740244 * r2740254;
        double r2740263 = i;
        double r2740264 = r2740262 * r2740263;
        double r2740265 = r2740261 - r2740264;
        double r2740266 = j;
        double r2740267 = 27.0;
        double r2740268 = r2740266 * r2740267;
        double r2740269 = k;
        double r2740270 = r2740268 * r2740269;
        double r2740271 = r2740265 - r2740270;
        return r2740271;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r2740272 = t;
        double r2740273 = -1.072957652330537e-15;
        bool r2740274 = r2740272 <= r2740273;
        double r2740275 = b;
        double r2740276 = c;
        double r2740277 = r2740275 * r2740276;
        double r2740278 = x;
        double r2740279 = 18.0;
        double r2740280 = r2740278 * r2740279;
        double r2740281 = y;
        double r2740282 = r2740280 * r2740281;
        double r2740283 = z;
        double r2740284 = r2740282 * r2740283;
        double r2740285 = r2740284 * r2740272;
        double r2740286 = a;
        double r2740287 = 4.0;
        double r2740288 = r2740286 * r2740287;
        double r2740289 = r2740288 * r2740272;
        double r2740290 = r2740285 - r2740289;
        double r2740291 = r2740277 + r2740290;
        double r2740292 = r2740287 * r2740278;
        double r2740293 = i;
        double r2740294 = r2740292 * r2740293;
        double r2740295 = r2740291 - r2740294;
        double r2740296 = k;
        double r2740297 = j;
        double r2740298 = 27.0;
        double r2740299 = r2740297 * r2740298;
        double r2740300 = r2740296 * r2740299;
        double r2740301 = r2740295 - r2740300;
        double r2740302 = 7.236958844779297e+28;
        bool r2740303 = r2740272 <= r2740302;
        double r2740304 = r2740272 * r2740283;
        double r2740305 = r2740304 * r2740281;
        double r2740306 = r2740305 * r2740279;
        double r2740307 = r2740306 * r2740278;
        double r2740308 = r2740307 - r2740289;
        double r2740309 = r2740277 + r2740308;
        double r2740310 = r2740309 - r2740294;
        double r2740311 = r2740310 - r2740300;
        double r2740312 = r2740287 * r2740293;
        double r2740313 = r2740278 * r2740312;
        double r2740314 = r2740296 * r2740298;
        double r2740315 = r2740314 * r2740297;
        double r2740316 = r2740313 + r2740315;
        double r2740317 = r2740277 - r2740316;
        double r2740318 = r2740278 * r2740281;
        double r2740319 = r2740279 * r2740283;
        double r2740320 = r2740318 * r2740319;
        double r2740321 = r2740320 - r2740288;
        double r2740322 = r2740321 * r2740272;
        double r2740323 = r2740317 + r2740322;
        double r2740324 = r2740303 ? r2740311 : r2740323;
        double r2740325 = r2740274 ? r2740301 : r2740324;
        return r2740325;
}

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.072957652330537e-15

    1. Initial program 2.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\]

    if -1.072957652330537e-15 < t < 7.236958844779297e+28

    1. Initial program 7.7

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

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

      \[\leadsto \left(\left(\left(\color{blue}{\left(x \cdot 18.0\right) \cdot \left(y \cdot \left(z \cdot t\right)\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\]
    6. Using strategy rm
    7. Applied associate-*l*1.8

      \[\leadsto \left(\left(\left(\color{blue}{x \cdot \left(18.0 \cdot \left(y \cdot \left(z \cdot t\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) - \left(j \cdot 27.0\right) \cdot k\]

    if 7.236958844779297e+28 < t

    1. Initial program 1.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. Simplified1.3

      \[\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}\]
    3. Using strategy rm
    4. Applied associate-*r*1.2

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1.072957652330537 \cdot 10^{-15}:\\ \;\;\;\;\left(\left(b \cdot c + \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)\right) - \left(4.0 \cdot x\right) \cdot i\right) - k \cdot \left(j \cdot 27.0\right)\\ \mathbf{elif}\;t \le 7.236958844779297 \cdot 10^{+28}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(t \cdot z\right) \cdot y\right) \cdot 18.0\right) \cdot x - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(4.0 \cdot x\right) \cdot i\right) - k \cdot \left(j \cdot 27.0\right)\\ \mathbf{else}:\\ \;\;\;\;\left(b \cdot c - \left(x \cdot \left(4.0 \cdot i\right) + \left(k \cdot 27.0\right) \cdot j\right)\right) + \left(\left(x \cdot y\right) \cdot \left(18.0 \cdot z\right) - a \cdot 4.0\right) \cdot t\\ \end{array}\]

Reproduce

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