Average Error: 5.6 → 5.6
Time: 1.4m
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\]
\[\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(x \cdot 4\right) \cdot i\right)\right) - j \cdot \left(27 \cdot k\right)\]
\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
\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(x \cdot 4\right) \cdot i\right)\right) - j \cdot \left(27 \cdot k\right)
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r99571 = x;
        double r99572 = 18.0;
        double r99573 = r99571 * r99572;
        double r99574 = y;
        double r99575 = r99573 * r99574;
        double r99576 = z;
        double r99577 = r99575 * r99576;
        double r99578 = t;
        double r99579 = r99577 * r99578;
        double r99580 = a;
        double r99581 = 4.0;
        double r99582 = r99580 * r99581;
        double r99583 = r99582 * r99578;
        double r99584 = r99579 - r99583;
        double r99585 = b;
        double r99586 = c;
        double r99587 = r99585 * r99586;
        double r99588 = r99584 + r99587;
        double r99589 = r99571 * r99581;
        double r99590 = i;
        double r99591 = r99589 * r99590;
        double r99592 = r99588 - r99591;
        double r99593 = j;
        double r99594 = 27.0;
        double r99595 = r99593 * r99594;
        double r99596 = k;
        double r99597 = r99595 * r99596;
        double r99598 = r99592 - r99597;
        return r99598;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r99599 = t;
        double r99600 = x;
        double r99601 = 18.0;
        double r99602 = r99600 * r99601;
        double r99603 = y;
        double r99604 = r99602 * r99603;
        double r99605 = z;
        double r99606 = r99604 * r99605;
        double r99607 = a;
        double r99608 = 4.0;
        double r99609 = r99607 * r99608;
        double r99610 = r99606 - r99609;
        double r99611 = r99599 * r99610;
        double r99612 = b;
        double r99613 = c;
        double r99614 = r99612 * r99613;
        double r99615 = r99600 * r99608;
        double r99616 = i;
        double r99617 = r99615 * r99616;
        double r99618 = r99614 - r99617;
        double r99619 = r99611 + r99618;
        double r99620 = j;
        double r99621 = 27.0;
        double r99622 = k;
        double r99623 = r99621 * r99622;
        double r99624 = r99620 * r99623;
        double r99625 = r99619 - r99624;
        return r99625;
}

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 < -4.3830139062668545e+58

    1. Initial program 1.4

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

      \[\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)}\]

    if -4.3830139062668545e+58 < t < 3.6462011735036985e+44

    1. Initial program 7.2

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

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

    if 3.6462011735036985e+44 < t

    1. Initial program 1.8

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

      \[\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) - \left(j \cdot 27\right) \cdot k\]
  3. Recombined 3 regimes into one program.
  4. Final simplification5.6

    \[\leadsto \left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(x \cdot 4\right) \cdot i\right)\right) - j \cdot \left(27 \cdot k\right)\]

Reproduce

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