\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 -9.628340007082016 \cdot 10^{+98}:\\
\;\;\;\;\sqrt{\left(2 \cdot \left(t - \left(\ell \cdot 2 - \left(U* - U\right) \cdot \left(\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{Om} \cdot \left(n \cdot \sqrt[3]{\ell}\right)\right)\right) \cdot \frac{\ell}{Om}\right)\right) \cdot \left(U \cdot n\right)}\\
\mathbf{elif}\;t \le -3.53602214243969 \cdot 10^{-141}:\\
\;\;\;\;\sqrt{\left(\left(\left(t - \frac{\ell}{Om} \cdot \left(\ell \cdot 2 - \left(U* - U\right) \cdot \frac{\ell}{\frac{Om}{n}}\right)\right) \cdot 2\right) \cdot n\right) \cdot U}\\
\mathbf{elif}\;t \le 2.785571487674592 \cdot 10^{-297}:\\
\;\;\;\;\sqrt{\left(2 \cdot \left(t - \left(\ell \cdot 2 - \left(U* - U\right) \cdot \left(\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{Om} \cdot \left(n \cdot \sqrt[3]{\ell}\right)\right)\right) \cdot \frac{\ell}{Om}\right)\right) \cdot \left(U \cdot n\right)}\\
\mathbf{elif}\;t \le 1.4584076396504196 \cdot 10^{+115}:\\
\;\;\;\;\sqrt{\left(\left(\left(t - \frac{\ell}{Om} \cdot \left(\ell \cdot 2 - \left(U* - U\right) \cdot \frac{\ell}{\frac{Om}{n}}\right)\right) \cdot 2\right) \cdot n\right) \cdot U}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{U \cdot n} \cdot \sqrt{2 \cdot \left(t - \left(\ell \cdot 2 - \frac{\frac{\ell}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}}{\frac{\sqrt[3]{Om}}{n}} \cdot \left(U* - U\right)\right) \cdot \frac{\ell}{Om}\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r3612795 = 2.0;
double r3612796 = n;
double r3612797 = r3612795 * r3612796;
double r3612798 = U;
double r3612799 = r3612797 * r3612798;
double r3612800 = t;
double r3612801 = l;
double r3612802 = r3612801 * r3612801;
double r3612803 = Om;
double r3612804 = r3612802 / r3612803;
double r3612805 = r3612795 * r3612804;
double r3612806 = r3612800 - r3612805;
double r3612807 = r3612801 / r3612803;
double r3612808 = pow(r3612807, r3612795);
double r3612809 = r3612796 * r3612808;
double r3612810 = U_;
double r3612811 = r3612798 - r3612810;
double r3612812 = r3612809 * r3612811;
double r3612813 = r3612806 - r3612812;
double r3612814 = r3612799 * r3612813;
double r3612815 = sqrt(r3612814);
return r3612815;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r3612816 = t;
double r3612817 = -9.628340007082016e+98;
bool r3612818 = r3612816 <= r3612817;
double r3612819 = 2.0;
double r3612820 = l;
double r3612821 = r3612820 * r3612819;
double r3612822 = U_;
double r3612823 = U;
double r3612824 = r3612822 - r3612823;
double r3612825 = cbrt(r3612820);
double r3612826 = r3612825 * r3612825;
double r3612827 = Om;
double r3612828 = r3612826 / r3612827;
double r3612829 = n;
double r3612830 = r3612829 * r3612825;
double r3612831 = r3612828 * r3612830;
double r3612832 = r3612824 * r3612831;
double r3612833 = r3612821 - r3612832;
double r3612834 = r3612820 / r3612827;
double r3612835 = r3612833 * r3612834;
double r3612836 = r3612816 - r3612835;
double r3612837 = r3612819 * r3612836;
double r3612838 = r3612823 * r3612829;
double r3612839 = r3612837 * r3612838;
double r3612840 = sqrt(r3612839);
double r3612841 = -3.53602214243969e-141;
bool r3612842 = r3612816 <= r3612841;
double r3612843 = r3612827 / r3612829;
double r3612844 = r3612820 / r3612843;
double r3612845 = r3612824 * r3612844;
double r3612846 = r3612821 - r3612845;
double r3612847 = r3612834 * r3612846;
double r3612848 = r3612816 - r3612847;
double r3612849 = r3612848 * r3612819;
double r3612850 = r3612849 * r3612829;
double r3612851 = r3612850 * r3612823;
double r3612852 = sqrt(r3612851);
double r3612853 = 2.785571487674592e-297;
bool r3612854 = r3612816 <= r3612853;
double r3612855 = 1.4584076396504196e+115;
bool r3612856 = r3612816 <= r3612855;
double r3612857 = sqrt(r3612838);
double r3612858 = cbrt(r3612827);
double r3612859 = r3612858 * r3612858;
double r3612860 = r3612820 / r3612859;
double r3612861 = r3612858 / r3612829;
double r3612862 = r3612860 / r3612861;
double r3612863 = r3612862 * r3612824;
double r3612864 = r3612821 - r3612863;
double r3612865 = r3612864 * r3612834;
double r3612866 = r3612816 - r3612865;
double r3612867 = r3612819 * r3612866;
double r3612868 = sqrt(r3612867);
double r3612869 = r3612857 * r3612868;
double r3612870 = r3612856 ? r3612852 : r3612869;
double r3612871 = r3612854 ? r3612840 : r3612870;
double r3612872 = r3612842 ? r3612852 : r3612871;
double r3612873 = r3612818 ? r3612840 : r3612872;
return r3612873;
}



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 t < -9.628340007082016e+98 or -3.53602214243969e-141 < t < 2.785571487674592e-297Initial program 35.0
Simplified31.5
rmApplied div-inv31.5
Applied add-cube-cbrt31.5
Applied times-frac31.3
Simplified31.3
if -9.628340007082016e+98 < t < -3.53602214243969e-141 or 2.785571487674592e-297 < t < 1.4584076396504196e+115Initial program 31.6
Simplified28.3
rmApplied associate-*l*28.0
if 1.4584076396504196e+115 < t Initial program 35.0
Simplified31.8
rmApplied *-un-lft-identity31.8
Applied add-cube-cbrt31.8
Applied times-frac31.8
Applied associate-/r*31.6
Simplified31.6
rmApplied sqrt-prod22.9
Final simplification28.2
herbie shell --seed 2019149
(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*))))))