\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 r221138 = 2.0;
double r221139 = n;
double r221140 = r221138 * r221139;
double r221141 = U;
double r221142 = r221140 * r221141;
double r221143 = t;
double r221144 = l;
double r221145 = r221144 * r221144;
double r221146 = Om;
double r221147 = r221145 / r221146;
double r221148 = r221138 * r221147;
double r221149 = r221143 - r221148;
double r221150 = r221144 / r221146;
double r221151 = pow(r221150, r221138);
double r221152 = r221139 * r221151;
double r221153 = U_;
double r221154 = r221141 - r221153;
double r221155 = r221152 * r221154;
double r221156 = r221149 - r221155;
double r221157 = r221142 * r221156;
double r221158 = sqrt(r221157);
return r221158;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r221159 = U;
double r221160 = 8.242354754627907e-304;
bool r221161 = r221159 <= r221160;
double r221162 = 2.0;
double r221163 = n;
double r221164 = r221162 * r221163;
double r221165 = r221164 * r221159;
double r221166 = t;
double r221167 = l;
double r221168 = r221167 * r221167;
double r221169 = Om;
double r221170 = r221168 / r221169;
double r221171 = r221162 * r221170;
double r221172 = r221166 - r221171;
double r221173 = r221167 / r221169;
double r221174 = 2.0;
double r221175 = r221162 / r221174;
double r221176 = pow(r221173, r221175);
double r221177 = r221163 * r221176;
double r221178 = r221177 * r221176;
double r221179 = U_;
double r221180 = r221159 - r221179;
double r221181 = r221178 * r221180;
double r221182 = r221172 - r221181;
double r221183 = r221165 * r221182;
double r221184 = cbrt(r221183);
double r221185 = r221184 * r221184;
double r221186 = r221185 * r221184;
double r221187 = sqrt(r221186);
double r221188 = 7.00208224874541e+119;
bool r221189 = r221159 <= r221188;
double r221190 = r221176 * r221180;
double r221191 = r221177 * r221190;
double r221192 = r221172 - r221191;
double r221193 = r221159 * r221192;
double r221194 = r221164 * r221193;
double r221195 = sqrt(r221194);
double r221196 = -r221180;
double r221197 = r221174 * r221175;
double r221198 = pow(r221173, r221197);
double r221199 = r221163 * r221198;
double r221200 = r221196 * r221199;
double r221201 = r221171 - r221200;
double r221202 = r221166 - r221201;
double r221203 = r221164 * r221202;
double r221204 = r221203 * r221159;
double r221205 = 1.0;
double r221206 = pow(r221204, r221205);
double r221207 = sqrt(r221206);
double r221208 = r221189 ? r221195 : r221207;
double r221209 = r221161 ? r221187 : r221208;
return r221209;
}



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*))))))