\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}\;U \le 1.898225491734352941559357723090061820317 \cdot 10^{-94}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(U - U*\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(\left(n \cdot {\left(\sqrt[3]{\frac{\ell}{Om}} \cdot \sqrt[3]{\frac{\ell}{Om}}\right)}^{2}\right) \cdot {\left(\sqrt[3]{\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 r184206 = 2.0;
double r184207 = n;
double r184208 = r184206 * r184207;
double r184209 = U;
double r184210 = r184208 * r184209;
double r184211 = t;
double r184212 = l;
double r184213 = r184212 * r184212;
double r184214 = Om;
double r184215 = r184213 / r184214;
double r184216 = r184206 * r184215;
double r184217 = r184211 - r184216;
double r184218 = r184212 / r184214;
double r184219 = pow(r184218, r184206);
double r184220 = r184207 * r184219;
double r184221 = U_;
double r184222 = r184209 - r184221;
double r184223 = r184220 * r184222;
double r184224 = r184217 - r184223;
double r184225 = r184210 * r184224;
double r184226 = sqrt(r184225);
return r184226;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r184227 = U;
double r184228 = 1.898225491734353e-94;
bool r184229 = r184227 <= r184228;
double r184230 = 2.0;
double r184231 = n;
double r184232 = r184230 * r184231;
double r184233 = t;
double r184234 = l;
double r184235 = Om;
double r184236 = r184235 / r184234;
double r184237 = r184234 / r184236;
double r184238 = r184230 * r184237;
double r184239 = r184233 - r184238;
double r184240 = r184234 / r184235;
double r184241 = 2.0;
double r184242 = r184230 / r184241;
double r184243 = pow(r184240, r184242);
double r184244 = r184231 * r184243;
double r184245 = U_;
double r184246 = r184227 - r184245;
double r184247 = r184243 * r184246;
double r184248 = r184244 * r184247;
double r184249 = r184239 - r184248;
double r184250 = r184227 * r184249;
double r184251 = r184232 * r184250;
double r184252 = sqrt(r184251);
double r184253 = r184232 * r184227;
double r184254 = cbrt(r184240);
double r184255 = r184254 * r184254;
double r184256 = pow(r184255, r184230);
double r184257 = r184231 * r184256;
double r184258 = pow(r184254, r184230);
double r184259 = r184257 * r184258;
double r184260 = r184259 * r184246;
double r184261 = r184239 - r184260;
double r184262 = r184253 * r184261;
double r184263 = sqrt(r184262);
double r184264 = r184229 ? r184252 : r184263;
return r184264;
}



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 U < 1.898225491734353e-94Initial program 35.9
rmApplied associate-/l*33.3
rmApplied sqr-pow33.3
Applied associate-*r*32.4
rmApplied associate-*l*32.0
rmApplied associate-*l*30.4
if 1.898225491734353e-94 < U Initial program 31.0
rmApplied associate-/l*27.7
rmApplied add-cube-cbrt27.7
Applied unpow-prod-down27.7
Applied associate-*r*26.9
Final simplification29.4
herbie shell --seed 2019212
(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*))))))