Average Error: 5.6 → 1.4
Time: 27.3s
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}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4\right) \cdot i \le -6.642944391539530496197547352303770744813 \cdot 10^{305}:\\ \;\;\;\;\mathsf{fma}\left(b, c, \left(y \cdot \left(\left(t \cdot x\right) \cdot z\right)\right) \cdot 18 - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), 27 \cdot \left(k \cdot j\right)\right)\right)\\ \mathbf{elif}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4\right) \cdot i \le 1.953937894704433840283649332874256587502 \cdot 10^{253}:\\ \;\;\;\;\left(\left(\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(b, c, \left(y \cdot \left(\left(t \cdot x\right) \cdot z\right)\right) \cdot 18 - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), 27 \cdot \left(k \cdot j\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}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4\right) \cdot i \le -6.642944391539530496197547352303770744813 \cdot 10^{305}:\\
\;\;\;\;\mathsf{fma}\left(b, c, \left(y \cdot \left(\left(t \cdot x\right) \cdot z\right)\right) \cdot 18 - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), 27 \cdot \left(k \cdot j\right)\right)\right)\\

\mathbf{elif}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4\right) \cdot i \le 1.953937894704433840283649332874256587502 \cdot 10^{253}:\\
\;\;\;\;\left(\left(\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(b, c, \left(y \cdot \left(\left(t \cdot x\right) \cdot z\right)\right) \cdot 18 - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), 27 \cdot \left(k \cdot j\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 r5113671 = x;
        double r5113672 = 18.0;
        double r5113673 = r5113671 * r5113672;
        double r5113674 = y;
        double r5113675 = r5113673 * r5113674;
        double r5113676 = z;
        double r5113677 = r5113675 * r5113676;
        double r5113678 = t;
        double r5113679 = r5113677 * r5113678;
        double r5113680 = a;
        double r5113681 = 4.0;
        double r5113682 = r5113680 * r5113681;
        double r5113683 = r5113682 * r5113678;
        double r5113684 = r5113679 - r5113683;
        double r5113685 = b;
        double r5113686 = c;
        double r5113687 = r5113685 * r5113686;
        double r5113688 = r5113684 + r5113687;
        double r5113689 = r5113671 * r5113681;
        double r5113690 = i;
        double r5113691 = r5113689 * r5113690;
        double r5113692 = r5113688 - r5113691;
        double r5113693 = j;
        double r5113694 = 27.0;
        double r5113695 = r5113693 * r5113694;
        double r5113696 = k;
        double r5113697 = r5113695 * r5113696;
        double r5113698 = r5113692 - r5113697;
        return r5113698;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r5113699 = t;
        double r5113700 = x;
        double r5113701 = 18.0;
        double r5113702 = r5113700 * r5113701;
        double r5113703 = y;
        double r5113704 = r5113702 * r5113703;
        double r5113705 = z;
        double r5113706 = r5113704 * r5113705;
        double r5113707 = r5113699 * r5113706;
        double r5113708 = a;
        double r5113709 = 4.0;
        double r5113710 = r5113708 * r5113709;
        double r5113711 = r5113710 * r5113699;
        double r5113712 = r5113707 - r5113711;
        double r5113713 = c;
        double r5113714 = b;
        double r5113715 = r5113713 * r5113714;
        double r5113716 = r5113712 + r5113715;
        double r5113717 = r5113700 * r5113709;
        double r5113718 = i;
        double r5113719 = r5113717 * r5113718;
        double r5113720 = r5113716 - r5113719;
        double r5113721 = -6.6429443915395305e+305;
        bool r5113722 = r5113720 <= r5113721;
        double r5113723 = r5113699 * r5113700;
        double r5113724 = r5113723 * r5113705;
        double r5113725 = r5113703 * r5113724;
        double r5113726 = r5113725 * r5113701;
        double r5113727 = r5113700 * r5113718;
        double r5113728 = fma(r5113699, r5113708, r5113727);
        double r5113729 = 27.0;
        double r5113730 = k;
        double r5113731 = j;
        double r5113732 = r5113730 * r5113731;
        double r5113733 = r5113729 * r5113732;
        double r5113734 = fma(r5113709, r5113728, r5113733);
        double r5113735 = r5113726 - r5113734;
        double r5113736 = fma(r5113714, r5113713, r5113735);
        double r5113737 = 1.953937894704434e+253;
        bool r5113738 = r5113720 <= r5113737;
        double r5113739 = r5113731 * r5113729;
        double r5113740 = r5113739 * r5113730;
        double r5113741 = r5113720 - r5113740;
        double r5113742 = r5113738 ? r5113741 : r5113736;
        double r5113743 = r5113722 ? r5113736 : r5113742;
        return r5113743;
}

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. Split input into 2 regimes
  2. if (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < -6.6429443915395305e+305 or 1.953937894704434e+253 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i))

    1. Initial program 32.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. Simplified9.4

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

      \[\leadsto \mathsf{fma}\left(b, c, \color{blue}{\left(z \cdot \left(t \cdot x\right)\right) \cdot \left(y \cdot 18\right)} - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), 27 \cdot \left(k \cdot j\right)\right)\right)\]
    5. Using strategy rm
    6. Applied associate-*r*7.0

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

    if -6.6429443915395305e+305 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < 1.953937894704434e+253

    1. Initial program 0.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\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4\right) \cdot i \le -6.642944391539530496197547352303770744813 \cdot 10^{305}:\\ \;\;\;\;\mathsf{fma}\left(b, c, \left(y \cdot \left(\left(t \cdot x\right) \cdot z\right)\right) \cdot 18 - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), 27 \cdot \left(k \cdot j\right)\right)\right)\\ \mathbf{elif}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4\right) \cdot i \le 1.953937894704433840283649332874256587502 \cdot 10^{253}:\\ \;\;\;\;\left(\left(\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(b, c, \left(y \cdot \left(\left(t \cdot x\right) \cdot z\right)\right) \cdot 18 - \mathsf{fma}\left(4, \mathsf{fma}\left(t, a, x \cdot i\right), 27 \cdot \left(k \cdot j\right)\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019169 +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)))