\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.24235475462790745 \cdot 10^{-304}:\\
\;\;\;\;\sqrt{\left(\sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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)}}\\
\mathbf{elif}\;U \le 7.0020822487454102 \cdot 10^{119}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(U - U*\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{{\left(\left(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \frac{\ell \cdot \ell}{Om} - \left(-\left(U - U*\right)\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)\right)\right)\right) \cdot U\right)}^{1}}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r221149 = 2.0;
double r221150 = n;
double r221151 = r221149 * r221150;
double r221152 = U;
double r221153 = r221151 * r221152;
double r221154 = t;
double r221155 = l;
double r221156 = r221155 * r221155;
double r221157 = Om;
double r221158 = r221156 / r221157;
double r221159 = r221149 * r221158;
double r221160 = r221154 - r221159;
double r221161 = r221155 / r221157;
double r221162 = pow(r221161, r221149);
double r221163 = r221150 * r221162;
double r221164 = U_;
double r221165 = r221152 - r221164;
double r221166 = r221163 * r221165;
double r221167 = r221160 - r221166;
double r221168 = r221153 * r221167;
double r221169 = sqrt(r221168);
return r221169;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r221170 = U;
double r221171 = 8.242354754627907e-304;
bool r221172 = r221170 <= r221171;
double r221173 = 2.0;
double r221174 = n;
double r221175 = r221173 * r221174;
double r221176 = r221175 * r221170;
double r221177 = t;
double r221178 = l;
double r221179 = r221178 * r221178;
double r221180 = Om;
double r221181 = r221179 / r221180;
double r221182 = r221173 * r221181;
double r221183 = r221177 - r221182;
double r221184 = r221178 / r221180;
double r221185 = 2.0;
double r221186 = r221173 / r221185;
double r221187 = pow(r221184, r221186);
double r221188 = r221174 * r221187;
double r221189 = r221188 * r221187;
double r221190 = U_;
double r221191 = r221170 - r221190;
double r221192 = r221189 * r221191;
double r221193 = r221183 - r221192;
double r221194 = r221176 * r221193;
double r221195 = cbrt(r221194);
double r221196 = r221195 * r221195;
double r221197 = r221196 * r221195;
double r221198 = sqrt(r221197);
double r221199 = 7.00208224874541e+119;
bool r221200 = r221170 <= r221199;
double r221201 = r221187 * r221191;
double r221202 = r221188 * r221201;
double r221203 = r221183 - r221202;
double r221204 = r221170 * r221203;
double r221205 = r221175 * r221204;
double r221206 = sqrt(r221205);
double r221207 = -r221191;
double r221208 = r221185 * r221186;
double r221209 = pow(r221184, r221208);
double r221210 = r221174 * r221209;
double r221211 = r221207 * r221210;
double r221212 = r221182 - r221211;
double r221213 = r221177 - r221212;
double r221214 = r221175 * r221213;
double r221215 = r221214 * r221170;
double r221216 = 1.0;
double r221217 = pow(r221215, r221216);
double r221218 = sqrt(r221217);
double r221219 = r221200 ? r221206 : r221218;
double r221220 = r221172 ? r221198 : r221219;
return r221220;
}



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 < 8.242354754627907e-304Initial program 34.8
rmApplied sqr-pow34.8
Applied associate-*r*34.1
rmApplied add-cube-cbrt34.4
if 8.242354754627907e-304 < U < 7.00208224874541e+119Initial program 36.0
rmApplied sqr-pow36.0
Applied associate-*r*35.0
rmApplied associate-*l*34.8
rmApplied associate-*l*32.5
if 7.00208224874541e+119 < U Initial program 30.2
rmApplied sqr-pow30.2
Applied associate-*r*30.1
rmApplied pow130.1
Applied pow130.1
Applied pow130.1
Applied pow130.1
Applied pow-prod-down30.1
Applied pow-prod-down30.1
Applied pow-prod-down30.1
Simplified33.5
Final simplification33.6
herbie shell --seed 2020062 +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*))))))