\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}\;\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right) \le 1.092557959512387 \cdot 10^{-276}:\\
\;\;\;\;\sqrt{\left(U \cdot \mathsf{fma}\left(0 \cdot \frac{\ell}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}, n, \mathsf{fma}\left(\frac{\ell}{Om} \cdot \ell, -2, t\right)\right)\right) \cdot \left(2 \cdot n\right)}\\
\mathbf{elif}\;\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right) \le 1.1462142433560081 \cdot 10^{+262}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \mathsf{fma}\left(\frac{\frac{\ell}{\sqrt[3]{Om}}}{\sqrt[3]{Om}}, n \cdot \left(\frac{U* - U}{\sqrt[3]{Om}} \cdot \frac{\ell}{Om}\right), \mathsf{fma}\left(-2, \frac{\ell}{Om} \cdot \ell, t\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r2897976 = 2.0;
double r2897977 = n;
double r2897978 = r2897976 * r2897977;
double r2897979 = U;
double r2897980 = r2897978 * r2897979;
double r2897981 = t;
double r2897982 = l;
double r2897983 = r2897982 * r2897982;
double r2897984 = Om;
double r2897985 = r2897983 / r2897984;
double r2897986 = r2897976 * r2897985;
double r2897987 = r2897981 - r2897986;
double r2897988 = r2897982 / r2897984;
double r2897989 = pow(r2897988, r2897976);
double r2897990 = r2897977 * r2897989;
double r2897991 = U_;
double r2897992 = r2897979 - r2897991;
double r2897993 = r2897990 * r2897992;
double r2897994 = r2897987 - r2897993;
double r2897995 = r2897980 * r2897994;
double r2897996 = sqrt(r2897995);
return r2897996;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r2897997 = 2.0;
double r2897998 = n;
double r2897999 = r2897997 * r2897998;
double r2898000 = U;
double r2898001 = r2897999 * r2898000;
double r2898002 = t;
double r2898003 = l;
double r2898004 = r2898003 * r2898003;
double r2898005 = Om;
double r2898006 = r2898004 / r2898005;
double r2898007 = r2898006 * r2897997;
double r2898008 = r2898002 - r2898007;
double r2898009 = r2898003 / r2898005;
double r2898010 = pow(r2898009, r2897997);
double r2898011 = r2897998 * r2898010;
double r2898012 = U_;
double r2898013 = r2898000 - r2898012;
double r2898014 = r2898011 * r2898013;
double r2898015 = r2898008 - r2898014;
double r2898016 = r2898001 * r2898015;
double r2898017 = 1.092557959512387e-276;
bool r2898018 = r2898016 <= r2898017;
double r2898019 = 0.0;
double r2898020 = cbrt(r2898005);
double r2898021 = r2898020 * r2898020;
double r2898022 = r2898003 / r2898021;
double r2898023 = r2898019 * r2898022;
double r2898024 = r2898009 * r2898003;
double r2898025 = -2.0;
double r2898026 = fma(r2898024, r2898025, r2898002);
double r2898027 = fma(r2898023, r2897998, r2898026);
double r2898028 = r2898000 * r2898027;
double r2898029 = r2898028 * r2897999;
double r2898030 = sqrt(r2898029);
double r2898031 = 1.1462142433560081e+262;
bool r2898032 = r2898016 <= r2898031;
double r2898033 = sqrt(r2898016);
double r2898034 = sqrt(r2897999);
double r2898035 = r2898003 / r2898020;
double r2898036 = r2898035 / r2898020;
double r2898037 = r2898012 - r2898000;
double r2898038 = r2898037 / r2898020;
double r2898039 = r2898038 * r2898009;
double r2898040 = r2897998 * r2898039;
double r2898041 = fma(r2898025, r2898024, r2898002);
double r2898042 = fma(r2898036, r2898040, r2898041);
double r2898043 = r2898000 * r2898042;
double r2898044 = sqrt(r2898043);
double r2898045 = r2898034 * r2898044;
double r2898046 = r2898032 ? r2898033 : r2898045;
double r2898047 = r2898018 ? r2898030 : r2898046;
return r2898047;
}



Bits error versus n



Bits error versus U



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus U*
if (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) < 1.092557959512387e-276Initial program 52.6
Simplified40.3
rmApplied *-un-lft-identity40.3
Applied add-cube-cbrt40.3
Applied times-frac40.3
Applied times-frac40.2
Applied associate-*l*38.4
Taylor expanded around 0 38.4
Simplified37.1
Taylor expanded around 0 38.6
if 1.092557959512387e-276 < (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) < 1.1462142433560081e+262Initial program 1.3
if 1.1462142433560081e+262 < (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) Initial program 57.2
Simplified56.7
rmApplied *-un-lft-identity56.7
Applied add-cube-cbrt56.7
Applied times-frac56.6
Applied times-frac56.5
Applied associate-*l*55.9
rmApplied sqrt-prod54.8
Simplified51.5
Final simplification28.6
herbie shell --seed 2019163 +o rules:numerics
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))))