Average Error: 8.0 → 5.3
Time: 22.0s
Precision: 64
\[\frac{x \cdot y - \left(z \cdot 9\right) \cdot t}{a \cdot 2}\]
\[\begin{array}{l} \mathbf{if}\;t \le -2883699790592167196212866192506880:\\ \;\;\;\;\mathsf{fma}\left(-4.5, z \cdot \frac{t}{a}, y \cdot \frac{0.5 \cdot x}{a}\right)\\ \mathbf{elif}\;t \le 819283338.3549673557281494140625:\\ \;\;\;\;\frac{x \cdot y + \left(9 \cdot z\right) \cdot \left(-t\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(-4.5, \frac{\frac{\sqrt{t}}{\sqrt[3]{a}}}{\sqrt[3]{a}} \cdot \left(z \cdot \frac{\sqrt{t}}{\sqrt[3]{a}}\right), \frac{0.5}{\frac{a}{x \cdot y}}\right)\\ \end{array}\]
\frac{x \cdot y - \left(z \cdot 9\right) \cdot t}{a \cdot 2}
\begin{array}{l}
\mathbf{if}\;t \le -2883699790592167196212866192506880:\\
\;\;\;\;\mathsf{fma}\left(-4.5, z \cdot \frac{t}{a}, y \cdot \frac{0.5 \cdot x}{a}\right)\\

\mathbf{elif}\;t \le 819283338.3549673557281494140625:\\
\;\;\;\;\frac{x \cdot y + \left(9 \cdot z\right) \cdot \left(-t\right)}{2 \cdot a}\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(-4.5, \frac{\frac{\sqrt{t}}{\sqrt[3]{a}}}{\sqrt[3]{a}} \cdot \left(z \cdot \frac{\sqrt{t}}{\sqrt[3]{a}}\right), \frac{0.5}{\frac{a}{x \cdot y}}\right)\\

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r444071 = x;
        double r444072 = y;
        double r444073 = r444071 * r444072;
        double r444074 = z;
        double r444075 = 9.0;
        double r444076 = r444074 * r444075;
        double r444077 = t;
        double r444078 = r444076 * r444077;
        double r444079 = r444073 - r444078;
        double r444080 = a;
        double r444081 = 2.0;
        double r444082 = r444080 * r444081;
        double r444083 = r444079 / r444082;
        return r444083;
}

double f(double x, double y, double z, double t, double a) {
        double r444084 = t;
        double r444085 = -2.883699790592167e+33;
        bool r444086 = r444084 <= r444085;
        double r444087 = 4.5;
        double r444088 = -r444087;
        double r444089 = z;
        double r444090 = a;
        double r444091 = r444084 / r444090;
        double r444092 = r444089 * r444091;
        double r444093 = y;
        double r444094 = 0.5;
        double r444095 = x;
        double r444096 = r444094 * r444095;
        double r444097 = r444096 / r444090;
        double r444098 = r444093 * r444097;
        double r444099 = fma(r444088, r444092, r444098);
        double r444100 = 819283338.3549674;
        bool r444101 = r444084 <= r444100;
        double r444102 = r444095 * r444093;
        double r444103 = 9.0;
        double r444104 = r444103 * r444089;
        double r444105 = -r444084;
        double r444106 = r444104 * r444105;
        double r444107 = r444102 + r444106;
        double r444108 = 2.0;
        double r444109 = r444108 * r444090;
        double r444110 = r444107 / r444109;
        double r444111 = sqrt(r444084);
        double r444112 = cbrt(r444090);
        double r444113 = r444111 / r444112;
        double r444114 = r444113 / r444112;
        double r444115 = r444089 * r444113;
        double r444116 = r444114 * r444115;
        double r444117 = r444090 / r444102;
        double r444118 = r444094 / r444117;
        double r444119 = fma(r444088, r444116, r444118);
        double r444120 = r444101 ? r444110 : r444119;
        double r444121 = r444086 ? r444099 : r444120;
        return r444121;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Target

Original8.0
Target6.0
Herbie5.3
\[\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 t < -2.883699790592167e+33

    1. Initial program 13.8

      \[\frac{x \cdot y - \left(z \cdot 9\right) \cdot t}{a \cdot 2}\]
    2. Simplified13.8

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(t, 9 \cdot \left(-z\right), x \cdot y\right)}{a \cdot 2}}\]
    3. Using strategy rm
    4. Applied fma-udef13.8

      \[\leadsto \frac{\color{blue}{t \cdot \left(9 \cdot \left(-z\right)\right) + x \cdot y}}{a \cdot 2}\]
    5. Simplified13.8

      \[\leadsto \frac{\color{blue}{\left(\left(-z\right) \cdot 9\right) \cdot t} + x \cdot y}{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. Simplified9.2

      \[\leadsto \color{blue}{\mathsf{fma}\left(-4.5, \frac{t}{\frac{a}{z}}, \frac{0.5}{\frac{a}{y \cdot x}}\right)}\]
    8. Using strategy rm
    9. Applied associate-/r/9.9

      \[\leadsto \mathsf{fma}\left(-4.5, \color{blue}{\frac{t}{a} \cdot z}, \frac{0.5}{\frac{a}{y \cdot x}}\right)\]
    10. Using strategy rm
    11. Applied *-un-lft-identity9.9

      \[\leadsto \mathsf{fma}\left(-4.5, \frac{t}{a} \cdot z, \frac{0.5}{\frac{\color{blue}{1 \cdot a}}{y \cdot x}}\right)\]
    12. Applied times-frac7.7

      \[\leadsto \mathsf{fma}\left(-4.5, \frac{t}{a} \cdot z, \frac{0.5}{\color{blue}{\frac{1}{y} \cdot \frac{a}{x}}}\right)\]
    13. Applied *-un-lft-identity7.7

      \[\leadsto \mathsf{fma}\left(-4.5, \frac{t}{a} \cdot z, \frac{\color{blue}{1 \cdot 0.5}}{\frac{1}{y} \cdot \frac{a}{x}}\right)\]
    14. Applied times-frac7.8

      \[\leadsto \mathsf{fma}\left(-4.5, \frac{t}{a} \cdot z, \color{blue}{\frac{1}{\frac{1}{y}} \cdot \frac{0.5}{\frac{a}{x}}}\right)\]
    15. Simplified7.8

      \[\leadsto \mathsf{fma}\left(-4.5, \frac{t}{a} \cdot z, \color{blue}{y} \cdot \frac{0.5}{\frac{a}{x}}\right)\]
    16. Simplified7.7

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

    if -2.883699790592167e+33 < t < 819283338.3549674

    1. Initial program 4.4

      \[\frac{x \cdot y - \left(z \cdot 9\right) \cdot t}{a \cdot 2}\]
    2. Simplified4.4

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(t, 9 \cdot \left(-z\right), x \cdot y\right)}{a \cdot 2}}\]
    3. Using strategy rm
    4. Applied fma-udef4.4

      \[\leadsto \frac{\color{blue}{t \cdot \left(9 \cdot \left(-z\right)\right) + x \cdot y}}{a \cdot 2}\]
    5. Simplified4.4

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

    if 819283338.3549674 < t

    1. Initial program 12.5

      \[\frac{x \cdot y - \left(z \cdot 9\right) \cdot t}{a \cdot 2}\]
    2. Simplified12.5

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(t, 9 \cdot \left(-z\right), x \cdot y\right)}{a \cdot 2}}\]
    3. Using strategy rm
    4. Applied fma-udef12.5

      \[\leadsto \frac{\color{blue}{t \cdot \left(9 \cdot \left(-z\right)\right) + x \cdot y}}{a \cdot 2}\]
    5. Simplified12.5

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

      \[\leadsto \color{blue}{0.5 \cdot \frac{x \cdot y}{a} - 4.5 \cdot \frac{t \cdot z}{a}}\]
    7. Simplified8.7

      \[\leadsto \color{blue}{\mathsf{fma}\left(-4.5, \frac{t}{\frac{a}{z}}, \frac{0.5}{\frac{a}{y \cdot x}}\right)}\]
    8. Using strategy rm
    9. Applied *-un-lft-identity8.7

      \[\leadsto \mathsf{fma}\left(-4.5, \frac{t}{\frac{a}{\color{blue}{1 \cdot z}}}, \frac{0.5}{\frac{a}{y \cdot x}}\right)\]
    10. Applied add-cube-cbrt9.3

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

      \[\leadsto \mathsf{fma}\left(-4.5, \frac{t}{\color{blue}{\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{1} \cdot \frac{\sqrt[3]{a}}{z}}}, \frac{0.5}{\frac{a}{y \cdot x}}\right)\]
    12. Applied add-sqr-sqrt9.4

      \[\leadsto \mathsf{fma}\left(-4.5, \frac{\color{blue}{\sqrt{t} \cdot \sqrt{t}}}{\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{1} \cdot \frac{\sqrt[3]{a}}{z}}, \frac{0.5}{\frac{a}{y \cdot x}}\right)\]
    13. Applied times-frac6.3

      \[\leadsto \mathsf{fma}\left(-4.5, \color{blue}{\frac{\sqrt{t}}{\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{1}} \cdot \frac{\sqrt{t}}{\frac{\sqrt[3]{a}}{z}}}, \frac{0.5}{\frac{a}{y \cdot x}}\right)\]
    14. Simplified6.3

      \[\leadsto \mathsf{fma}\left(-4.5, \color{blue}{\frac{\frac{\sqrt{t}}{\sqrt[3]{a}}}{\sqrt[3]{a}}} \cdot \frac{\sqrt{t}}{\frac{\sqrt[3]{a}}{z}}, \frac{0.5}{\frac{a}{y \cdot x}}\right)\]
    15. Simplified5.2

      \[\leadsto \mathsf{fma}\left(-4.5, \frac{\frac{\sqrt{t}}{\sqrt[3]{a}}}{\sqrt[3]{a}} \cdot \color{blue}{\left(\frac{\sqrt{t}}{\sqrt[3]{a}} \cdot z\right)}, \frac{0.5}{\frac{a}{y \cdot x}}\right)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification5.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -2883699790592167196212866192506880:\\ \;\;\;\;\mathsf{fma}\left(-4.5, z \cdot \frac{t}{a}, y \cdot \frac{0.5 \cdot x}{a}\right)\\ \mathbf{elif}\;t \le 819283338.3549673557281494140625:\\ \;\;\;\;\frac{x \cdot y + \left(9 \cdot z\right) \cdot \left(-t\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(-4.5, \frac{\frac{\sqrt{t}}{\sqrt[3]{a}}}{\sqrt[3]{a}} \cdot \left(z \cdot \frac{\sqrt{t}}{\sqrt[3]{a}}\right), \frac{0.5}{\frac{a}{x \cdot y}}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019174 +o rules:numerics
(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)))