\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 -6.580462540237744 \cdot 10^{-211}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - \left(\frac{\ell}{Om} \cdot \ell\right) \cdot 2\right) - \left(\frac{\ell}{Om} \cdot n\right) \cdot \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right)\right)\right)}\\
\mathbf{elif}\;n \le 1.340924181894456 \cdot 10^{-308}:\\
\;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(U - U*\right) \cdot \left(\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot n\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\
\mathbf{elif}\;n \le 7.197261728987005 \cdot 10^{-257}:\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(\frac{\ell}{Om} \cdot n\right) \cdot \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right)\right)}\\
\mathbf{elif}\;n \le 7.547628596937392 \cdot 10^{-254}:\\
\;\;\;\;\sqrt{\left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(U - U*\right) \cdot \left(\left(\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot n\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\
\mathbf{elif}\;n \le 2.4979801865310678 \cdot 10^{+51}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - \left(\frac{\ell}{Om} \cdot \ell\right) \cdot 2\right) - \left(\frac{\ell}{Om} \cdot n\right) \cdot \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(\frac{\ell}{Om} \cdot n\right) \cdot \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r983157 = 2.0;
double r983158 = n;
double r983159 = r983157 * r983158;
double r983160 = U;
double r983161 = r983159 * r983160;
double r983162 = t;
double r983163 = l;
double r983164 = r983163 * r983163;
double r983165 = Om;
double r983166 = r983164 / r983165;
double r983167 = r983157 * r983166;
double r983168 = r983162 - r983167;
double r983169 = r983163 / r983165;
double r983170 = pow(r983169, r983157);
double r983171 = r983158 * r983170;
double r983172 = U_;
double r983173 = r983160 - r983172;
double r983174 = r983171 * r983173;
double r983175 = r983168 - r983174;
double r983176 = r983161 * r983175;
double r983177 = sqrt(r983176);
return r983177;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r983178 = n;
double r983179 = -6.580462540237744e-211;
bool r983180 = r983178 <= r983179;
double r983181 = 2.0;
double r983182 = r983181 * r983178;
double r983183 = U;
double r983184 = t;
double r983185 = l;
double r983186 = Om;
double r983187 = r983185 / r983186;
double r983188 = r983187 * r983185;
double r983189 = r983188 * r983181;
double r983190 = r983184 - r983189;
double r983191 = r983187 * r983178;
double r983192 = U_;
double r983193 = r983183 - r983192;
double r983194 = r983187 * r983193;
double r983195 = r983191 * r983194;
double r983196 = r983190 - r983195;
double r983197 = r983183 * r983196;
double r983198 = r983182 * r983197;
double r983199 = sqrt(r983198);
double r983200 = 1.340924181894456e-308;
bool r983201 = r983178 <= r983200;
double r983202 = r983186 / r983185;
double r983203 = r983185 / r983202;
double r983204 = r983187 * r983187;
double r983205 = r983204 * r983178;
double r983206 = r983193 * r983205;
double r983207 = fma(r983181, r983203, r983206);
double r983208 = r983184 - r983207;
double r983209 = r983182 * r983183;
double r983210 = r983208 * r983209;
double r983211 = sqrt(r983210);
double r983212 = 7.197261728987005e-257;
bool r983213 = r983178 <= r983212;
double r983214 = sqrt(r983182);
double r983215 = r983185 * r983185;
double r983216 = r983215 / r983186;
double r983217 = r983216 * r983181;
double r983218 = r983184 - r983217;
double r983219 = r983218 - r983195;
double r983220 = r983183 * r983219;
double r983221 = sqrt(r983220);
double r983222 = r983214 * r983221;
double r983223 = 7.547628596937392e-254;
bool r983224 = r983178 <= r983223;
double r983225 = /* ERROR: no posit support in C */;
double r983226 = /* ERROR: no posit support in C */;
double r983227 = r983193 * r983226;
double r983228 = r983218 - r983227;
double r983229 = r983228 * r983209;
double r983230 = sqrt(r983229);
double r983231 = 2.4979801865310678e+51;
bool r983232 = r983178 <= r983231;
double r983233 = r983232 ? r983199 : r983222;
double r983234 = r983224 ? r983230 : r983233;
double r983235 = r983213 ? r983222 : r983234;
double r983236 = r983201 ? r983211 : r983235;
double r983237 = r983180 ? r983199 : r983236;
return r983237;
}



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 < -6.580462540237744e-211 or 7.547628596937392e-254 < n < 2.4979801865310678e+51Initial program 31.6
rmApplied unpow231.6
Applied associate-*r*30.9
rmApplied associate-*l*30.7
rmApplied associate-*l*30.2
rmApplied *-un-lft-identity30.2
Applied times-frac27.3
Simplified27.3
if -6.580462540237744e-211 < n < 1.340924181894456e-308Initial program 40.2
rmApplied unpow240.2
Applied associate-*r*39.1
rmApplied pow139.1
Applied pow139.1
Applied pow139.1
Applied pow139.1
Applied pow-prod-down39.1
Applied pow-prod-down39.1
Applied pow-prod-down39.1
Simplified38.0
if 1.340924181894456e-308 < n < 7.197261728987005e-257 or 2.4979801865310678e+51 < n Initial program 34.4
rmApplied unpow234.4
Applied associate-*r*32.7
rmApplied associate-*l*32.2
rmApplied associate-*l*32.4
rmApplied sqrt-prod22.4
if 7.197261728987005e-257 < n < 7.547628596937392e-254Initial program 36.3
rmApplied insert-posit1638.9
Simplified38.9
Final simplification27.4
herbie shell --seed 2019154 +o rules:numerics
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))))