Average Error: 5.6 → 3.6
Time: 30.6s
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 -7.467666342330362837578212211978847188411 \cdot 10^{56}:\\ \;\;\;\;\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) - \sqrt{27} \cdot \left(\sqrt{27} \cdot \left(k \cdot j\right)\right)\\ \mathbf{elif}\;t \le 1.03627926093686525716420392912551359763 \cdot 10^{45}:\\ \;\;\;\;\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) - 27 \cdot \left(k \cdot j\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(18 \cdot \left(t \cdot \left(x \cdot \left(z \cdot y\right)\right)\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}\;t \le -7.467666342330362837578212211978847188411 \cdot 10^{56}:\\
\;\;\;\;\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) - \sqrt{27} \cdot \left(\sqrt{27} \cdot \left(k \cdot j\right)\right)\\

\mathbf{elif}\;t \le 1.03627926093686525716420392912551359763 \cdot 10^{45}:\\
\;\;\;\;\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) - 27 \cdot \left(k \cdot j\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(18 \cdot \left(t \cdot \left(x \cdot \left(z \cdot y\right)\right)\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 r586461 = x;
        double r586462 = 18.0;
        double r586463 = r586461 * r586462;
        double r586464 = y;
        double r586465 = r586463 * r586464;
        double r586466 = z;
        double r586467 = r586465 * r586466;
        double r586468 = t;
        double r586469 = r586467 * r586468;
        double r586470 = a;
        double r586471 = 4.0;
        double r586472 = r586470 * r586471;
        double r586473 = r586472 * r586468;
        double r586474 = r586469 - r586473;
        double r586475 = b;
        double r586476 = c;
        double r586477 = r586475 * r586476;
        double r586478 = r586474 + r586477;
        double r586479 = r586461 * r586471;
        double r586480 = i;
        double r586481 = r586479 * r586480;
        double r586482 = r586478 - r586481;
        double r586483 = j;
        double r586484 = 27.0;
        double r586485 = r586483 * r586484;
        double r586486 = k;
        double r586487 = r586485 * r586486;
        double r586488 = r586482 - r586487;
        return r586488;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r586489 = t;
        double r586490 = -7.467666342330363e+56;
        bool r586491 = r586489 <= r586490;
        double r586492 = x;
        double r586493 = 18.0;
        double r586494 = r586492 * r586493;
        double r586495 = y;
        double r586496 = r586494 * r586495;
        double r586497 = z;
        double r586498 = r586496 * r586497;
        double r586499 = r586498 * r586489;
        double r586500 = a;
        double r586501 = 4.0;
        double r586502 = r586500 * r586501;
        double r586503 = r586502 * r586489;
        double r586504 = r586499 - r586503;
        double r586505 = b;
        double r586506 = c;
        double r586507 = r586505 * r586506;
        double r586508 = r586504 + r586507;
        double r586509 = r586492 * r586501;
        double r586510 = i;
        double r586511 = r586509 * r586510;
        double r586512 = r586508 - r586511;
        double r586513 = 27.0;
        double r586514 = sqrt(r586513);
        double r586515 = k;
        double r586516 = j;
        double r586517 = r586515 * r586516;
        double r586518 = r586514 * r586517;
        double r586519 = r586514 * r586518;
        double r586520 = r586512 - r586519;
        double r586521 = 1.0362792609368653e+45;
        bool r586522 = r586489 <= r586521;
        double r586523 = r586497 * r586489;
        double r586524 = r586496 * r586523;
        double r586525 = r586524 - r586503;
        double r586526 = r586525 + r586507;
        double r586527 = r586526 - r586511;
        double r586528 = r586513 * r586517;
        double r586529 = r586527 - r586528;
        double r586530 = r586497 * r586495;
        double r586531 = r586492 * r586530;
        double r586532 = r586489 * r586531;
        double r586533 = r586493 * r586532;
        double r586534 = r586533 - r586503;
        double r586535 = r586534 + r586507;
        double r586536 = r586535 - r586511;
        double r586537 = r586516 * r586513;
        double r586538 = r586537 * r586515;
        double r586539 = r586536 - r586538;
        double r586540 = r586522 ? r586529 : r586539;
        double r586541 = r586491 ? r586520 : r586540;
        return r586541;
}

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.6
Target1.5
Herbie3.6
\[\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 3 regimes
  2. if t < -7.467666342330363e+56

    1. Initial program 1.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. Using strategy rm
    3. Applied associate-*l*1.4

      \[\leadsto \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) - \color{blue}{j \cdot \left(27 \cdot k\right)}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity1.4

      \[\leadsto \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) - \color{blue}{\left(1 \cdot j\right)} \cdot \left(27 \cdot k\right)\]
    6. Applied associate-*l*1.4

      \[\leadsto \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) - \color{blue}{1 \cdot \left(j \cdot \left(27 \cdot k\right)\right)}\]
    7. Simplified1.3

      \[\leadsto \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) - 1 \cdot \color{blue}{\left(27 \cdot \left(k \cdot j\right)\right)}\]
    8. Using strategy rm
    9. Applied add-sqr-sqrt1.3

      \[\leadsto \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) - 1 \cdot \left(\color{blue}{\left(\sqrt{27} \cdot \sqrt{27}\right)} \cdot \left(k \cdot j\right)\right)\]
    10. Applied associate-*l*1.3

      \[\leadsto \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) - 1 \cdot \color{blue}{\left(\sqrt{27} \cdot \left(\sqrt{27} \cdot \left(k \cdot j\right)\right)\right)}\]

    if -7.467666342330363e+56 < t < 1.0362792609368653e+45

    1. Initial program 7.2

      \[\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*7.2

      \[\leadsto \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) - \color{blue}{j \cdot \left(27 \cdot k\right)}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity7.2

      \[\leadsto \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) - \color{blue}{\left(1 \cdot j\right)} \cdot \left(27 \cdot k\right)\]
    6. Applied associate-*l*7.2

      \[\leadsto \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) - \color{blue}{1 \cdot \left(j \cdot \left(27 \cdot k\right)\right)}\]
    7. Simplified7.1

      \[\leadsto \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) - 1 \cdot \color{blue}{\left(27 \cdot \left(k \cdot j\right)\right)}\]
    8. Using strategy rm
    9. Applied associate-*l*4.3

      \[\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) - 1 \cdot \left(27 \cdot \left(k \cdot j\right)\right)\]

    if 1.0362792609368653e+45 < t

    1. Initial program 1.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. Taylor expanded around inf 1.9

      \[\leadsto \left(\left(\left(\color{blue}{18 \cdot \left(t \cdot \left(x \cdot \left(z \cdot y\right)\right)\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 simplification3.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -7.467666342330362837578212211978847188411 \cdot 10^{56}:\\ \;\;\;\;\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) - \sqrt{27} \cdot \left(\sqrt{27} \cdot \left(k \cdot j\right)\right)\\ \mathbf{elif}\;t \le 1.03627926093686525716420392912551359763 \cdot 10^{45}:\\ \;\;\;\;\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) - 27 \cdot \left(k \cdot j\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(18 \cdot \left(t \cdot \left(x \cdot \left(z \cdot y\right)\right)\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 2019303 
(FPCore (x y z t a b c i j k)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, E"
  :precision binary64

  :herbie-target
  (if (< t -1.6210815397541398e-69) (- (- (* (* 18 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4)) (- (* (* k j) 27) (* c b))) (if (< t 165.680279438052224) (+ (- (* (* 18 y) (* x (* z t))) (* (+ (* a t) (* i x)) 4)) (- (* c b) (* 27 (* k j)))) (- (- (* (* 18 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4)) (- (* (* k j) 27) (* c b)))))

  (- (- (+ (- (* (* (* (* x 18) y) z) t) (* (* a 4) t)) (* b c)) (* (* x 4) i)) (* (* j 27) k)))