Average Error: 8.0 → 5.9
Time: 19.8s
Precision: 64
\[\frac{x \cdot y - \left(z \cdot 9\right) \cdot t}{a \cdot 2}\]
\[\begin{array}{l} \mathbf{if}\;a \cdot 2 \le -1.356756991660825556619789092465379933879 \cdot 10^{85}:\\ \;\;\;\;0.5 \cdot \frac{x \cdot y}{a} - 4.5 \cdot \left(\frac{t}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{z}{\sqrt[3]{a}}\right)\\ \mathbf{elif}\;a \cdot 2 \le 523961.87070419988594949245452880859375:\\ \;\;\;\;0.5 \cdot \frac{x \cdot y}{a} - \frac{4.5 \cdot \left(t \cdot z\right)}{a}\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \frac{x \cdot y}{a} - 4.5 \cdot \frac{t}{\frac{a}{z}}\\ \end{array}\]
\frac{x \cdot y - \left(z \cdot 9\right) \cdot t}{a \cdot 2}
\begin{array}{l}
\mathbf{if}\;a \cdot 2 \le -1.356756991660825556619789092465379933879 \cdot 10^{85}:\\
\;\;\;\;0.5 \cdot \frac{x \cdot y}{a} - 4.5 \cdot \left(\frac{t}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{z}{\sqrt[3]{a}}\right)\\

\mathbf{elif}\;a \cdot 2 \le 523961.87070419988594949245452880859375:\\
\;\;\;\;0.5 \cdot \frac{x \cdot y}{a} - \frac{4.5 \cdot \left(t \cdot z\right)}{a}\\

\mathbf{else}:\\
\;\;\;\;0.5 \cdot \frac{x \cdot y}{a} - 4.5 \cdot \frac{t}{\frac{a}{z}}\\

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r49790339 = x;
        double r49790340 = y;
        double r49790341 = r49790339 * r49790340;
        double r49790342 = z;
        double r49790343 = 9.0;
        double r49790344 = r49790342 * r49790343;
        double r49790345 = t;
        double r49790346 = r49790344 * r49790345;
        double r49790347 = r49790341 - r49790346;
        double r49790348 = a;
        double r49790349 = 2.0;
        double r49790350 = r49790348 * r49790349;
        double r49790351 = r49790347 / r49790350;
        return r49790351;
}

double f(double x, double y, double z, double t, double a) {
        double r49790352 = a;
        double r49790353 = 2.0;
        double r49790354 = r49790352 * r49790353;
        double r49790355 = -1.3567569916608256e+85;
        bool r49790356 = r49790354 <= r49790355;
        double r49790357 = 0.5;
        double r49790358 = x;
        double r49790359 = y;
        double r49790360 = r49790358 * r49790359;
        double r49790361 = r49790360 / r49790352;
        double r49790362 = r49790357 * r49790361;
        double r49790363 = 4.5;
        double r49790364 = t;
        double r49790365 = cbrt(r49790352);
        double r49790366 = r49790365 * r49790365;
        double r49790367 = r49790364 / r49790366;
        double r49790368 = z;
        double r49790369 = r49790368 / r49790365;
        double r49790370 = r49790367 * r49790369;
        double r49790371 = r49790363 * r49790370;
        double r49790372 = r49790362 - r49790371;
        double r49790373 = 523961.8707041999;
        bool r49790374 = r49790354 <= r49790373;
        double r49790375 = r49790364 * r49790368;
        double r49790376 = r49790363 * r49790375;
        double r49790377 = r49790376 / r49790352;
        double r49790378 = r49790362 - r49790377;
        double r49790379 = r49790352 / r49790368;
        double r49790380 = r49790364 / r49790379;
        double r49790381 = r49790363 * r49790380;
        double r49790382 = r49790362 - r49790381;
        double r49790383 = r49790374 ? r49790378 : r49790382;
        double r49790384 = r49790356 ? r49790372 : r49790383;
        return r49790384;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original8.0
Target6.0
Herbie5.9
\[\begin{array}{l} \mathbf{if}\;a \lt -2.090464557976709043451944897028999329376 \cdot 10^{86}:\\ \;\;\;\;0.5 \cdot \frac{y \cdot x}{a} - 4.5 \cdot \frac{t}{\frac{a}{z}}\\ \mathbf{elif}\;a \lt 2.144030707833976090627817222818061808815 \cdot 10^{99}:\\ \;\;\;\;\frac{x \cdot y - z \cdot \left(9 \cdot t\right)}{a \cdot 2}\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{a} \cdot \left(x \cdot 0.5\right) - \frac{t}{a} \cdot \left(z \cdot 4.5\right)\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if (* a 2.0) < -1.3567569916608256e+85

    1. Initial program 13.8

      \[\frac{x \cdot y - \left(z \cdot 9\right) \cdot t}{a \cdot 2}\]
    2. Using strategy rm
    3. Applied associate-*l*13.9

      \[\leadsto \frac{x \cdot y - \color{blue}{z \cdot \left(9 \cdot t\right)}}{a \cdot 2}\]
    4. Using strategy rm
    5. Applied associate-*r*13.8

      \[\leadsto \frac{x \cdot y - \color{blue}{\left(z \cdot 9\right) \cdot t}}{a \cdot 2}\]
    6. Taylor expanded around 0 13.6

      \[\leadsto \color{blue}{0.5 \cdot \frac{x \cdot y}{a} - 4.5 \cdot \frac{t \cdot z}{a}}\]
    7. Using strategy rm
    8. Applied add-cube-cbrt14.0

      \[\leadsto 0.5 \cdot \frac{x \cdot y}{a} - 4.5 \cdot \frac{t \cdot z}{\color{blue}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}}\]
    9. Applied times-frac9.9

      \[\leadsto 0.5 \cdot \frac{x \cdot y}{a} - 4.5 \cdot \color{blue}{\left(\frac{t}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{z}{\sqrt[3]{a}}\right)}\]

    if -1.3567569916608256e+85 < (* a 2.0) < 523961.8707041999

    1. Initial program 2.1

      \[\frac{x \cdot y - \left(z \cdot 9\right) \cdot t}{a \cdot 2}\]
    2. Using strategy rm
    3. Applied associate-*l*2.1

      \[\leadsto \frac{x \cdot y - \color{blue}{z \cdot \left(9 \cdot t\right)}}{a \cdot 2}\]
    4. Using strategy rm
    5. Applied associate-*r*2.1

      \[\leadsto \frac{x \cdot y - \color{blue}{\left(z \cdot 9\right) \cdot t}}{a \cdot 2}\]
    6. Taylor expanded around 0 2.1

      \[\leadsto \color{blue}{0.5 \cdot \frac{x \cdot y}{a} - 4.5 \cdot \frac{t \cdot z}{a}}\]
    7. Using strategy rm
    8. Applied associate-*r/2.1

      \[\leadsto 0.5 \cdot \frac{x \cdot y}{a} - \color{blue}{\frac{4.5 \cdot \left(t \cdot z\right)}{a}}\]

    if 523961.8707041999 < (* a 2.0)

    1. Initial program 11.6

      \[\frac{x \cdot y - \left(z \cdot 9\right) \cdot t}{a \cdot 2}\]
    2. Using strategy rm
    3. Applied associate-*l*11.5

      \[\leadsto \frac{x \cdot y - \color{blue}{z \cdot \left(9 \cdot t\right)}}{a \cdot 2}\]
    4. Using strategy rm
    5. Applied associate-*r*11.6

      \[\leadsto \frac{x \cdot y - \color{blue}{\left(z \cdot 9\right) \cdot t}}{a \cdot 2}\]
    6. Taylor expanded around 0 11.4

      \[\leadsto \color{blue}{0.5 \cdot \frac{x \cdot y}{a} - 4.5 \cdot \frac{t \cdot z}{a}}\]
    7. Using strategy rm
    8. Applied associate-/l*8.0

      \[\leadsto 0.5 \cdot \frac{x \cdot y}{a} - 4.5 \cdot \color{blue}{\frac{t}{\frac{a}{z}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification5.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \cdot 2 \le -1.356756991660825556619789092465379933879 \cdot 10^{85}:\\ \;\;\;\;0.5 \cdot \frac{x \cdot y}{a} - 4.5 \cdot \left(\frac{t}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{z}{\sqrt[3]{a}}\right)\\ \mathbf{elif}\;a \cdot 2 \le 523961.87070419988594949245452880859375:\\ \;\;\;\;0.5 \cdot \frac{x \cdot y}{a} - \frac{4.5 \cdot \left(t \cdot z\right)}{a}\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \frac{x \cdot y}{a} - 4.5 \cdot \frac{t}{\frac{a}{z}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019174 
(FPCore (x y z t a)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, I"

  :herbie-target
  (if (< a -2.090464557976709e+86) (- (* 0.5 (/ (* y x) a)) (* 4.5 (/ t (/ a z)))) (if (< a 2.144030707833976e+99) (/ (- (* x y) (* z (* 9.0 t))) (* a 2.0)) (- (* (/ y a) (* x 0.5)) (* (/ t a) (* z 4.5)))))

  (/ (- (* x y) (* (* z 9.0) t)) (* a 2.0)))