Average Error: 3.5 → 1.0
Time: 18.0s
Precision: 64
\[\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b\]
\[\begin{array}{l} \mathbf{if}\;t \le -2.650881364761815326323235275736487933061 \cdot 10^{68} \lor \neg \left(t \le 1.640842751353321240815152205887361130947 \cdot 10^{-149}\right):\\ \;\;\;\;\left(x \cdot 2 - 9 \cdot \left(t \cdot \left(z \cdot y\right)\right)\right) + 27 \cdot \left(a \cdot b\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot 2 - \left(y \cdot 9\right) \cdot \left(z \cdot t\right)\right) + \left(a \cdot 27\right) \cdot b\\ \end{array}\]
\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b
\begin{array}{l}
\mathbf{if}\;t \le -2.650881364761815326323235275736487933061 \cdot 10^{68} \lor \neg \left(t \le 1.640842751353321240815152205887361130947 \cdot 10^{-149}\right):\\
\;\;\;\;\left(x \cdot 2 - 9 \cdot \left(t \cdot \left(z \cdot y\right)\right)\right) + 27 \cdot \left(a \cdot b\right)\\

\mathbf{else}:\\
\;\;\;\;\left(x \cdot 2 - \left(y \cdot 9\right) \cdot \left(z \cdot t\right)\right) + \left(a \cdot 27\right) \cdot b\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r563178 = x;
        double r563179 = 2.0;
        double r563180 = r563178 * r563179;
        double r563181 = y;
        double r563182 = 9.0;
        double r563183 = r563181 * r563182;
        double r563184 = z;
        double r563185 = r563183 * r563184;
        double r563186 = t;
        double r563187 = r563185 * r563186;
        double r563188 = r563180 - r563187;
        double r563189 = a;
        double r563190 = 27.0;
        double r563191 = r563189 * r563190;
        double r563192 = b;
        double r563193 = r563191 * r563192;
        double r563194 = r563188 + r563193;
        return r563194;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r563195 = t;
        double r563196 = -2.6508813647618153e+68;
        bool r563197 = r563195 <= r563196;
        double r563198 = 1.6408427513533212e-149;
        bool r563199 = r563195 <= r563198;
        double r563200 = !r563199;
        bool r563201 = r563197 || r563200;
        double r563202 = x;
        double r563203 = 2.0;
        double r563204 = r563202 * r563203;
        double r563205 = 9.0;
        double r563206 = z;
        double r563207 = y;
        double r563208 = r563206 * r563207;
        double r563209 = r563195 * r563208;
        double r563210 = r563205 * r563209;
        double r563211 = r563204 - r563210;
        double r563212 = 27.0;
        double r563213 = a;
        double r563214 = b;
        double r563215 = r563213 * r563214;
        double r563216 = r563212 * r563215;
        double r563217 = r563211 + r563216;
        double r563218 = r563207 * r563205;
        double r563219 = r563206 * r563195;
        double r563220 = r563218 * r563219;
        double r563221 = r563204 - r563220;
        double r563222 = r563213 * r563212;
        double r563223 = r563222 * r563214;
        double r563224 = r563221 + r563223;
        double r563225 = r563201 ? r563217 : r563224;
        return r563225;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original3.5
Target2.6
Herbie1.0
\[\begin{array}{l} \mathbf{if}\;y \lt 7.590524218811188954625810696587370427881 \cdot 10^{-161}:\\ \;\;\;\;\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + a \cdot \left(27 \cdot b\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot 2 - 9 \cdot \left(y \cdot \left(t \cdot z\right)\right)\right) + \left(a \cdot 27\right) \cdot b\\ \end{array}\]

Derivation

  1. Split input into 2 regimes
  2. if t < -2.6508813647618153e+68 or 1.6408427513533212e-149 < t

    1. Initial program 1.3

      \[\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b\]
    2. Using strategy rm
    3. Applied pow11.3

      \[\leadsto \left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot \color{blue}{{t}^{1}}\right) + \left(a \cdot 27\right) \cdot b\]
    4. Applied pow11.3

      \[\leadsto \left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot \color{blue}{{z}^{1}}\right) \cdot {t}^{1}\right) + \left(a \cdot 27\right) \cdot b\]
    5. Applied pow11.3

      \[\leadsto \left(x \cdot 2 - \left(\left(y \cdot \color{blue}{{9}^{1}}\right) \cdot {z}^{1}\right) \cdot {t}^{1}\right) + \left(a \cdot 27\right) \cdot b\]
    6. Applied pow11.3

      \[\leadsto \left(x \cdot 2 - \left(\left(\color{blue}{{y}^{1}} \cdot {9}^{1}\right) \cdot {z}^{1}\right) \cdot {t}^{1}\right) + \left(a \cdot 27\right) \cdot b\]
    7. Applied pow-prod-down1.3

      \[\leadsto \left(x \cdot 2 - \left(\color{blue}{{\left(y \cdot 9\right)}^{1}} \cdot {z}^{1}\right) \cdot {t}^{1}\right) + \left(a \cdot 27\right) \cdot b\]
    8. Applied pow-prod-down1.3

      \[\leadsto \left(x \cdot 2 - \color{blue}{{\left(\left(y \cdot 9\right) \cdot z\right)}^{1}} \cdot {t}^{1}\right) + \left(a \cdot 27\right) \cdot b\]
    9. Applied pow-prod-down1.3

      \[\leadsto \left(x \cdot 2 - \color{blue}{{\left(\left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right)}^{1}}\right) + \left(a \cdot 27\right) \cdot b\]
    10. Simplified1.3

      \[\leadsto \left(x \cdot 2 - {\color{blue}{\left(9 \cdot \left(t \cdot \left(z \cdot y\right)\right)\right)}}^{1}\right) + \left(a \cdot 27\right) \cdot b\]
    11. Using strategy rm
    12. Applied associate-*l*1.3

      \[\leadsto \left(x \cdot 2 - {\left(9 \cdot \left(t \cdot \left(z \cdot y\right)\right)\right)}^{1}\right) + \color{blue}{a \cdot \left(27 \cdot b\right)}\]
    13. Using strategy rm
    14. Applied *-un-lft-identity1.3

      \[\leadsto \left(x \cdot 2 - {\left(9 \cdot \left(t \cdot \left(z \cdot y\right)\right)\right)}^{1}\right) + \color{blue}{\left(1 \cdot a\right)} \cdot \left(27 \cdot b\right)\]
    15. Applied associate-*l*1.3

      \[\leadsto \left(x \cdot 2 - {\left(9 \cdot \left(t \cdot \left(z \cdot y\right)\right)\right)}^{1}\right) + \color{blue}{1 \cdot \left(a \cdot \left(27 \cdot b\right)\right)}\]
    16. Simplified1.2

      \[\leadsto \left(x \cdot 2 - {\left(9 \cdot \left(t \cdot \left(z \cdot y\right)\right)\right)}^{1}\right) + 1 \cdot \color{blue}{\left(27 \cdot \left(a \cdot b\right)\right)}\]

    if -2.6508813647618153e+68 < t < 1.6408427513533212e-149

    1. Initial program 5.7

      \[\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b\]
    2. Using strategy rm
    3. Applied associate-*l*0.7

      \[\leadsto \left(x \cdot 2 - \color{blue}{\left(y \cdot 9\right) \cdot \left(z \cdot t\right)}\right) + \left(a \cdot 27\right) \cdot b\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -2.650881364761815326323235275736487933061 \cdot 10^{68} \lor \neg \left(t \le 1.640842751353321240815152205887361130947 \cdot 10^{-149}\right):\\ \;\;\;\;\left(x \cdot 2 - 9 \cdot \left(t \cdot \left(z \cdot y\right)\right)\right) + 27 \cdot \left(a \cdot b\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot 2 - \left(y \cdot 9\right) \cdot \left(z \cdot t\right)\right) + \left(a \cdot 27\right) \cdot b\\ \end{array}\]

Reproduce

herbie shell --seed 2019303 +o rules:numerics
(FPCore (x y z t a b)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, A"
  :precision binary64

  :herbie-target
  (if (< y 7.590524218811189e-161) (+ (- (* x 2) (* (* (* y 9) z) t)) (* a (* 27 b))) (+ (- (* x 2) (* 9 (* y (* t z)))) (* (* a 27) b)))

  (+ (- (* x 2) (* (* (* y 9) z) t)) (* (* a 27) b)))