Average Error: 33.8 → 30.6
Time: 44.2s
Precision: 64
\[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]
\[\begin{array}{l} \mathbf{if}\;t \le 1.045516202577843853923853185368686409598 \cdot 10^{-37}:\\ \;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(n \cdot \left(U - U*\right)\right)\right) + n \cdot \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot \left(U* + \left(-U*\right)\right)\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \cdot \sqrt{\left(2 \cdot n\right) \cdot U}\\ \end{array}\]
\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}
\begin{array}{l}
\mathbf{if}\;t \le 1.045516202577843853923853185368686409598 \cdot 10^{-37}:\\
\;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(n \cdot \left(U - U*\right)\right)\right) + n \cdot \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot \left(U* + \left(-U*\right)\right)\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \cdot \sqrt{\left(2 \cdot n\right) \cdot U}\\

\end{array}
double f(double n, double U, double t, double l, double Om, double U_) {
        double r86895 = 2.0;
        double r86896 = n;
        double r86897 = r86895 * r86896;
        double r86898 = U;
        double r86899 = r86897 * r86898;
        double r86900 = t;
        double r86901 = l;
        double r86902 = r86901 * r86901;
        double r86903 = Om;
        double r86904 = r86902 / r86903;
        double r86905 = r86895 * r86904;
        double r86906 = r86900 - r86905;
        double r86907 = r86901 / r86903;
        double r86908 = pow(r86907, r86895);
        double r86909 = r86896 * r86908;
        double r86910 = U_;
        double r86911 = r86898 - r86910;
        double r86912 = r86909 * r86911;
        double r86913 = r86906 - r86912;
        double r86914 = r86899 * r86913;
        double r86915 = sqrt(r86914);
        return r86915;
}

double f(double n, double U, double t, double l, double Om, double U_) {
        double r86916 = t;
        double r86917 = 1.0455162025778439e-37;
        bool r86918 = r86916 <= r86917;
        double r86919 = 2.0;
        double r86920 = l;
        double r86921 = Om;
        double r86922 = r86921 / r86920;
        double r86923 = r86920 / r86922;
        double r86924 = r86920 / r86921;
        double r86925 = 2.0;
        double r86926 = r86919 / r86925;
        double r86927 = pow(r86924, r86926);
        double r86928 = n;
        double r86929 = U;
        double r86930 = U_;
        double r86931 = r86929 - r86930;
        double r86932 = r86928 * r86931;
        double r86933 = r86927 * r86932;
        double r86934 = r86927 * r86933;
        double r86935 = pow(r86924, r86919);
        double r86936 = -r86930;
        double r86937 = r86930 + r86936;
        double r86938 = r86935 * r86937;
        double r86939 = r86928 * r86938;
        double r86940 = r86934 + r86939;
        double r86941 = fma(r86919, r86923, r86940);
        double r86942 = r86916 - r86941;
        double r86943 = r86919 * r86928;
        double r86944 = r86943 * r86929;
        double r86945 = r86942 * r86944;
        double r86946 = sqrt(r86945);
        double r86947 = r86928 * r86935;
        double r86948 = r86947 * r86931;
        double r86949 = fma(r86919, r86923, r86948);
        double r86950 = r86916 - r86949;
        double r86951 = sqrt(r86950);
        double r86952 = sqrt(r86944);
        double r86953 = r86951 * r86952;
        double r86954 = r86918 ? r86946 : r86953;
        return r86954;
}

Error

Bits error versus n

Bits error versus U

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus U*

Derivation

  1. Split input into 2 regimes
  2. if t < 1.0455162025778439e-37

    1. Initial program 34.2

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]
    2. Simplified34.2

      \[\leadsto \color{blue}{\sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell \cdot \ell}{Om}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}}\]
    3. Using strategy rm
    4. Applied associate-/l*31.3

      \[\leadsto \sqrt{\left(t - \mathsf{fma}\left(2, \color{blue}{\frac{\ell}{\frac{Om}{\ell}}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt31.3

      \[\leadsto \sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - \color{blue}{\left(\sqrt[3]{U*} \cdot \sqrt[3]{U*}\right) \cdot \sqrt[3]{U*}}\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\]
    7. Applied add-sqr-sqrt47.9

      \[\leadsto \sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(\color{blue}{\sqrt{U} \cdot \sqrt{U}} - \left(\sqrt[3]{U*} \cdot \sqrt[3]{U*}\right) \cdot \sqrt[3]{U*}\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\]
    8. Applied prod-diff47.9

      \[\leadsto \sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \color{blue}{\left(\mathsf{fma}\left(\sqrt{U}, \sqrt{U}, -\sqrt[3]{U*} \cdot \left(\sqrt[3]{U*} \cdot \sqrt[3]{U*}\right)\right) + \mathsf{fma}\left(-\sqrt[3]{U*}, \sqrt[3]{U*} \cdot \sqrt[3]{U*}, \sqrt[3]{U*} \cdot \left(\sqrt[3]{U*} \cdot \sqrt[3]{U*}\right)\right)\right)}\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\]
    9. Applied distribute-lft-in47.9

      \[\leadsto \sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \color{blue}{\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \mathsf{fma}\left(\sqrt{U}, \sqrt{U}, -\sqrt[3]{U*} \cdot \left(\sqrt[3]{U*} \cdot \sqrt[3]{U*}\right)\right) + \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \mathsf{fma}\left(-\sqrt[3]{U*}, \sqrt[3]{U*} \cdot \sqrt[3]{U*}, \sqrt[3]{U*} \cdot \left(\sqrt[3]{U*} \cdot \sqrt[3]{U*}\right)\right)}\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\]
    10. Simplified32.9

      \[\leadsto \sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \color{blue}{{\left(\frac{\ell}{Om}\right)}^{2} \cdot \left(n \cdot \left(U - U*\right)\right)} + \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \mathsf{fma}\left(-\sqrt[3]{U*}, \sqrt[3]{U*} \cdot \sqrt[3]{U*}, \sqrt[3]{U*} \cdot \left(\sqrt[3]{U*} \cdot \sqrt[3]{U*}\right)\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\]
    11. Simplified32.7

      \[\leadsto \sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, {\left(\frac{\ell}{Om}\right)}^{2} \cdot \left(n \cdot \left(U - U*\right)\right) + \color{blue}{n \cdot \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot \left(U* + \left(-U*\right)\right)\right)}\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\]
    12. Using strategy rm
    13. Applied sqr-pow32.7

      \[\leadsto \sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \color{blue}{\left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right)} \cdot \left(n \cdot \left(U - U*\right)\right) + n \cdot \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot \left(U* + \left(-U*\right)\right)\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\]
    14. Applied associate-*l*32.5

      \[\leadsto \sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \color{blue}{{\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(n \cdot \left(U - U*\right)\right)\right)} + n \cdot \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot \left(U* + \left(-U*\right)\right)\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\]

    if 1.0455162025778439e-37 < t

    1. Initial program 32.7

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]
    2. Simplified32.7

      \[\leadsto \color{blue}{\sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell \cdot \ell}{Om}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}}\]
    3. Using strategy rm
    4. Applied associate-/l*30.0

      \[\leadsto \sqrt{\left(t - \mathsf{fma}\left(2, \color{blue}{\frac{\ell}{\frac{Om}{\ell}}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\]
    5. Using strategy rm
    6. Applied sqrt-prod26.0

      \[\leadsto \color{blue}{\sqrt{t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \cdot \sqrt{\left(2 \cdot n\right) \cdot U}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification30.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le 1.045516202577843853923853185368686409598 \cdot 10^{-37}:\\ \;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(n \cdot \left(U - U*\right)\right)\right) + n \cdot \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot \left(U* + \left(-U*\right)\right)\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \cdot \sqrt{\left(2 \cdot n\right) \cdot U}\\ \end{array}\]

Reproduce

herbie shell --seed 2019209 +o rules:numerics
(FPCore (n U t l Om U*)
  :name "Toniolo and Linder, Equation (13)"
  :precision binary64
  (sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))))