Average Error: 5.2 → 5.7
Time: 51.3s
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\]
\[(\left(\left(y \cdot z\right) \cdot \left(x \cdot 18.0\right) - a \cdot 4.0\right) \cdot t + \left(c \cdot b - (\left(27.0 \cdot k\right) \cdot j + \left(i \cdot \left(4.0 \cdot x\right)\right))_*\right))_*\]
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r12798400 = x;
        double r12798401 = 18.0;
        double r12798402 = r12798400 * r12798401;
        double r12798403 = y;
        double r12798404 = r12798402 * r12798403;
        double r12798405 = z;
        double r12798406 = r12798404 * r12798405;
        double r12798407 = t;
        double r12798408 = r12798406 * r12798407;
        double r12798409 = a;
        double r12798410 = 4.0;
        double r12798411 = r12798409 * r12798410;
        double r12798412 = r12798411 * r12798407;
        double r12798413 = r12798408 - r12798412;
        double r12798414 = b;
        double r12798415 = c;
        double r12798416 = r12798414 * r12798415;
        double r12798417 = r12798413 + r12798416;
        double r12798418 = r12798400 * r12798410;
        double r12798419 = i;
        double r12798420 = r12798418 * r12798419;
        double r12798421 = r12798417 - r12798420;
        double r12798422 = j;
        double r12798423 = 27.0;
        double r12798424 = r12798422 * r12798423;
        double r12798425 = k;
        double r12798426 = r12798424 * r12798425;
        double r12798427 = r12798421 - r12798426;
        return r12798427;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r12798428 = y;
        double r12798429 = z;
        double r12798430 = r12798428 * r12798429;
        double r12798431 = x;
        double r12798432 = 18.0;
        double r12798433 = r12798431 * r12798432;
        double r12798434 = r12798430 * r12798433;
        double r12798435 = a;
        double r12798436 = 4.0;
        double r12798437 = r12798435 * r12798436;
        double r12798438 = r12798434 - r12798437;
        double r12798439 = t;
        double r12798440 = c;
        double r12798441 = b;
        double r12798442 = r12798440 * r12798441;
        double r12798443 = 27.0;
        double r12798444 = k;
        double r12798445 = r12798443 * r12798444;
        double r12798446 = j;
        double r12798447 = i;
        double r12798448 = r12798436 * r12798431;
        double r12798449 = r12798447 * r12798448;
        double r12798450 = fma(r12798445, r12798446, r12798449);
        double r12798451 = r12798442 - r12798450;
        double r12798452 = fma(r12798438, r12798439, r12798451);
        return r12798452;
}

\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
(\left(\left(y \cdot z\right) \cdot \left(x \cdot 18.0\right) - a \cdot 4.0\right) \cdot t + \left(c \cdot b - (\left(27.0 \cdot k\right) \cdot j + \left(i \cdot \left(4.0 \cdot x\right)\right))_*\right))_*

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

Derivation

  1. Initial program 5.2

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

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

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

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

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

Reproduce

herbie shell --seed 2019101 +o rules:numerics
(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)))