\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 -8.0110620477323 \cdot 10^{-311}:\\
\;\;\;\;\sqrt{\left(n \cdot \mathsf{fma}\left(-2, \frac{\ell}{\frac{Om}{\ell}}, t\right)\right) \cdot \left(2 \cdot U\right) + \left(\left(U* - U\right) \cdot \frac{\ell \cdot n}{Om}\right) \cdot \left(\left(2 \cdot U\right) \cdot \frac{\ell \cdot n}{Om}\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(U* - U, \frac{\frac{n}{\frac{Om}{\ell}}}{\frac{Om}{\ell}}, \mathsf{fma}\left(-2, \frac{\ell}{\frac{Om}{\ell}}, t\right)\right) \cdot n} \cdot \sqrt{2 \cdot U}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r1550719 = 2.0;
double r1550720 = n;
double r1550721 = r1550719 * r1550720;
double r1550722 = U;
double r1550723 = r1550721 * r1550722;
double r1550724 = t;
double r1550725 = l;
double r1550726 = r1550725 * r1550725;
double r1550727 = Om;
double r1550728 = r1550726 / r1550727;
double r1550729 = r1550719 * r1550728;
double r1550730 = r1550724 - r1550729;
double r1550731 = r1550725 / r1550727;
double r1550732 = pow(r1550731, r1550719);
double r1550733 = r1550720 * r1550732;
double r1550734 = U_;
double r1550735 = r1550722 - r1550734;
double r1550736 = r1550733 * r1550735;
double r1550737 = r1550730 - r1550736;
double r1550738 = r1550723 * r1550737;
double r1550739 = sqrt(r1550738);
return r1550739;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r1550740 = U;
double r1550741 = -8.0110620477323e-311;
bool r1550742 = r1550740 <= r1550741;
double r1550743 = n;
double r1550744 = -2.0;
double r1550745 = l;
double r1550746 = Om;
double r1550747 = r1550746 / r1550745;
double r1550748 = r1550745 / r1550747;
double r1550749 = t;
double r1550750 = fma(r1550744, r1550748, r1550749);
double r1550751 = r1550743 * r1550750;
double r1550752 = 2.0;
double r1550753 = r1550752 * r1550740;
double r1550754 = r1550751 * r1550753;
double r1550755 = U_;
double r1550756 = r1550755 - r1550740;
double r1550757 = r1550745 * r1550743;
double r1550758 = r1550757 / r1550746;
double r1550759 = r1550756 * r1550758;
double r1550760 = r1550753 * r1550758;
double r1550761 = r1550759 * r1550760;
double r1550762 = r1550754 + r1550761;
double r1550763 = sqrt(r1550762);
double r1550764 = r1550743 / r1550747;
double r1550765 = r1550764 / r1550747;
double r1550766 = fma(r1550756, r1550765, r1550750);
double r1550767 = r1550766 * r1550743;
double r1550768 = sqrt(r1550767);
double r1550769 = sqrt(r1550753);
double r1550770 = r1550768 * r1550769;
double r1550771 = r1550742 ? r1550763 : r1550770;
return r1550771;
}



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 U < -8.0110620477323e-311Initial program 32.9
Simplified28.7
rmApplied fma-udef28.7
Applied distribute-rgt-in28.7
Simplified28.5
rmApplied associate-*r*27.6
rmApplied associate-/r/28.0
rmApplied distribute-lft-in28.0
Simplified27.5
if -8.0110620477323e-311 < U Initial program 32.6
Simplified28.7
rmApplied sqrt-prod22.3
Final simplification24.9
herbie shell --seed 2019141 +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*))))))