\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.77082420255664932142459979130796319176 \cdot 10^{-147}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot \left(U \cdot \left(\sqrt[3]{t - \mathsf{fma}\left(2, \ell \cdot \frac{\ell}{Om}, \left({\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)} \cdot n\right) \cdot \left(U - U*\right)\right)} \cdot \sqrt[3]{t - \mathsf{fma}\left(2, \ell \cdot \frac{\ell}{Om}, \left({\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)} \cdot n\right) \cdot \left(U - U*\right)\right)}\right)\right)\right) \cdot \sqrt[3]{\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right)}}\\
\mathbf{elif}\;t \le 3.19389681298425902451773616259157226606 \cdot 10^{84}:\\
\;\;\;\;\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(\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)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{t - \mathsf{fma}\left(\ell, \frac{\ell}{Om} \cdot 2, \left(U - U*\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r203180 = 2.0;
double r203181 = n;
double r203182 = r203180 * r203181;
double r203183 = U;
double r203184 = r203182 * r203183;
double r203185 = t;
double r203186 = l;
double r203187 = r203186 * r203186;
double r203188 = Om;
double r203189 = r203187 / r203188;
double r203190 = r203180 * r203189;
double r203191 = r203185 - r203190;
double r203192 = r203186 / r203188;
double r203193 = pow(r203192, r203180);
double r203194 = r203181 * r203193;
double r203195 = U_;
double r203196 = r203183 - r203195;
double r203197 = r203194 * r203196;
double r203198 = r203191 - r203197;
double r203199 = r203184 * r203198;
double r203200 = sqrt(r203199);
return r203200;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r203201 = t;
double r203202 = -1.7708242025566493e-147;
bool r203203 = r203201 <= r203202;
double r203204 = 2.0;
double r203205 = n;
double r203206 = r203204 * r203205;
double r203207 = U;
double r203208 = l;
double r203209 = Om;
double r203210 = r203208 / r203209;
double r203211 = r203208 * r203210;
double r203212 = 2.0;
double r203213 = r203204 / r203212;
double r203214 = r203212 * r203213;
double r203215 = pow(r203210, r203214);
double r203216 = r203215 * r203205;
double r203217 = U_;
double r203218 = r203207 - r203217;
double r203219 = r203216 * r203218;
double r203220 = fma(r203204, r203211, r203219);
double r203221 = r203201 - r203220;
double r203222 = cbrt(r203221);
double r203223 = r203222 * r203222;
double r203224 = r203207 * r203223;
double r203225 = r203206 * r203224;
double r203226 = r203204 * r203211;
double r203227 = r203201 - r203226;
double r203228 = pow(r203210, r203213);
double r203229 = r203205 * r203228;
double r203230 = r203218 * r203228;
double r203231 = r203229 * r203230;
double r203232 = r203227 - r203231;
double r203233 = cbrt(r203232);
double r203234 = r203225 * r203233;
double r203235 = sqrt(r203234);
double r203236 = 3.193896812984259e+84;
bool r203237 = r203201 <= r203236;
double r203238 = r203206 * r203207;
double r203239 = r203229 * r203228;
double r203240 = r203239 * r203218;
double r203241 = r203227 - r203240;
double r203242 = r203238 * r203241;
double r203243 = sqrt(r203242);
double r203244 = sqrt(r203238);
double r203245 = r203210 * r203204;
double r203246 = pow(r203210, r203204);
double r203247 = r203205 * r203246;
double r203248 = r203218 * r203247;
double r203249 = fma(r203208, r203245, r203248);
double r203250 = r203201 - r203249;
double r203251 = sqrt(r203250);
double r203252 = r203244 * r203251;
double r203253 = r203237 ? r203243 : r203252;
double r203254 = r203203 ? r203235 : r203253;
return r203254;
}



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 t < -1.7708242025566493e-147Initial program 33.8
rmApplied *-un-lft-identity33.8
Applied times-frac30.6
Simplified30.6
rmApplied sqr-pow30.6
Applied associate-*r*30.0
rmApplied associate-*l*30.1
Simplified30.1
rmApplied add-cube-cbrt30.4
Applied associate-*r*30.4
Simplified30.2
if -1.7708242025566493e-147 < t < 3.193896812984259e+84Initial program 35.0
rmApplied *-un-lft-identity35.0
Applied times-frac32.3
Simplified32.3
rmApplied sqr-pow32.3
Applied associate-*r*31.2
if 3.193896812984259e+84 < t Initial program 36.8
rmApplied *-un-lft-identity36.8
Applied times-frac34.2
Simplified34.2
rmApplied sqrt-prod25.7
Simplified25.7
Final simplification29.7
herbie shell --seed 2019323 +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*))))))