Average Error: 5.2 → 3.8
Time: 27.7s
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 -2.231438472416083 \cdot 10^{-242}:\\ \;\;\;\;\left(\left(\left(z \cdot 18.0\right) \cdot x\right) \cdot y - a \cdot 4.0\right) \cdot t - \left(27.0 \cdot \left(j \cdot k\right) + \left(\left(x \cdot i\right) \cdot 4.0 - c \cdot b\right)\right)\\ \mathbf{elif}\;t \le 4.700365572470833 \cdot 10^{-22}:\\ \;\;\;\;\left(\left(\left(\left(x \cdot \left(y \cdot 18.0\right)\right) \cdot \left(z \cdot t\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(4.0 \cdot x\right) \cdot i\right) - \left(27.0 \cdot j\right) \cdot k\\ \mathbf{else}:\\ \;\;\;\;t \cdot \left(\left(y \cdot x\right) \cdot \left(z \cdot 18.0\right) - a \cdot 4.0\right) - \left(\left(\left(x \cdot i\right) \cdot 4.0 - c \cdot b\right) + \left(k \cdot 27.0\right) \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}\;t \le -2.231438472416083 \cdot 10^{-242}:\\
\;\;\;\;\left(\left(\left(z \cdot 18.0\right) \cdot x\right) \cdot y - a \cdot 4.0\right) \cdot t - \left(27.0 \cdot \left(j \cdot k\right) + \left(\left(x \cdot i\right) \cdot 4.0 - c \cdot b\right)\right)\\

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

\mathbf{else}:\\
\;\;\;\;t \cdot \left(\left(y \cdot x\right) \cdot \left(z \cdot 18.0\right) - a \cdot 4.0\right) - \left(\left(\left(x \cdot i\right) \cdot 4.0 - c \cdot b\right) + \left(k \cdot 27.0\right) \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 r4521588 = x;
        double r4521589 = 18.0;
        double r4521590 = r4521588 * r4521589;
        double r4521591 = y;
        double r4521592 = r4521590 * r4521591;
        double r4521593 = z;
        double r4521594 = r4521592 * r4521593;
        double r4521595 = t;
        double r4521596 = r4521594 * r4521595;
        double r4521597 = a;
        double r4521598 = 4.0;
        double r4521599 = r4521597 * r4521598;
        double r4521600 = r4521599 * r4521595;
        double r4521601 = r4521596 - r4521600;
        double r4521602 = b;
        double r4521603 = c;
        double r4521604 = r4521602 * r4521603;
        double r4521605 = r4521601 + r4521604;
        double r4521606 = r4521588 * r4521598;
        double r4521607 = i;
        double r4521608 = r4521606 * r4521607;
        double r4521609 = r4521605 - r4521608;
        double r4521610 = j;
        double r4521611 = 27.0;
        double r4521612 = r4521610 * r4521611;
        double r4521613 = k;
        double r4521614 = r4521612 * r4521613;
        double r4521615 = r4521609 - r4521614;
        return r4521615;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r4521616 = t;
        double r4521617 = -2.231438472416083e-242;
        bool r4521618 = r4521616 <= r4521617;
        double r4521619 = z;
        double r4521620 = 18.0;
        double r4521621 = r4521619 * r4521620;
        double r4521622 = x;
        double r4521623 = r4521621 * r4521622;
        double r4521624 = y;
        double r4521625 = r4521623 * r4521624;
        double r4521626 = a;
        double r4521627 = 4.0;
        double r4521628 = r4521626 * r4521627;
        double r4521629 = r4521625 - r4521628;
        double r4521630 = r4521629 * r4521616;
        double r4521631 = 27.0;
        double r4521632 = j;
        double r4521633 = k;
        double r4521634 = r4521632 * r4521633;
        double r4521635 = r4521631 * r4521634;
        double r4521636 = i;
        double r4521637 = r4521622 * r4521636;
        double r4521638 = r4521637 * r4521627;
        double r4521639 = c;
        double r4521640 = b;
        double r4521641 = r4521639 * r4521640;
        double r4521642 = r4521638 - r4521641;
        double r4521643 = r4521635 + r4521642;
        double r4521644 = r4521630 - r4521643;
        double r4521645 = 4.700365572470833e-22;
        bool r4521646 = r4521616 <= r4521645;
        double r4521647 = r4521624 * r4521620;
        double r4521648 = r4521622 * r4521647;
        double r4521649 = r4521619 * r4521616;
        double r4521650 = r4521648 * r4521649;
        double r4521651 = r4521628 * r4521616;
        double r4521652 = r4521650 - r4521651;
        double r4521653 = r4521652 + r4521641;
        double r4521654 = r4521627 * r4521622;
        double r4521655 = r4521654 * r4521636;
        double r4521656 = r4521653 - r4521655;
        double r4521657 = r4521631 * r4521632;
        double r4521658 = r4521657 * r4521633;
        double r4521659 = r4521656 - r4521658;
        double r4521660 = r4521624 * r4521622;
        double r4521661 = r4521660 * r4521621;
        double r4521662 = r4521661 - r4521628;
        double r4521663 = r4521616 * r4521662;
        double r4521664 = r4521633 * r4521631;
        double r4521665 = r4521664 * r4521632;
        double r4521666 = r4521642 + r4521665;
        double r4521667 = r4521663 - r4521666;
        double r4521668 = r4521646 ? r4521659 : r4521667;
        double r4521669 = r4521618 ? r4521644 : r4521668;
        return r4521669;
}

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 < -2.231438472416083e-242

    1. Initial program 4.5

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

      \[\leadsto \color{blue}{\left(y \cdot \left(x \cdot \left(z \cdot 18.0\right)\right) - a \cdot 4.0\right) \cdot t - \left(j \cdot \left(k \cdot 27.0\right) + \left(\left(x \cdot i\right) \cdot 4.0 - b \cdot c\right)\right)}\]
    3. Using strategy rm
    4. Applied associate-*r*4.3

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

    if -2.231438472416083e-242 < t < 4.700365572470833e-22

    1. Initial program 7.8

      \[\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 *-un-lft-identity7.8

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot \color{blue}{\left(1 \cdot z\right)}\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\]
    4. Applied associate-*r*7.8

      \[\leadsto \left(\left(\left(\color{blue}{\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot 1\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\]
    5. Simplified7.8

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

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

    if 4.700365572470833e-22 < t

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

      \[\leadsto \color{blue}{\left(y \cdot \left(x \cdot \left(z \cdot 18.0\right)\right) - a \cdot 4.0\right) \cdot t - \left(j \cdot \left(k \cdot 27.0\right) + \left(\left(x \cdot i\right) \cdot 4.0 - b \cdot c\right)\right)}\]
    3. Using strategy rm
    4. Applied associate-*r*2.1

      \[\leadsto \left(\color{blue}{\left(y \cdot x\right) \cdot \left(z \cdot 18.0\right)} - a \cdot 4.0\right) \cdot t - \left(j \cdot \left(k \cdot 27.0\right) + \left(\left(x \cdot i\right) \cdot 4.0 - b \cdot c\right)\right)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification3.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -2.231438472416083 \cdot 10^{-242}:\\ \;\;\;\;\left(\left(\left(z \cdot 18.0\right) \cdot x\right) \cdot y - a \cdot 4.0\right) \cdot t - \left(27.0 \cdot \left(j \cdot k\right) + \left(\left(x \cdot i\right) \cdot 4.0 - c \cdot b\right)\right)\\ \mathbf{elif}\;t \le 4.700365572470833 \cdot 10^{-22}:\\ \;\;\;\;\left(\left(\left(\left(x \cdot \left(y \cdot 18.0\right)\right) \cdot \left(z \cdot t\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(4.0 \cdot x\right) \cdot i\right) - \left(27.0 \cdot j\right) \cdot k\\ \mathbf{else}:\\ \;\;\;\;t \cdot \left(\left(y \cdot x\right) \cdot \left(z \cdot 18.0\right) - a \cdot 4.0\right) - \left(\left(\left(x \cdot i\right) \cdot 4.0 - c \cdot b\right) + \left(k \cdot 27.0\right) \cdot j\right)\\ \end{array}\]

Reproduce

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