\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 7.586071649758195 \cdot 10^{-274}:\\
\;\;\;\;\left|\sqrt[3]{U}\right| \cdot \sqrt{\left(n \cdot \left(t - \frac{\ell}{Om} \cdot \mathsf{fma}\left(\ell, 2, n \cdot \left(\left(U - U*\right) \cdot \frac{\ell}{Om}\right)\right)\right)\right) \cdot \left(2 \cdot \sqrt[3]{U}\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt{\left(2 \cdot \sqrt[3]{U}\right) \cdot \left(t - \frac{\ell}{Om} \cdot \mathsf{fma}\left(\ell, 2, n \cdot \left(\left(U - U*\right) \cdot \frac{\ell}{Om}\right)\right)\right)} \cdot \sqrt{n}\right) \cdot \left|\sqrt[3]{U}\right|\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r2252971 = 2.0;
double r2252972 = n;
double r2252973 = r2252971 * r2252972;
double r2252974 = U;
double r2252975 = r2252973 * r2252974;
double r2252976 = t;
double r2252977 = l;
double r2252978 = r2252977 * r2252977;
double r2252979 = Om;
double r2252980 = r2252978 / r2252979;
double r2252981 = r2252971 * r2252980;
double r2252982 = r2252976 - r2252981;
double r2252983 = r2252977 / r2252979;
double r2252984 = pow(r2252983, r2252971);
double r2252985 = r2252972 * r2252984;
double r2252986 = U_;
double r2252987 = r2252974 - r2252986;
double r2252988 = r2252985 * r2252987;
double r2252989 = r2252982 - r2252988;
double r2252990 = r2252975 * r2252989;
double r2252991 = sqrt(r2252990);
return r2252991;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r2252992 = n;
double r2252993 = 7.586071649758195e-274;
bool r2252994 = r2252992 <= r2252993;
double r2252995 = U;
double r2252996 = cbrt(r2252995);
double r2252997 = fabs(r2252996);
double r2252998 = t;
double r2252999 = l;
double r2253000 = Om;
double r2253001 = r2252999 / r2253000;
double r2253002 = 2.0;
double r2253003 = U_;
double r2253004 = r2252995 - r2253003;
double r2253005 = r2253004 * r2253001;
double r2253006 = r2252992 * r2253005;
double r2253007 = fma(r2252999, r2253002, r2253006);
double r2253008 = r2253001 * r2253007;
double r2253009 = r2252998 - r2253008;
double r2253010 = r2252992 * r2253009;
double r2253011 = r2253002 * r2252996;
double r2253012 = r2253010 * r2253011;
double r2253013 = sqrt(r2253012);
double r2253014 = r2252997 * r2253013;
double r2253015 = r2253011 * r2253009;
double r2253016 = sqrt(r2253015);
double r2253017 = sqrt(r2252992);
double r2253018 = r2253016 * r2253017;
double r2253019 = r2253018 * r2252997;
double r2253020 = r2252994 ? r2253014 : r2253019;
return r2253020;
}



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 n < 7.586071649758195e-274Initial program 33.7
Simplified30.8
rmApplied add-cube-cbrt31.1
Applied associate-*l*31.1
Simplified29.2
rmApplied sqrt-prod24.3
Simplified24.3
Simplified25.0
rmApplied associate-*l*25.1
if 7.586071649758195e-274 < n Initial program 32.2
Simplified30.8
rmApplied add-cube-cbrt31.1
Applied associate-*l*31.1
Simplified29.1
rmApplied sqrt-prod23.9
Simplified23.9
Simplified23.8
rmApplied sqrt-prod15.8
Final simplification20.9
herbie shell --seed 2019134 +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*))))))