\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 -1.00466796771781086 \cdot 10^{-230}:\\
\;\;\;\;\sqrt{\left(\sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(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)\right)} \cdot \sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(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)\right)}\right) \cdot \sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(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)\right)}}\\
\mathbf{elif}\;n \le -5.1771709005248027 \cdot 10^{-280}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(\sqrt[3]{\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)} \cdot \sqrt[3]{\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)}\right) \cdot \sqrt[3]{\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)}\right)\right)\right)}\\
\mathbf{elif}\;n \le -4.44897802822854103 \cdot 10^{-305}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot \left(t - \mathsf{fma}\left(2, \frac{\ell \cdot \ell}{Om}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \cdot U + \left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\mathsf{fma}\left(2, \frac{\ell \cdot \ell}{Om}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right) \cdot 0\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \left(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)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r158076 = 2.0;
double r158077 = n;
double r158078 = r158076 * r158077;
double r158079 = U;
double r158080 = r158078 * r158079;
double r158081 = t;
double r158082 = l;
double r158083 = r158082 * r158082;
double r158084 = Om;
double r158085 = r158083 / r158084;
double r158086 = r158076 * r158085;
double r158087 = r158081 - r158086;
double r158088 = r158082 / r158084;
double r158089 = pow(r158088, r158076);
double r158090 = r158077 * r158089;
double r158091 = U_;
double r158092 = r158079 - r158091;
double r158093 = r158090 * r158092;
double r158094 = r158087 - r158093;
double r158095 = r158080 * r158094;
double r158096 = sqrt(r158095);
return r158096;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r158097 = n;
double r158098 = -1.0046679677178109e-230;
bool r158099 = r158097 <= r158098;
double r158100 = 2.0;
double r158101 = r158100 * r158097;
double r158102 = U;
double r158103 = r158101 * r158102;
double r158104 = t;
double r158105 = l;
double r158106 = Om;
double r158107 = r158106 / r158105;
double r158108 = r158105 / r158107;
double r158109 = r158105 / r158106;
double r158110 = pow(r158109, r158100);
double r158111 = r158097 * r158110;
double r158112 = U_;
double r158113 = r158102 - r158112;
double r158114 = r158111 * r158113;
double r158115 = fma(r158100, r158108, r158114);
double r158116 = r158104 - r158115;
double r158117 = r158103 * r158116;
double r158118 = cbrt(r158117);
double r158119 = r158118 * r158118;
double r158120 = r158119 * r158118;
double r158121 = sqrt(r158120);
double r158122 = -5.177170900524803e-280;
bool r158123 = r158097 <= r158122;
double r158124 = cbrt(r158114);
double r158125 = r158124 * r158124;
double r158126 = r158125 * r158124;
double r158127 = fma(r158100, r158108, r158126);
double r158128 = r158104 - r158127;
double r158129 = r158102 * r158128;
double r158130 = r158101 * r158129;
double r158131 = sqrt(r158130);
double r158132 = -4.448978028228541e-305;
bool r158133 = r158097 <= r158132;
double r158134 = r158105 * r158105;
double r158135 = r158134 / r158106;
double r158136 = fma(r158100, r158135, r158114);
double r158137 = r158104 - r158136;
double r158138 = r158101 * r158137;
double r158139 = r158138 * r158102;
double r158140 = 0.0;
double r158141 = r158136 * r158140;
double r158142 = r158103 * r158141;
double r158143 = r158139 + r158142;
double r158144 = sqrt(r158143);
double r158145 = sqrt(r158101);
double r158146 = r158102 * r158116;
double r158147 = sqrt(r158146);
double r158148 = r158145 * r158147;
double r158149 = r158133 ? r158144 : r158148;
double r158150 = r158123 ? r158131 : r158149;
double r158151 = r158099 ? r158121 : r158150;
return r158151;
}



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 < -1.0046679677178109e-230Initial program 34.2
Simplified34.2
rmApplied associate-/l*31.6
rmApplied associate-*r*31.5
rmApplied add-cube-cbrt31.8
if -1.0046679677178109e-230 < n < -5.177170900524803e-280Initial program 40.1
Simplified39.6
rmApplied associate-/l*37.7
rmApplied add-cube-cbrt37.7
if -5.177170900524803e-280 < n < -4.448978028228541e-305Initial program 41.1
Simplified41.3
rmApplied add-cube-cbrt41.4
Applied add-sqr-sqrt52.3
Applied prod-diff52.3
Applied distribute-lft-in52.3
Applied distribute-lft-in52.3
Simplified39.0
Simplified38.2
if -4.448978028228541e-305 < n Initial program 34.6
Simplified34.4
rmApplied associate-/l*31.6
rmApplied sqrt-prod24.6
Final simplification28.6
herbie shell --seed 2020042 +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*))))))