\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 r2457167 = 2.0;
double r2457168 = n;
double r2457169 = r2457167 * r2457168;
double r2457170 = U;
double r2457171 = r2457169 * r2457170;
double r2457172 = t;
double r2457173 = l;
double r2457174 = r2457173 * r2457173;
double r2457175 = Om;
double r2457176 = r2457174 / r2457175;
double r2457177 = r2457167 * r2457176;
double r2457178 = r2457172 - r2457177;
double r2457179 = r2457173 / r2457175;
double r2457180 = pow(r2457179, r2457167);
double r2457181 = r2457168 * r2457180;
double r2457182 = U_;
double r2457183 = r2457170 - r2457182;
double r2457184 = r2457181 * r2457183;
double r2457185 = r2457178 - r2457184;
double r2457186 = r2457171 * r2457185;
double r2457187 = sqrt(r2457186);
return r2457187;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r2457188 = t;
double r2457189 = 3.546451389182172e-302;
bool r2457190 = r2457188 <= r2457189;
double r2457191 = U;
double r2457192 = 2.0;
double r2457193 = r2457191 * r2457192;
double r2457194 = n;
double r2457195 = U_;
double r2457196 = r2457195 - r2457191;
double r2457197 = cbrt(r2457194);
double r2457198 = r2457197 * r2457197;
double r2457199 = Om;
double r2457200 = cbrt(r2457199);
double r2457201 = r2457200 * r2457200;
double r2457202 = l;
double r2457203 = r2457200 / r2457202;
double r2457204 = r2457197 / r2457203;
double r2457205 = r2457201 / r2457204;
double r2457206 = r2457198 / r2457205;
double r2457207 = r2457199 / r2457202;
double r2457208 = r2457206 / r2457207;
double r2457209 = r2457202 / r2457207;
double r2457210 = -2.0;
double r2457211 = fma(r2457209, r2457210, r2457188);
double r2457212 = fma(r2457196, r2457208, r2457211);
double r2457213 = r2457194 * r2457212;
double r2457214 = r2457193 * r2457213;
double r2457215 = sqrt(r2457214);
double r2457216 = 5.193191025670422e-187;
bool r2457217 = r2457188 <= r2457216;
double r2457218 = r2457194 / r2457207;
double r2457219 = r2457218 / r2457207;
double r2457220 = fma(r2457196, r2457219, r2457211);
double r2457221 = sqrt(r2457220);
double r2457222 = r2457193 * r2457194;
double r2457223 = sqrt(r2457222);
double r2457224 = r2457221 * r2457223;
double r2457225 = 1.2796693870036841e+137;
bool r2457226 = r2457188 <= r2457225;
double r2457227 = r2457222 * r2457212;
double r2457228 = sqrt(r2457227);
double r2457229 = r2457226 ? r2457228 : r2457224;
double r2457230 = r2457217 ? r2457224 : r2457229;
double r2457231 = r2457190 ? r2457215 : r2457230;
return r2457231;
}



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*))))))