\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}\;n \le -1.91270443068564746 \cdot 10^{-246}:\\
\;\;\;\;\sqrt{\left(\sqrt[3]{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)} \cdot \left(\sqrt[3]{2 \cdot n} \cdot \sqrt[3]{U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\right)\right) \cdot \sqrt[3]{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}}\\
\mathbf{elif}\;n \le 3.330205482825987 \cdot 10^{-310}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - 0 \cdot \left(U - U*\right)\right)}\\
\mathbf{elif}\;n \le 1.68257617556966304 \cdot 10^{-213} \lor \neg \left(n \le 2.6216984634922021 \cdot 10^{-91}\right):\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}} \cdot \sqrt{\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r184947 = 2.0;
double r184948 = n;
double r184949 = r184947 * r184948;
double r184950 = U;
double r184951 = r184949 * r184950;
double r184952 = t;
double r184953 = l;
double r184954 = r184953 * r184953;
double r184955 = Om;
double r184956 = r184954 / r184955;
double r184957 = r184947 * r184956;
double r184958 = r184952 - r184957;
double r184959 = r184953 / r184955;
double r184960 = pow(r184959, r184947);
double r184961 = r184948 * r184960;
double r184962 = U_;
double r184963 = r184950 - r184962;
double r184964 = r184961 * r184963;
double r184965 = r184958 - r184964;
double r184966 = r184951 * r184965;
double r184967 = sqrt(r184966);
return r184967;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r184968 = n;
double r184969 = -1.9127044306856475e-246;
bool r184970 = r184968 <= r184969;
double r184971 = 2.0;
double r184972 = r184971 * r184968;
double r184973 = U;
double r184974 = t;
double r184975 = l;
double r184976 = Om;
double r184977 = r184975 / r184976;
double r184978 = r184975 * r184977;
double r184979 = r184971 * r184978;
double r184980 = r184974 - r184979;
double r184981 = pow(r184977, r184971);
double r184982 = r184968 * r184981;
double r184983 = U_;
double r184984 = r184973 - r184983;
double r184985 = r184982 * r184984;
double r184986 = r184980 - r184985;
double r184987 = r184973 * r184986;
double r184988 = r184972 * r184987;
double r184989 = cbrt(r184988);
double r184990 = cbrt(r184972);
double r184991 = cbrt(r184987);
double r184992 = r184990 * r184991;
double r184993 = r184989 * r184992;
double r184994 = r184993 * r184989;
double r184995 = sqrt(r184994);
double r184996 = 3.330205482826e-310;
bool r184997 = r184968 <= r184996;
double r184998 = r184972 * r184973;
double r184999 = 0.0;
double r185000 = r184999 * r184984;
double r185001 = r184980 - r185000;
double r185002 = r184998 * r185001;
double r185003 = sqrt(r185002);
double r185004 = 1.682576175569663e-213;
bool r185005 = r184968 <= r185004;
double r185006 = 2.621698463492202e-91;
bool r185007 = r184968 <= r185006;
double r185008 = !r185007;
bool r185009 = r185005 || r185008;
double r185010 = sqrt(r184972);
double r185011 = sqrt(r184987);
double r185012 = r185010 * r185011;
double r185013 = r184998 * r184986;
double r185014 = sqrt(r185013);
double r185015 = sqrt(r185014);
double r185016 = r185015 * r185015;
double r185017 = r185009 ? r185012 : r185016;
double r185018 = r184997 ? r185003 : r185017;
double r185019 = r184970 ? r184995 : r185018;
return r185019;
}



Bits error versus n



Bits error versus U



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus U*
Results
if n < -1.9127044306856475e-246Initial program 34.3
rmApplied *-un-lft-identity34.3
Applied times-frac31.7
Simplified31.7
rmApplied associate-*l*31.8
rmApplied add-cube-cbrt32.1
rmApplied cbrt-prod32.1
if -1.9127044306856475e-246 < n < 3.330205482826e-310Initial program 40.8
rmApplied *-un-lft-identity40.8
Applied times-frac38.0
Simplified38.0
Taylor expanded around 0 37.2
if 3.330205482826e-310 < n < 1.682576175569663e-213 or 2.621698463492202e-91 < n Initial program 34.4
rmApplied *-un-lft-identity34.4
Applied times-frac31.9
Simplified31.9
rmApplied associate-*l*31.9
rmApplied sqrt-prod23.9
if 1.682576175569663e-213 < n < 2.621698463492202e-91Initial program 35.3
rmApplied *-un-lft-identity35.3
Applied times-frac32.9
Simplified32.9
rmApplied add-sqr-sqrt33.1
Final simplification29.4
herbie shell --seed 2019199
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))