\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(t + \left(-\mathsf{fma}\left(U - U*, n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}, 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt[3]{\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(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)}} \cdot \sqrt[3]{\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(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]{\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(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)}}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r221067 = 2.0;
double r221068 = n;
double r221069 = r221067 * r221068;
double r221070 = U;
double r221071 = r221069 * r221070;
double r221072 = t;
double r221073 = l;
double r221074 = r221073 * r221073;
double r221075 = Om;
double r221076 = r221074 / r221075;
double r221077 = r221067 * r221076;
double r221078 = r221072 - r221077;
double r221079 = r221073 / r221075;
double r221080 = pow(r221079, r221067);
double r221081 = r221068 * r221080;
double r221082 = U_;
double r221083 = r221070 - r221082;
double r221084 = r221081 * r221083;
double r221085 = r221078 - r221084;
double r221086 = r221071 * r221085;
double r221087 = sqrt(r221086);
return r221087;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r221088 = U;
double r221089 = -2.5637669379983426e-130;
bool r221090 = r221088 <= r221089;
double r221091 = 2.0;
double r221092 = n;
double r221093 = r221091 * r221092;
double r221094 = r221093 * r221088;
double r221095 = t;
double r221096 = l;
double r221097 = Om;
double r221098 = r221096 / r221097;
double r221099 = r221096 * r221098;
double r221100 = r221091 * r221099;
double r221101 = r221095 - r221100;
double r221102 = cbrt(r221092);
double r221103 = r221102 * r221102;
double r221104 = pow(r221098, r221091);
double r221105 = r221102 * r221104;
double r221106 = r221103 * r221105;
double r221107 = U_;
double r221108 = r221088 - r221107;
double r221109 = r221106 * r221108;
double r221110 = r221101 - r221109;
double r221111 = r221094 * r221110;
double r221112 = sqrt(r221111);
double r221113 = 8.689822319157974e-140;
bool r221114 = r221088 <= r221113;
double r221115 = 2.0;
double r221116 = r221091 / r221115;
double r221117 = r221115 * r221116;
double r221118 = pow(r221098, r221117);
double r221119 = r221092 * r221118;
double r221120 = fma(r221108, r221119, r221100);
double r221121 = -r221120;
double r221122 = r221095 + r221121;
double r221123 = r221088 * r221122;
double r221124 = r221093 * r221123;
double r221125 = sqrt(r221124);
double r221126 = pow(r221098, r221116);
double r221127 = r221092 * r221126;
double r221128 = r221127 * r221126;
double r221129 = r221128 * r221108;
double r221130 = r221101 - r221129;
double r221131 = r221094 * r221130;
double r221132 = sqrt(r221131);
double r221133 = cbrt(r221132);
double r221134 = r221133 * r221133;
double r221135 = r221134 * r221133;
double r221136 = r221114 ? r221125 : r221135;
double r221137 = r221090 ? r221112 : r221136;
return r221137;
}



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 < -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 sqr-pow39.0
Applied associate-*r*38.4
rmApplied associate-*l*32.7
Simplified33.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.7
Final simplification29.9
herbie shell --seed 2020036 +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*))))))