Average Error: 5.8 → 4.7
Time: 7.5s
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\]
\[\begin{array}{l} \mathbf{if}\;t \le -6.7829313514797449 \cdot 10^{-133} \lor \neg \left(t \le 4.444074167892446 \cdot 10^{-95}\right):\\ \;\;\;\;t \cdot \left(\left(x \cdot \left(18 \cdot y\right)\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t \cdot \left(0 - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\ \end{array}\]
\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
\begin{array}{l}
\mathbf{if}\;t \le -6.7829313514797449 \cdot 10^{-133} \lor \neg \left(t \le 4.444074167892446 \cdot 10^{-95}\right):\\
\;\;\;\;t \cdot \left(\left(x \cdot \left(18 \cdot y\right)\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)\\

\mathbf{else}:\\
\;\;\;\;t \cdot \left(0 - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\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 r148712 = x;
        double r148713 = 18.0;
        double r148714 = r148712 * r148713;
        double r148715 = y;
        double r148716 = r148714 * r148715;
        double r148717 = z;
        double r148718 = r148716 * r148717;
        double r148719 = t;
        double r148720 = r148718 * r148719;
        double r148721 = a;
        double r148722 = 4.0;
        double r148723 = r148721 * r148722;
        double r148724 = r148723 * r148719;
        double r148725 = r148720 - r148724;
        double r148726 = b;
        double r148727 = c;
        double r148728 = r148726 * r148727;
        double r148729 = r148725 + r148728;
        double r148730 = r148712 * r148722;
        double r148731 = i;
        double r148732 = r148730 * r148731;
        double r148733 = r148729 - r148732;
        double r148734 = j;
        double r148735 = 27.0;
        double r148736 = r148734 * r148735;
        double r148737 = k;
        double r148738 = r148736 * r148737;
        double r148739 = r148733 - r148738;
        return r148739;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r148740 = t;
        double r148741 = -6.782931351479745e-133;
        bool r148742 = r148740 <= r148741;
        double r148743 = 4.4440741678924465e-95;
        bool r148744 = r148740 <= r148743;
        double r148745 = !r148744;
        bool r148746 = r148742 || r148745;
        double r148747 = x;
        double r148748 = 18.0;
        double r148749 = y;
        double r148750 = r148748 * r148749;
        double r148751 = r148747 * r148750;
        double r148752 = z;
        double r148753 = r148751 * r148752;
        double r148754 = a;
        double r148755 = 4.0;
        double r148756 = r148754 * r148755;
        double r148757 = r148753 - r148756;
        double r148758 = r148740 * r148757;
        double r148759 = b;
        double r148760 = c;
        double r148761 = r148759 * r148760;
        double r148762 = r148747 * r148755;
        double r148763 = i;
        double r148764 = r148762 * r148763;
        double r148765 = j;
        double r148766 = 27.0;
        double r148767 = r148765 * r148766;
        double r148768 = k;
        double r148769 = r148767 * r148768;
        double r148770 = r148764 + r148769;
        double r148771 = r148761 - r148770;
        double r148772 = r148758 + r148771;
        double r148773 = 0.0;
        double r148774 = r148773 - r148756;
        double r148775 = r148740 * r148774;
        double r148776 = r148766 * r148768;
        double r148777 = r148765 * r148776;
        double r148778 = r148764 + r148777;
        double r148779 = r148761 - r148778;
        double r148780 = r148775 + r148779;
        double r148781 = r148746 ? r148772 : r148780;
        return r148781;
}

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 t < -6.782931351479745e-133 or 4.4440741678924465e-95 < t

    1. Initial program 3.5

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

      \[\leadsto \color{blue}{t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)}\]
    3. Using strategy rm
    4. Applied associate-*l*3.5

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

    if -6.782931351479745e-133 < t < 4.4440741678924465e-95

    1. Initial program 9.0

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

      \[\leadsto \color{blue}{t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)}\]
    3. Using strategy rm
    4. Applied associate-*l*9.1

      \[\leadsto t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \color{blue}{j \cdot \left(27 \cdot k\right)}\right)\right)\]
    5. Taylor expanded around 0 6.5

      \[\leadsto t \cdot \left(\color{blue}{0} - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification4.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -6.7829313514797449 \cdot 10^{-133} \lor \neg \left(t \le 4.444074167892446 \cdot 10^{-95}\right):\\ \;\;\;\;t \cdot \left(\left(x \cdot \left(18 \cdot y\right)\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t \cdot \left(0 - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\ \end{array}\]

Reproduce

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