Average Error: 5.7 → 4.1
Time: 16.4s
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}\;z \le -5.502401519030054 \cdot 10^{-23}:\\ \;\;\;\;\mathsf{fma}\left(t, \left(x \cdot \left(18 \cdot y\right)\right) \cdot z - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, j \cdot \left(27 \cdot k\right)\right)\right)\\ \mathbf{elif}\;z \le 1.59245233661014477 \cdot 10^{46}:\\ \;\;\;\;\mathsf{fma}\left(t, {\left(18 \cdot \left(x \cdot \left(z \cdot y\right)\right)\right)}^{1} - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, \left(j \cdot 27\right) \cdot k\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\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\\ \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}\;z \le -5.502401519030054 \cdot 10^{-23}:\\
\;\;\;\;\mathsf{fma}\left(t, \left(x \cdot \left(18 \cdot y\right)\right) \cdot z - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, j \cdot \left(27 \cdot k\right)\right)\right)\\

\mathbf{elif}\;z \le 1.59245233661014477 \cdot 10^{46}:\\
\;\;\;\;\mathsf{fma}\left(t, {\left(18 \cdot \left(x \cdot \left(z \cdot y\right)\right)\right)}^{1} - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, \left(j \cdot 27\right) \cdot k\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\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\\

\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 r102246 = x;
        double r102247 = 18.0;
        double r102248 = r102246 * r102247;
        double r102249 = y;
        double r102250 = r102248 * r102249;
        double r102251 = z;
        double r102252 = r102250 * r102251;
        double r102253 = t;
        double r102254 = r102252 * r102253;
        double r102255 = a;
        double r102256 = 4.0;
        double r102257 = r102255 * r102256;
        double r102258 = r102257 * r102253;
        double r102259 = r102254 - r102258;
        double r102260 = b;
        double r102261 = c;
        double r102262 = r102260 * r102261;
        double r102263 = r102259 + r102262;
        double r102264 = r102246 * r102256;
        double r102265 = i;
        double r102266 = r102264 * r102265;
        double r102267 = r102263 - r102266;
        double r102268 = j;
        double r102269 = 27.0;
        double r102270 = r102268 * r102269;
        double r102271 = k;
        double r102272 = r102270 * r102271;
        double r102273 = r102267 - r102272;
        return r102273;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r102274 = z;
        double r102275 = -5.502401519030054e-23;
        bool r102276 = r102274 <= r102275;
        double r102277 = t;
        double r102278 = x;
        double r102279 = 18.0;
        double r102280 = y;
        double r102281 = r102279 * r102280;
        double r102282 = r102278 * r102281;
        double r102283 = r102282 * r102274;
        double r102284 = a;
        double r102285 = 4.0;
        double r102286 = r102284 * r102285;
        double r102287 = r102283 - r102286;
        double r102288 = b;
        double r102289 = c;
        double r102290 = r102288 * r102289;
        double r102291 = i;
        double r102292 = r102285 * r102291;
        double r102293 = j;
        double r102294 = 27.0;
        double r102295 = k;
        double r102296 = r102294 * r102295;
        double r102297 = r102293 * r102296;
        double r102298 = fma(r102278, r102292, r102297);
        double r102299 = r102290 - r102298;
        double r102300 = fma(r102277, r102287, r102299);
        double r102301 = 1.5924523366101448e+46;
        bool r102302 = r102274 <= r102301;
        double r102303 = r102274 * r102280;
        double r102304 = r102278 * r102303;
        double r102305 = r102279 * r102304;
        double r102306 = 1.0;
        double r102307 = pow(r102305, r102306);
        double r102308 = r102307 - r102286;
        double r102309 = r102293 * r102294;
        double r102310 = r102309 * r102295;
        double r102311 = fma(r102278, r102292, r102310);
        double r102312 = r102290 - r102311;
        double r102313 = fma(r102277, r102308, r102312);
        double r102314 = r102278 * r102279;
        double r102315 = r102314 * r102280;
        double r102316 = r102274 * r102277;
        double r102317 = r102315 * r102316;
        double r102318 = r102286 * r102277;
        double r102319 = r102317 - r102318;
        double r102320 = r102319 + r102290;
        double r102321 = r102278 * r102285;
        double r102322 = r102321 * r102291;
        double r102323 = r102320 - r102322;
        double r102324 = r102323 - r102310;
        double r102325 = r102302 ? r102313 : r102324;
        double r102326 = r102276 ? r102300 : r102325;
        return r102326;
}

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 3 regimes
  2. if z < -5.502401519030054e-23

    1. Initial program 6.6

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

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

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

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

    if -5.502401519030054e-23 < z < 1.5924523366101448e+46

    1. Initial program 4.7

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

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

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

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

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

      \[\leadsto \mathsf{fma}\left(t, \left(\left(\color{blue}{{x}^{1}} \cdot {18}^{1}\right) \cdot {y}^{1}\right) \cdot {z}^{1} - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, \left(j \cdot 27\right) \cdot k\right)\right)\]
    8. Applied pow-prod-down4.8

      \[\leadsto \mathsf{fma}\left(t, \left(\color{blue}{{\left(x \cdot 18\right)}^{1}} \cdot {y}^{1}\right) \cdot {z}^{1} - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, \left(j \cdot 27\right) \cdot k\right)\right)\]
    9. Applied pow-prod-down4.8

      \[\leadsto \mathsf{fma}\left(t, \color{blue}{{\left(\left(x \cdot 18\right) \cdot y\right)}^{1}} \cdot {z}^{1} - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, \left(j \cdot 27\right) \cdot k\right)\right)\]
    10. Applied pow-prod-down4.8

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

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

    if 1.5924523366101448e+46 < z

    1. Initial program 7.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*9.7

      \[\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\]
  3. Recombined 3 regimes into one program.
  4. Final simplification4.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -5.502401519030054 \cdot 10^{-23}:\\ \;\;\;\;\mathsf{fma}\left(t, \left(x \cdot \left(18 \cdot y\right)\right) \cdot z - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, j \cdot \left(27 \cdot k\right)\right)\right)\\ \mathbf{elif}\;z \le 1.59245233661014477 \cdot 10^{46}:\\ \;\;\;\;\mathsf{fma}\left(t, {\left(18 \cdot \left(x \cdot \left(z \cdot y\right)\right)\right)}^{1} - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, \left(j \cdot 27\right) \cdot k\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\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\\ \end{array}\]

Reproduce

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