\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 1.045516202577843853923853185368686409598 \cdot 10^{-37}:\\
\;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(n \cdot \left(U - U*\right)\right)\right) + n \cdot \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot \left(U* + \left(-U*\right)\right)\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \cdot \sqrt{\left(2 \cdot n\right) \cdot U}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r108637 = 2.0;
double r108638 = n;
double r108639 = r108637 * r108638;
double r108640 = U;
double r108641 = r108639 * r108640;
double r108642 = t;
double r108643 = l;
double r108644 = r108643 * r108643;
double r108645 = Om;
double r108646 = r108644 / r108645;
double r108647 = r108637 * r108646;
double r108648 = r108642 - r108647;
double r108649 = r108643 / r108645;
double r108650 = pow(r108649, r108637);
double r108651 = r108638 * r108650;
double r108652 = U_;
double r108653 = r108640 - r108652;
double r108654 = r108651 * r108653;
double r108655 = r108648 - r108654;
double r108656 = r108641 * r108655;
double r108657 = sqrt(r108656);
return r108657;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r108658 = t;
double r108659 = 1.0455162025778439e-37;
bool r108660 = r108658 <= r108659;
double r108661 = 2.0;
double r108662 = l;
double r108663 = Om;
double r108664 = r108663 / r108662;
double r108665 = r108662 / r108664;
double r108666 = r108662 / r108663;
double r108667 = 2.0;
double r108668 = r108661 / r108667;
double r108669 = pow(r108666, r108668);
double r108670 = n;
double r108671 = U;
double r108672 = U_;
double r108673 = r108671 - r108672;
double r108674 = r108670 * r108673;
double r108675 = r108669 * r108674;
double r108676 = r108669 * r108675;
double r108677 = pow(r108666, r108661);
double r108678 = -r108672;
double r108679 = r108672 + r108678;
double r108680 = r108677 * r108679;
double r108681 = r108670 * r108680;
double r108682 = r108676 + r108681;
double r108683 = fma(r108661, r108665, r108682);
double r108684 = r108658 - r108683;
double r108685 = r108661 * r108670;
double r108686 = r108685 * r108671;
double r108687 = r108684 * r108686;
double r108688 = sqrt(r108687);
double r108689 = r108670 * r108677;
double r108690 = r108689 * r108673;
double r108691 = fma(r108661, r108665, r108690);
double r108692 = r108658 - r108691;
double r108693 = sqrt(r108692);
double r108694 = sqrt(r108686);
double r108695 = r108693 * r108694;
double r108696 = r108660 ? r108688 : r108695;
return r108696;
}



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 < 1.0455162025778439e-37Initial program 34.2
Simplified34.2
rmApplied associate-/l*31.3
rmApplied add-cube-cbrt31.3
Applied add-sqr-sqrt47.9
Applied prod-diff47.9
Applied distribute-lft-in47.9
Simplified32.9
Simplified32.7
rmApplied sqr-pow32.7
Applied associate-*l*32.5
if 1.0455162025778439e-37 < t Initial program 32.7
Simplified32.7
rmApplied associate-/l*30.0
rmApplied sqrt-prod26.0
Final simplification30.6
herbie shell --seed 2019209 +o rules:numerics
(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*))))))