Average Error: 5.9 → 4.1
Time: 26.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}\;z \le -2.339994438330015674673474874476476077102 \cdot 10^{138}:\\ \;\;\;\;\left(\left(t \cdot \left(\left(\left(x \cdot y\right) \cdot 18\right) \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \sqrt{27} \cdot \left(\sqrt{27} \cdot \left(j \cdot k\right)\right)\\ \mathbf{elif}\;z \le 2.041304797355415594397236028962282394842 \cdot 10^{-44}:\\ \;\;\;\;\left(\left(\left(18 \cdot \left(t \cdot \left(x \cdot \left(z \cdot y\right)\right)\right) - 4 \cdot \left(a \cdot t\right)\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - 27 \cdot \left(j \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(t \cdot \left(\left(\left(x \cdot y\right) \cdot 18\right) \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \sqrt{27} \cdot \left(\sqrt{27} \cdot \left(j \cdot k\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}\;z \le -2.339994438330015674673474874476476077102 \cdot 10^{138}:\\
\;\;\;\;\left(\left(t \cdot \left(\left(\left(x \cdot y\right) \cdot 18\right) \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \sqrt{27} \cdot \left(\sqrt{27} \cdot \left(j \cdot k\right)\right)\\

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

\mathbf{else}:\\
\;\;\;\;\left(\left(t \cdot \left(\left(\left(x \cdot y\right) \cdot 18\right) \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \sqrt{27} \cdot \left(\sqrt{27} \cdot \left(j \cdot k\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 r50952411 = x;
        double r50952412 = 18.0;
        double r50952413 = r50952411 * r50952412;
        double r50952414 = y;
        double r50952415 = r50952413 * r50952414;
        double r50952416 = z;
        double r50952417 = r50952415 * r50952416;
        double r50952418 = t;
        double r50952419 = r50952417 * r50952418;
        double r50952420 = a;
        double r50952421 = 4.0;
        double r50952422 = r50952420 * r50952421;
        double r50952423 = r50952422 * r50952418;
        double r50952424 = r50952419 - r50952423;
        double r50952425 = b;
        double r50952426 = c;
        double r50952427 = r50952425 * r50952426;
        double r50952428 = r50952424 + r50952427;
        double r50952429 = r50952411 * r50952421;
        double r50952430 = i;
        double r50952431 = r50952429 * r50952430;
        double r50952432 = r50952428 - r50952431;
        double r50952433 = j;
        double r50952434 = 27.0;
        double r50952435 = r50952433 * r50952434;
        double r50952436 = k;
        double r50952437 = r50952435 * r50952436;
        double r50952438 = r50952432 - r50952437;
        return r50952438;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r50952439 = z;
        double r50952440 = -2.3399944383300157e+138;
        bool r50952441 = r50952439 <= r50952440;
        double r50952442 = t;
        double r50952443 = x;
        double r50952444 = y;
        double r50952445 = r50952443 * r50952444;
        double r50952446 = 18.0;
        double r50952447 = r50952445 * r50952446;
        double r50952448 = r50952447 * r50952439;
        double r50952449 = a;
        double r50952450 = 4.0;
        double r50952451 = r50952449 * r50952450;
        double r50952452 = r50952448 - r50952451;
        double r50952453 = r50952442 * r50952452;
        double r50952454 = b;
        double r50952455 = c;
        double r50952456 = r50952454 * r50952455;
        double r50952457 = r50952453 + r50952456;
        double r50952458 = r50952443 * r50952450;
        double r50952459 = i;
        double r50952460 = r50952458 * r50952459;
        double r50952461 = r50952457 - r50952460;
        double r50952462 = 27.0;
        double r50952463 = sqrt(r50952462);
        double r50952464 = j;
        double r50952465 = k;
        double r50952466 = r50952464 * r50952465;
        double r50952467 = r50952463 * r50952466;
        double r50952468 = r50952463 * r50952467;
        double r50952469 = r50952461 - r50952468;
        double r50952470 = 2.0413047973554156e-44;
        bool r50952471 = r50952439 <= r50952470;
        double r50952472 = r50952439 * r50952444;
        double r50952473 = r50952443 * r50952472;
        double r50952474 = r50952442 * r50952473;
        double r50952475 = r50952446 * r50952474;
        double r50952476 = r50952449 * r50952442;
        double r50952477 = r50952450 * r50952476;
        double r50952478 = r50952475 - r50952477;
        double r50952479 = r50952478 + r50952456;
        double r50952480 = r50952479 - r50952460;
        double r50952481 = r50952462 * r50952466;
        double r50952482 = r50952480 - r50952481;
        double r50952483 = r50952471 ? r50952482 : r50952469;
        double r50952484 = r50952441 ? r50952469 : r50952483;
        return r50952484;
}

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

Target

Original5.9
Target1.6
Herbie4.1
\[\begin{array}{l} \mathbf{if}\;t \lt -1.62108153975413982700795070153457058168 \cdot 10^{-69}:\\ \;\;\;\;\left(\left(18 \cdot t\right) \cdot \left(\left(x \cdot y\right) \cdot z\right) - \left(a \cdot t + i \cdot x\right) \cdot 4\right) - \left(\left(k \cdot j\right) \cdot 27 - c \cdot b\right)\\ \mathbf{elif}\;t \lt 165.6802794380522243500308832153677940369:\\ \;\;\;\;\left(\left(18 \cdot y\right) \cdot \left(x \cdot \left(z \cdot t\right)\right) - \left(a \cdot t + i \cdot x\right) \cdot 4\right) + \left(c \cdot b - 27 \cdot \left(k \cdot j\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(18 \cdot t\right) \cdot \left(\left(x \cdot y\right) \cdot z\right) - \left(a \cdot t + i \cdot x\right) \cdot 4\right) - \left(\left(k \cdot j\right) \cdot 27 - c \cdot b\right)\\ \end{array}\]

Derivation

  1. Split input into 2 regimes
  2. if z < -2.3399944383300157e+138 or 2.0413047973554156e-44 < z

    1. Initial program 7.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. Simplified7.6

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

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

      \[\leadsto \left(\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot \color{blue}{\left(1 \cdot z\right)} - a \cdot 4\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - 27 \cdot \left(j \cdot k\right)\]
    6. Applied associate-*r*7.5

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

      \[\leadsto \left(\left(t \cdot \left(\color{blue}{\left(\left(x \cdot y\right) \cdot 18\right)} \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - 27 \cdot \left(j \cdot k\right)\]
    8. Using strategy rm
    9. Applied add-sqr-sqrt7.5

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

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

    if -2.3399944383300157e+138 < z < 2.0413047973554156e-44

    1. Initial program 4.9

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

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

      \[\leadsto \left(\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \color{blue}{27 \cdot \left(j \cdot k\right)}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity4.8

      \[\leadsto \left(\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot \color{blue}{\left(1 \cdot z\right)} - a \cdot 4\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - 27 \cdot \left(j \cdot k\right)\]
    6. Applied associate-*r*4.8

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -2.339994438330015674673474874476476077102 \cdot 10^{138}:\\ \;\;\;\;\left(\left(t \cdot \left(\left(\left(x \cdot y\right) \cdot 18\right) \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \sqrt{27} \cdot \left(\sqrt{27} \cdot \left(j \cdot k\right)\right)\\ \mathbf{elif}\;z \le 2.041304797355415594397236028962282394842 \cdot 10^{-44}:\\ \;\;\;\;\left(\left(\left(18 \cdot \left(t \cdot \left(x \cdot \left(z \cdot y\right)\right)\right) - 4 \cdot \left(a \cdot t\right)\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - 27 \cdot \left(j \cdot k\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(t \cdot \left(\left(\left(x \cdot y\right) \cdot 18\right) \cdot z - a \cdot 4\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \sqrt{27} \cdot \left(\sqrt{27} \cdot \left(j \cdot k\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019174 
(FPCore (x y z t a b c i j k)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, E"

  :herbie-target
  (if (< t -1.6210815397541398e-69) (- (- (* (* 18.0 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4.0)) (- (* (* k j) 27.0) (* c b))) (if (< t 165.68027943805222) (+ (- (* (* 18.0 y) (* x (* z t))) (* (+ (* a t) (* i x)) 4.0)) (- (* c b) (* 27.0 (* k j)))) (- (- (* (* 18.0 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4.0)) (- (* (* k j) 27.0) (* c b)))))

  (- (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) (* (* j 27.0) k)))