\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 3.546451389182172 \cdot 10^{-302}:\\
\;\;\;\;\sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \mathsf{fma}\left(U* - U, \frac{\frac{\sqrt[3]{n} \cdot \sqrt[3]{n}}{\frac{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}{\frac{\sqrt[3]{n}}{\frac{\sqrt[3]{Om}}{\ell}}}}}{\frac{Om}{\ell}}, \mathsf{fma}\left(\frac{\ell}{\frac{Om}{\ell}}, -2, t\right)\right)\right)}\\
\mathbf{elif}\;t \le 5.193191025670422 \cdot 10^{-187}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(U* - U, \frac{\frac{n}{\frac{Om}{\ell}}}{\frac{Om}{\ell}}, \mathsf{fma}\left(\frac{\ell}{\frac{Om}{\ell}}, -2, t\right)\right)} \cdot \sqrt{\left(U \cdot 2\right) \cdot n}\\
\mathbf{elif}\;t \le 1.2796693870036841 \cdot 10^{+137}:\\
\;\;\;\;\sqrt{\left(\left(U \cdot 2\right) \cdot n\right) \cdot \mathsf{fma}\left(U* - U, \frac{\frac{\sqrt[3]{n} \cdot \sqrt[3]{n}}{\frac{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}{\frac{\sqrt[3]{n}}{\frac{\sqrt[3]{Om}}{\ell}}}}}{\frac{Om}{\ell}}, \mathsf{fma}\left(\frac{\ell}{\frac{Om}{\ell}}, -2, t\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(U* - U, \frac{\frac{n}{\frac{Om}{\ell}}}{\frac{Om}{\ell}}, \mathsf{fma}\left(\frac{\ell}{\frac{Om}{\ell}}, -2, t\right)\right)} \cdot \sqrt{\left(U \cdot 2\right) \cdot n}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r3045185 = 2.0;
double r3045186 = n;
double r3045187 = r3045185 * r3045186;
double r3045188 = U;
double r3045189 = r3045187 * r3045188;
double r3045190 = t;
double r3045191 = l;
double r3045192 = r3045191 * r3045191;
double r3045193 = Om;
double r3045194 = r3045192 / r3045193;
double r3045195 = r3045185 * r3045194;
double r3045196 = r3045190 - r3045195;
double r3045197 = r3045191 / r3045193;
double r3045198 = pow(r3045197, r3045185);
double r3045199 = r3045186 * r3045198;
double r3045200 = U_;
double r3045201 = r3045188 - r3045200;
double r3045202 = r3045199 * r3045201;
double r3045203 = r3045196 - r3045202;
double r3045204 = r3045189 * r3045203;
double r3045205 = sqrt(r3045204);
return r3045205;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r3045206 = t;
double r3045207 = 3.546451389182172e-302;
bool r3045208 = r3045206 <= r3045207;
double r3045209 = U;
double r3045210 = 2.0;
double r3045211 = r3045209 * r3045210;
double r3045212 = n;
double r3045213 = U_;
double r3045214 = r3045213 - r3045209;
double r3045215 = cbrt(r3045212);
double r3045216 = r3045215 * r3045215;
double r3045217 = Om;
double r3045218 = cbrt(r3045217);
double r3045219 = r3045218 * r3045218;
double r3045220 = l;
double r3045221 = r3045218 / r3045220;
double r3045222 = r3045215 / r3045221;
double r3045223 = r3045219 / r3045222;
double r3045224 = r3045216 / r3045223;
double r3045225 = r3045217 / r3045220;
double r3045226 = r3045224 / r3045225;
double r3045227 = r3045220 / r3045225;
double r3045228 = -2.0;
double r3045229 = fma(r3045227, r3045228, r3045206);
double r3045230 = fma(r3045214, r3045226, r3045229);
double r3045231 = r3045212 * r3045230;
double r3045232 = r3045211 * r3045231;
double r3045233 = sqrt(r3045232);
double r3045234 = 5.193191025670422e-187;
bool r3045235 = r3045206 <= r3045234;
double r3045236 = r3045212 / r3045225;
double r3045237 = r3045236 / r3045225;
double r3045238 = fma(r3045214, r3045237, r3045229);
double r3045239 = sqrt(r3045238);
double r3045240 = r3045211 * r3045212;
double r3045241 = sqrt(r3045240);
double r3045242 = r3045239 * r3045241;
double r3045243 = 1.2796693870036841e+137;
bool r3045244 = r3045206 <= r3045243;
double r3045245 = r3045240 * r3045230;
double r3045246 = sqrt(r3045245);
double r3045247 = r3045244 ? r3045246 : r3045242;
double r3045248 = r3045235 ? r3045242 : r3045247;
double r3045249 = r3045208 ? r3045233 : r3045248;
return r3045249;
}



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 < 3.546451389182172e-302Initial program 32.3
Simplified28.9
rmApplied associate-*r*28.8
rmApplied add-cube-cbrt28.9
Applied associate-/l*28.9
rmApplied *-un-lft-identity28.9
Applied add-cube-cbrt28.9
Applied times-frac28.9
Applied associate-/l*28.9
rmApplied associate-*l*29.0
Simplified29.0
if 3.546451389182172e-302 < t < 5.193191025670422e-187 or 1.2796693870036841e+137 < t Initial program 36.7
Simplified33.5
rmApplied associate-*r*33.0
rmApplied sqrt-prod27.0
if 5.193191025670422e-187 < t < 1.2796693870036841e+137Initial program 30.5
Simplified26.8
rmApplied associate-*r*27.2
rmApplied add-cube-cbrt27.3
Applied associate-/l*27.3
rmApplied *-un-lft-identity27.3
Applied add-cube-cbrt27.3
Applied times-frac27.3
Applied associate-/l*27.3
Final simplification28.1
herbie shell --seed 2019151 +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*))))))