\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 -8.419437228522636679217683308706909883767 \cdot 10^{-4} \lor n \le -3.88758576516516698363399032912355760136 \cdot 10^{-308}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - n \cdot \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot \left(U - U*\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(\sqrt[3]{U - U*} \cdot \sqrt[3]{U - U*}\right)\right) \cdot \sqrt[3]{U - U*}\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r192190 = 2.0;
double r192191 = n;
double r192192 = r192190 * r192191;
double r192193 = U;
double r192194 = r192192 * r192193;
double r192195 = t;
double r192196 = l;
double r192197 = r192196 * r192196;
double r192198 = Om;
double r192199 = r192197 / r192198;
double r192200 = r192190 * r192199;
double r192201 = r192195 - r192200;
double r192202 = r192196 / r192198;
double r192203 = pow(r192202, r192190);
double r192204 = r192191 * r192203;
double r192205 = U_;
double r192206 = r192193 - r192205;
double r192207 = r192204 * r192206;
double r192208 = r192201 - r192207;
double r192209 = r192194 * r192208;
double r192210 = sqrt(r192209);
return r192210;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r192211 = n;
double r192212 = -0.0008419437228522637;
bool r192213 = r192211 <= r192212;
double r192214 = -3.887585765165167e-308;
bool r192215 = r192211 <= r192214;
bool r192216 = r192213 || r192215;
double r192217 = 2.0;
double r192218 = r192217 * r192211;
double r192219 = U;
double r192220 = t;
double r192221 = l;
double r192222 = Om;
double r192223 = r192222 / r192221;
double r192224 = r192221 / r192223;
double r192225 = r192217 * r192224;
double r192226 = r192220 - r192225;
double r192227 = r192221 / r192222;
double r192228 = pow(r192227, r192217);
double r192229 = U_;
double r192230 = r192219 - r192229;
double r192231 = r192228 * r192230;
double r192232 = r192211 * r192231;
double r192233 = r192226 - r192232;
double r192234 = r192219 * r192233;
double r192235 = r192218 * r192234;
double r192236 = sqrt(r192235);
double r192237 = sqrt(r192218);
double r192238 = r192211 * r192228;
double r192239 = cbrt(r192230);
double r192240 = r192239 * r192239;
double r192241 = r192238 * r192240;
double r192242 = r192241 * r192239;
double r192243 = r192226 - r192242;
double r192244 = r192219 * r192243;
double r192245 = sqrt(r192244);
double r192246 = r192237 * r192245;
double r192247 = r192216 ? r192236 : r192246;
return r192247;
}



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 < -0.0008419437228522637Initial program 32.5
rmApplied associate-/l*30.5
rmApplied associate-*l*31.6
rmApplied associate-*l*30.9
if -0.0008419437228522637 < n < -3.887585765165167e-308Initial program 35.6
rmApplied associate-/l*32.5
rmApplied associate-*l*32.5
rmApplied add-cube-cbrt32.5
Applied associate-*r*32.5
rmApplied pow132.5
Applied pow132.5
Applied pow-prod-down32.5
Applied pow132.5
Applied pow132.5
Applied pow-prod-down32.5
Applied pow-prod-down32.5
Simplified29.6
if -3.887585765165167e-308 < n Initial program 34.7
rmApplied associate-/l*31.8
rmApplied associate-*l*32.5
rmApplied add-cube-cbrt32.5
Applied associate-*r*32.5
rmApplied sqrt-prod24.8
Final simplification28.7
herbie shell --seed 2019308
(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*))))))