\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 -4.579846573878255 \cdot 10^{170}:\\
\;\;\;\;\sqrt{{\left(\left(2 \cdot n\right) \cdot U\right)}^{1}} \cdot \sqrt{\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(U - U*\right)}\\
\mathbf{elif}\;n \le -2.43483406640624893 \cdot 10^{-133}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(t - \left(2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right) - \left(-\left(U - U*\right)\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)\right)\right)\right)}\\
\mathbf{elif}\;n \le -7.5230561421544092 \cdot 10^{-159}:\\
\;\;\;\;\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\right)}\\
\mathbf{elif}\;n \le 1.8079991333180533 \cdot 10^{-150}:\\
\;\;\;\;\sqrt{{\left(\left(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right) - \left(-\left(U - U*\right)\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)\right)\right)\right) \cdot U\right)}^{1}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(t - \left(2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right) - \left(-\left(U - U*\right)\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)\right)\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r172918 = 2.0;
double r172919 = n;
double r172920 = r172918 * r172919;
double r172921 = U;
double r172922 = r172920 * r172921;
double r172923 = t;
double r172924 = l;
double r172925 = r172924 * r172924;
double r172926 = Om;
double r172927 = r172925 / r172926;
double r172928 = r172918 * r172927;
double r172929 = r172923 - r172928;
double r172930 = r172924 / r172926;
double r172931 = pow(r172930, r172918);
double r172932 = r172919 * r172931;
double r172933 = U_;
double r172934 = r172921 - r172933;
double r172935 = r172932 * r172934;
double r172936 = r172929 - r172935;
double r172937 = r172922 * r172936;
double r172938 = sqrt(r172937);
return r172938;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r172939 = n;
double r172940 = -4.5798465738782547e+170;
bool r172941 = r172939 <= r172940;
double r172942 = 2.0;
double r172943 = r172942 * r172939;
double r172944 = U;
double r172945 = r172943 * r172944;
double r172946 = 1.0;
double r172947 = pow(r172945, r172946);
double r172948 = sqrt(r172947);
double r172949 = t;
double r172950 = l;
double r172951 = Om;
double r172952 = r172950 / r172951;
double r172953 = r172950 * r172952;
double r172954 = r172942 * r172953;
double r172955 = r172949 - r172954;
double r172956 = 2.0;
double r172957 = r172942 / r172956;
double r172958 = pow(r172952, r172957);
double r172959 = r172939 * r172958;
double r172960 = r172959 * r172958;
double r172961 = U_;
double r172962 = r172944 - r172961;
double r172963 = r172960 * r172962;
double r172964 = r172955 - r172963;
double r172965 = sqrt(r172964);
double r172966 = r172948 * r172965;
double r172967 = -2.434834066406249e-133;
bool r172968 = r172939 <= r172967;
double r172969 = -r172962;
double r172970 = r172956 * r172957;
double r172971 = pow(r172952, r172970);
double r172972 = r172939 * r172971;
double r172973 = r172969 * r172972;
double r172974 = r172954 - r172973;
double r172975 = r172949 - r172974;
double r172976 = r172944 * r172975;
double r172977 = r172943 * r172976;
double r172978 = sqrt(r172977);
double r172979 = -7.523056142154409e-159;
bool r172980 = r172939 <= r172979;
double r172981 = 0.0;
double r172982 = r172955 - r172981;
double r172983 = r172945 * r172982;
double r172984 = sqrt(r172983);
double r172985 = 1.8079991333180533e-150;
bool r172986 = r172939 <= r172985;
double r172987 = r172943 * r172975;
double r172988 = r172987 * r172944;
double r172989 = pow(r172988, r172946);
double r172990 = sqrt(r172989);
double r172991 = r172986 ? r172990 : r172978;
double r172992 = r172980 ? r172984 : r172991;
double r172993 = r172968 ? r172978 : r172992;
double r172994 = r172941 ? r172966 : r172993;
return r172994;
}



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 < -4.5798465738782547e+170Initial program 39.0
rmApplied *-un-lft-identity39.0
Applied times-frac38.0
Simplified38.0
rmApplied sqr-pow38.0
Applied associate-*r*35.8
rmApplied pow135.8
rmApplied unpow-prod-down35.8
Applied sqrt-prod46.0
Simplified46.0
if -4.5798465738782547e+170 < n < -2.434834066406249e-133 or 1.8079991333180533e-150 < n Initial program 31.3
rmApplied *-un-lft-identity31.3
Applied times-frac28.4
Simplified28.4
rmApplied sqr-pow28.4
Applied associate-*r*27.5
rmApplied associate-*l*27.8
Simplified28.7
if -2.434834066406249e-133 < n < -7.523056142154409e-159Initial program 31.9
rmApplied *-un-lft-identity31.9
Applied times-frac29.0
Simplified29.0
Taylor expanded around 0 30.3
if -7.523056142154409e-159 < n < 1.8079991333180533e-150Initial program 39.7
rmApplied *-un-lft-identity39.7
Applied times-frac37.0
Simplified37.0
rmApplied sqr-pow37.0
Applied associate-*r*36.3
rmApplied pow136.3
Applied pow136.3
Applied pow136.3
Applied pow136.3
Applied pow-prod-down36.3
Applied pow-prod-down36.3
Applied pow-prod-down36.3
Simplified31.1
Final simplification30.8
herbie shell --seed 2020056 +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*))))))