Average Error: 34.3 → 27.9
Time: 40.3s
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}\;U \le 9.725794516545525178274997374179875150759 \cdot 10^{-311}:\\ \;\;\;\;\sqrt{\left(\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(\left(\sqrt[3]{n \cdot {\left(\frac{\ell}{Om}\right)}^{2}} \cdot \sqrt[3]{n \cdot {\left(\frac{\ell}{Om}\right)}^{2}}\right) \cdot \sqrt[3]{n \cdot {\left(\frac{\ell}{Om}\right)}^{2}}\right) \cdot \left(U - U*\right)\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(t - \mathsf{fma}\left(2 \cdot \frac{\ell}{Om}, \ell, \left(U - U*\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right)\right)\right)} \cdot \sqrt{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}\;U \le 9.725794516545525178274997374179875150759 \cdot 10^{-311}:\\
\;\;\;\;\sqrt{\left(\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(\left(\sqrt[3]{n \cdot {\left(\frac{\ell}{Om}\right)}^{2}} \cdot \sqrt[3]{n \cdot {\left(\frac{\ell}{Om}\right)}^{2}}\right) \cdot \sqrt[3]{n \cdot {\left(\frac{\ell}{Om}\right)}^{2}}\right) \cdot \left(U - U*\right)\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U}\\

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

\end{array}
double f(double n, double U, double t, double l, double Om, double U_) {
        double r123958 = 2.0;
        double r123959 = n;
        double r123960 = r123958 * r123959;
        double r123961 = U;
        double r123962 = r123960 * r123961;
        double r123963 = t;
        double r123964 = l;
        double r123965 = r123964 * r123964;
        double r123966 = Om;
        double r123967 = r123965 / r123966;
        double r123968 = r123958 * r123967;
        double r123969 = r123963 - r123968;
        double r123970 = r123964 / r123966;
        double r123971 = pow(r123970, r123958);
        double r123972 = r123959 * r123971;
        double r123973 = U_;
        double r123974 = r123961 - r123973;
        double r123975 = r123972 * r123974;
        double r123976 = r123969 - r123975;
        double r123977 = r123962 * r123976;
        double r123978 = sqrt(r123977);
        return r123978;
}

double f(double n, double U, double t, double l, double Om, double U_) {
        double r123979 = U;
        double r123980 = 9.7257945165455e-311;
        bool r123981 = r123979 <= r123980;
        double r123982 = t;
        double r123983 = 2.0;
        double r123984 = l;
        double r123985 = Om;
        double r123986 = r123985 / r123984;
        double r123987 = r123984 / r123986;
        double r123988 = n;
        double r123989 = r123984 / r123985;
        double r123990 = pow(r123989, r123983);
        double r123991 = r123988 * r123990;
        double r123992 = cbrt(r123991);
        double r123993 = r123992 * r123992;
        double r123994 = r123993 * r123992;
        double r123995 = U_;
        double r123996 = r123979 - r123995;
        double r123997 = r123994 * r123996;
        double r123998 = fma(r123983, r123987, r123997);
        double r123999 = r123982 - r123998;
        double r124000 = r123983 * r123988;
        double r124001 = r123999 * r124000;
        double r124002 = r124001 * r123979;
        double r124003 = sqrt(r124002);
        double r124004 = r123983 * r123989;
        double r124005 = r123996 * r123991;
        double r124006 = fma(r124004, r123984, r124005);
        double r124007 = r123982 - r124006;
        double r124008 = r124000 * r124007;
        double r124009 = sqrt(r124008);
        double r124010 = sqrt(r123979);
        double r124011 = r124009 * r124010;
        double r124012 = r123981 ? r124003 : r124011;
        return r124012;
}

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 U < 9.7257945165455e-311

    1. Initial program 34.0

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

      \[\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.8

      \[\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 associate-*r*31.0

      \[\leadsto \sqrt{\color{blue}{\left(\left(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)\right) \cdot \left(2 \cdot n\right)\right) \cdot U}}\]
    7. Using strategy rm
    8. Applied add-cube-cbrt31.0

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

    if 9.7257945165455e-311 < U

    1. Initial program 34.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. Simplified34.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*31.8

      \[\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 associate-*r*31.9

      \[\leadsto \sqrt{\color{blue}{\left(\left(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)\right) \cdot \left(2 \cdot n\right)\right) \cdot U}}\]
    7. Using strategy rm
    8. Applied add-cube-cbrt32.0

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

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

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

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

Reproduce

herbie shell --seed 2019322 +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*))))))