Average Error: 5.9 → 3.9
Time: 27.9s
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 -1.517454008360829355032861276615813967562 \cdot 10^{82}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(18 \cdot \left(x \cdot y\right)\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right)\right) - \left(x \cdot 4\right) \cdot i\right) - \sqrt{27} \cdot \left(\sqrt{\sqrt{27}} \cdot \left(\left(j \cdot k\right) \cdot \sqrt{\sqrt{27}}\right)\right)\\ \mathbf{elif}\;t \le 1.183794520104849373419752326327607101571 \cdot 10^{-108}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(t \cdot z\right) \cdot \left(18 \cdot \left(x \cdot y\right)\right) - \left(a \cdot 4\right) \cdot t\right)\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot k\right) \cdot 27\\ \mathbf{else}:\\ \;\;\;\;t \cdot \left(\left(x \cdot \left(z \cdot 18\right)\right) \cdot y - a \cdot 4\right) - \left(\left(\left(i \cdot x\right) \cdot 4 - b \cdot c\right) + j \cdot \left(k \cdot 27\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 -1.517454008360829355032861276615813967562 \cdot 10^{82}:\\
\;\;\;\;\left(\left(b \cdot c + \left(\left(\left(18 \cdot \left(x \cdot y\right)\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right)\right) - \left(x \cdot 4\right) \cdot i\right) - \sqrt{27} \cdot \left(\sqrt{\sqrt{27}} \cdot \left(\left(j \cdot k\right) \cdot \sqrt{\sqrt{27}}\right)\right)\\

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

\mathbf{else}:\\
\;\;\;\;t \cdot \left(\left(x \cdot \left(z \cdot 18\right)\right) \cdot y - a \cdot 4\right) - \left(\left(\left(i \cdot x\right) \cdot 4 - b \cdot c\right) + j \cdot \left(k \cdot 27\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 r35630578 = x;
        double r35630579 = 18.0;
        double r35630580 = r35630578 * r35630579;
        double r35630581 = y;
        double r35630582 = r35630580 * r35630581;
        double r35630583 = z;
        double r35630584 = r35630582 * r35630583;
        double r35630585 = t;
        double r35630586 = r35630584 * r35630585;
        double r35630587 = a;
        double r35630588 = 4.0;
        double r35630589 = r35630587 * r35630588;
        double r35630590 = r35630589 * r35630585;
        double r35630591 = r35630586 - r35630590;
        double r35630592 = b;
        double r35630593 = c;
        double r35630594 = r35630592 * r35630593;
        double r35630595 = r35630591 + r35630594;
        double r35630596 = r35630578 * r35630588;
        double r35630597 = i;
        double r35630598 = r35630596 * r35630597;
        double r35630599 = r35630595 - r35630598;
        double r35630600 = j;
        double r35630601 = 27.0;
        double r35630602 = r35630600 * r35630601;
        double r35630603 = k;
        double r35630604 = r35630602 * r35630603;
        double r35630605 = r35630599 - r35630604;
        return r35630605;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r35630606 = t;
        double r35630607 = -1.5174540083608294e+82;
        bool r35630608 = r35630606 <= r35630607;
        double r35630609 = b;
        double r35630610 = c;
        double r35630611 = r35630609 * r35630610;
        double r35630612 = 18.0;
        double r35630613 = x;
        double r35630614 = y;
        double r35630615 = r35630613 * r35630614;
        double r35630616 = r35630612 * r35630615;
        double r35630617 = z;
        double r35630618 = r35630616 * r35630617;
        double r35630619 = r35630618 * r35630606;
        double r35630620 = a;
        double r35630621 = 4.0;
        double r35630622 = r35630620 * r35630621;
        double r35630623 = r35630622 * r35630606;
        double r35630624 = r35630619 - r35630623;
        double r35630625 = r35630611 + r35630624;
        double r35630626 = r35630613 * r35630621;
        double r35630627 = i;
        double r35630628 = r35630626 * r35630627;
        double r35630629 = r35630625 - r35630628;
        double r35630630 = 27.0;
        double r35630631 = sqrt(r35630630);
        double r35630632 = sqrt(r35630631);
        double r35630633 = j;
        double r35630634 = k;
        double r35630635 = r35630633 * r35630634;
        double r35630636 = r35630635 * r35630632;
        double r35630637 = r35630632 * r35630636;
        double r35630638 = r35630631 * r35630637;
        double r35630639 = r35630629 - r35630638;
        double r35630640 = 1.1837945201048494e-108;
        bool r35630641 = r35630606 <= r35630640;
        double r35630642 = r35630606 * r35630617;
        double r35630643 = r35630642 * r35630616;
        double r35630644 = r35630643 - r35630623;
        double r35630645 = r35630611 + r35630644;
        double r35630646 = r35630645 - r35630628;
        double r35630647 = r35630635 * r35630630;
        double r35630648 = r35630646 - r35630647;
        double r35630649 = r35630617 * r35630612;
        double r35630650 = r35630613 * r35630649;
        double r35630651 = r35630650 * r35630614;
        double r35630652 = r35630651 - r35630622;
        double r35630653 = r35630606 * r35630652;
        double r35630654 = r35630627 * r35630613;
        double r35630655 = r35630654 * r35630621;
        double r35630656 = r35630655 - r35630611;
        double r35630657 = r35630634 * r35630630;
        double r35630658 = r35630633 * r35630657;
        double r35630659 = r35630656 + r35630658;
        double r35630660 = r35630653 - r35630659;
        double r35630661 = r35630641 ? r35630648 : r35630660;
        double r35630662 = r35630608 ? r35630639 : r35630661;
        return r35630662;
}

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
Herbie3.9
\[\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 < -1.5174540083608294e+82

    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. Taylor expanded around 0 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}{27 \cdot \left(j \cdot k\right)}\]
    3. Taylor expanded around 0 1.4

      \[\leadsto \left(\left(\left(\left(\color{blue}{\left(18 \cdot \left(x \cdot y\right)\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) - 27 \cdot \left(j \cdot k\right)\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt1.4

      \[\leadsto \left(\left(\left(\left(\left(18 \cdot \left(x \cdot y\right)\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(\sqrt{27} \cdot \sqrt{27}\right)} \cdot \left(j \cdot k\right)\]
    6. Applied associate-*l*1.5

      \[\leadsto \left(\left(\left(\left(\left(18 \cdot \left(x \cdot y\right)\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}{\sqrt{27} \cdot \left(\sqrt{27} \cdot \left(j \cdot k\right)\right)}\]
    7. Using strategy rm
    8. Applied add-sqr-sqrt1.5

      \[\leadsto \left(\left(\left(\left(\left(18 \cdot \left(x \cdot y\right)\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{\color{blue}{\sqrt{27} \cdot \sqrt{27}}} \cdot \left(j \cdot k\right)\right)\]
    9. Applied sqrt-prod1.5

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

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

    if -1.5174540083608294e+82 < t < 1.1837945201048494e-108

    1. Initial program 8.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. Taylor expanded around 0 8.0

      \[\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}{27 \cdot \left(j \cdot k\right)}\]
    3. Taylor expanded around 0 7.9

      \[\leadsto \left(\left(\left(\left(\color{blue}{\left(18 \cdot \left(x \cdot y\right)\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) - 27 \cdot \left(j \cdot k\right)\]
    4. Using strategy rm
    5. Applied associate-*l*4.7

      \[\leadsto \left(\left(\left(\color{blue}{\left(18 \cdot \left(x \cdot y\right)\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(j \cdot k\right)\]

    if 1.1837945201048494e-108 < t

    1. Initial program 3.3

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1.517454008360829355032861276615813967562 \cdot 10^{82}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(18 \cdot \left(x \cdot y\right)\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right)\right) - \left(x \cdot 4\right) \cdot i\right) - \sqrt{27} \cdot \left(\sqrt{\sqrt{27}} \cdot \left(\left(j \cdot k\right) \cdot \sqrt{\sqrt{27}}\right)\right)\\ \mathbf{elif}\;t \le 1.183794520104849373419752326327607101571 \cdot 10^{-108}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(t \cdot z\right) \cdot \left(18 \cdot \left(x \cdot y\right)\right) - \left(a \cdot 4\right) \cdot t\right)\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot k\right) \cdot 27\\ \mathbf{else}:\\ \;\;\;\;t \cdot \left(\left(x \cdot \left(z \cdot 18\right)\right) \cdot y - a \cdot 4\right) - \left(\left(\left(i \cdot x\right) \cdot 4 - b \cdot c\right) + j \cdot \left(k \cdot 27\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)))