\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 -2.56376693799834257 \cdot 10^{-130}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(\sqrt[3]{n} \cdot \sqrt[3]{n}\right) \cdot \left(\sqrt[3]{n} \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right)\right) \cdot \left(U - U*\right)\right)}\\
\mathbf{elif}\;U \le 8.6898223191579737 \cdot 10^{-140}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\sqrt[3]{{\left(\sqrt[3]{\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(U - U*\right)}\right)}^{3}} \cdot \sqrt[3]{\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(U - U*\right)}\right)\right) \cdot \sqrt[3]{\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(U - U*\right)}}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r177653 = 2.0;
double r177654 = n;
double r177655 = r177653 * r177654;
double r177656 = U;
double r177657 = r177655 * r177656;
double r177658 = t;
double r177659 = l;
double r177660 = r177659 * r177659;
double r177661 = Om;
double r177662 = r177660 / r177661;
double r177663 = r177653 * r177662;
double r177664 = r177658 - r177663;
double r177665 = r177659 / r177661;
double r177666 = pow(r177665, r177653);
double r177667 = r177654 * r177666;
double r177668 = U_;
double r177669 = r177656 - r177668;
double r177670 = r177667 * r177669;
double r177671 = r177664 - r177670;
double r177672 = r177657 * r177671;
double r177673 = sqrt(r177672);
return r177673;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r177674 = U;
double r177675 = -2.5637669379983426e-130;
bool r177676 = r177674 <= r177675;
double r177677 = 2.0;
double r177678 = n;
double r177679 = r177677 * r177678;
double r177680 = r177679 * r177674;
double r177681 = t;
double r177682 = l;
double r177683 = Om;
double r177684 = r177682 / r177683;
double r177685 = r177682 * r177684;
double r177686 = r177677 * r177685;
double r177687 = r177681 - r177686;
double r177688 = cbrt(r177678);
double r177689 = r177688 * r177688;
double r177690 = pow(r177684, r177677);
double r177691 = r177688 * r177690;
double r177692 = r177689 * r177691;
double r177693 = U_;
double r177694 = r177674 - r177693;
double r177695 = r177692 * r177694;
double r177696 = r177687 - r177695;
double r177697 = r177680 * r177696;
double r177698 = sqrt(r177697);
double r177699 = 8.689822319157974e-140;
bool r177700 = r177674 <= r177699;
double r177701 = r177678 * r177690;
double r177702 = r177701 * r177694;
double r177703 = r177687 - r177702;
double r177704 = r177674 * r177703;
double r177705 = r177679 * r177704;
double r177706 = sqrt(r177705);
double r177707 = 2.0;
double r177708 = r177677 / r177707;
double r177709 = pow(r177684, r177708);
double r177710 = r177678 * r177709;
double r177711 = r177710 * r177709;
double r177712 = r177711 * r177694;
double r177713 = r177687 - r177712;
double r177714 = cbrt(r177713);
double r177715 = 3.0;
double r177716 = pow(r177714, r177715);
double r177717 = cbrt(r177716);
double r177718 = r177717 * r177714;
double r177719 = r177680 * r177718;
double r177720 = r177719 * r177714;
double r177721 = sqrt(r177720);
double r177722 = r177700 ? r177706 : r177721;
double r177723 = r177676 ? r177698 : r177722;
return r177723;
}



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 U < -2.5637669379983426e-130Initial program 30.0
rmApplied *-un-lft-identity30.0
Applied times-frac27.3
Simplified27.3
rmApplied add-cube-cbrt27.3
Applied associate-*l*27.3
if -2.5637669379983426e-130 < U < 8.689822319157974e-140Initial program 41.0
rmApplied *-un-lft-identity41.0
Applied times-frac39.0
Simplified39.0
rmApplied associate-*l*33.9
if 8.689822319157974e-140 < U Initial program 30.8
rmApplied *-un-lft-identity30.8
Applied times-frac27.9
Simplified27.9
rmApplied sqr-pow27.9
Applied associate-*r*27.0
rmApplied add-cube-cbrt27.4
Applied associate-*r*27.4
rmApplied add-cbrt-cube27.4
Simplified27.4
Final simplification29.9
herbie shell --seed 2020036
(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*))))))