Average Error: 3.7 → 0.4
Time: 20.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}\;\left(y \cdot 9\right) \cdot z \le -2.616507040877682570245126886877728515495 \cdot 10^{173} \lor \neg \left(\left(y \cdot 9\right) \cdot z \le 2.373904462751578418471696630822150350491 \cdot 10^{192}\right):\\ \;\;\;\;\left(2 \cdot x - \left(\left(t \cdot z\right) \cdot y\right) \cdot 9\right) + a \cdot \left(27 \cdot b\right)\\ \mathbf{else}:\\ \;\;\;\;\left(2 \cdot x + 27 \cdot \left(a \cdot b\right)\right) - 9 \cdot \left(t \cdot \left(z \cdot y\right)\right)\\ \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}\;\left(y \cdot 9\right) \cdot z \le -2.616507040877682570245126886877728515495 \cdot 10^{173} \lor \neg \left(\left(y \cdot 9\right) \cdot z \le 2.373904462751578418471696630822150350491 \cdot 10^{192}\right):\\
\;\;\;\;\left(2 \cdot x - \left(\left(t \cdot z\right) \cdot y\right) \cdot 9\right) + a \cdot \left(27 \cdot b\right)\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r457367 = x;
        double r457368 = 2.0;
        double r457369 = r457367 * r457368;
        double r457370 = y;
        double r457371 = 9.0;
        double r457372 = r457370 * r457371;
        double r457373 = z;
        double r457374 = r457372 * r457373;
        double r457375 = t;
        double r457376 = r457374 * r457375;
        double r457377 = r457369 - r457376;
        double r457378 = a;
        double r457379 = 27.0;
        double r457380 = r457378 * r457379;
        double r457381 = b;
        double r457382 = r457380 * r457381;
        double r457383 = r457377 + r457382;
        return r457383;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r457384 = y;
        double r457385 = 9.0;
        double r457386 = r457384 * r457385;
        double r457387 = z;
        double r457388 = r457386 * r457387;
        double r457389 = -2.6165070408776826e+173;
        bool r457390 = r457388 <= r457389;
        double r457391 = 2.3739044627515784e+192;
        bool r457392 = r457388 <= r457391;
        double r457393 = !r457392;
        bool r457394 = r457390 || r457393;
        double r457395 = 2.0;
        double r457396 = x;
        double r457397 = r457395 * r457396;
        double r457398 = t;
        double r457399 = r457398 * r457387;
        double r457400 = r457399 * r457384;
        double r457401 = r457400 * r457385;
        double r457402 = r457397 - r457401;
        double r457403 = a;
        double r457404 = 27.0;
        double r457405 = b;
        double r457406 = r457404 * r457405;
        double r457407 = r457403 * r457406;
        double r457408 = r457402 + r457407;
        double r457409 = r457403 * r457405;
        double r457410 = r457404 * r457409;
        double r457411 = r457397 + r457410;
        double r457412 = r457387 * r457384;
        double r457413 = r457398 * r457412;
        double r457414 = r457385 * r457413;
        double r457415 = r457411 - r457414;
        double r457416 = r457394 ? r457408 : r457415;
        return r457416;
}

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.7
Target2.7
Herbie0.4
\[\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 (* (* y 9.0) z) < -2.6165070408776826e+173 or 2.3739044627515784e+192 < (* (* y 9.0) z)

    1. Initial program 24.2

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

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

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

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

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

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

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

      \[\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(\left(t \cdot z\right) \cdot \left(y \cdot 9\right)\right)}}^{1}\right) + \left(a \cdot 27\right) \cdot b\]
    11. Using strategy rm
    12. Applied associate-*r*0.8

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

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

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

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

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

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

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

    if -2.6165070408776826e+173 < (* (* y 9.0) z) < 2.3739044627515784e+192

    1. Initial program 0.4

      \[\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 pow10.4

      \[\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 pow10.4

      \[\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 pow10.4

      \[\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 pow10.4

      \[\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-down0.4

      \[\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-down0.4

      \[\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-down0.4

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

      \[\leadsto \left(x \cdot 2 - {\color{blue}{\left(\left(t \cdot z\right) \cdot \left(y \cdot 9\right)\right)}}^{1}\right) + \left(a \cdot 27\right) \cdot b\]
    11. Taylor expanded around inf 0.3

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

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

Reproduce

herbie shell --seed 2019208 
(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)))