\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}\;\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right) \le 0.0:\\
\;\;\;\;\sqrt{U \cdot \left(\left(\left(t - \mathsf{fma}\left(\frac{\ell}{Om}, 2 \cdot \ell, \left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left({\left(\frac{1}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(n \cdot {\ell}^{\left(\frac{2}{2}\right)}\right)\right)\right)\right) \cdot n\right) \cdot 2\right)}\\
\mathbf{elif}\;\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right) \le 1.183773712422273433088837706435118557278 \cdot 10^{294}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 \cdot \left(n \cdot \left(t - \mathsf{fma}\left(\frac{\ell}{Om} \cdot \ell, 2, \left(\left(U - U*\right) \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot n\right)\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right)\right)\right)} \cdot \sqrt{U}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r3805101 = 2.0;
double r3805102 = n;
double r3805103 = r3805101 * r3805102;
double r3805104 = U;
double r3805105 = r3805103 * r3805104;
double r3805106 = t;
double r3805107 = l;
double r3805108 = r3805107 * r3805107;
double r3805109 = Om;
double r3805110 = r3805108 / r3805109;
double r3805111 = r3805101 * r3805110;
double r3805112 = r3805106 - r3805111;
double r3805113 = r3805107 / r3805109;
double r3805114 = pow(r3805113, r3805101);
double r3805115 = r3805102 * r3805114;
double r3805116 = U_;
double r3805117 = r3805104 - r3805116;
double r3805118 = r3805115 * r3805117;
double r3805119 = r3805112 - r3805118;
double r3805120 = r3805105 * r3805119;
double r3805121 = sqrt(r3805120);
return r3805121;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r3805122 = 2.0;
double r3805123 = n;
double r3805124 = r3805122 * r3805123;
double r3805125 = U;
double r3805126 = r3805124 * r3805125;
double r3805127 = t;
double r3805128 = l;
double r3805129 = r3805128 * r3805128;
double r3805130 = Om;
double r3805131 = r3805129 / r3805130;
double r3805132 = r3805131 * r3805122;
double r3805133 = r3805127 - r3805132;
double r3805134 = r3805128 / r3805130;
double r3805135 = pow(r3805134, r3805122);
double r3805136 = r3805123 * r3805135;
double r3805137 = U_;
double r3805138 = r3805125 - r3805137;
double r3805139 = r3805136 * r3805138;
double r3805140 = r3805133 - r3805139;
double r3805141 = r3805126 * r3805140;
double r3805142 = 0.0;
bool r3805143 = r3805141 <= r3805142;
double r3805144 = r3805122 * r3805128;
double r3805145 = 2.0;
double r3805146 = r3805122 / r3805145;
double r3805147 = pow(r3805134, r3805146);
double r3805148 = r3805138 * r3805147;
double r3805149 = 1.0;
double r3805150 = r3805149 / r3805130;
double r3805151 = pow(r3805150, r3805146);
double r3805152 = pow(r3805128, r3805146);
double r3805153 = r3805123 * r3805152;
double r3805154 = r3805151 * r3805153;
double r3805155 = r3805148 * r3805154;
double r3805156 = fma(r3805134, r3805144, r3805155);
double r3805157 = r3805127 - r3805156;
double r3805158 = r3805157 * r3805123;
double r3805159 = r3805158 * r3805122;
double r3805160 = r3805125 * r3805159;
double r3805161 = sqrt(r3805160);
double r3805162 = 1.1837737124222734e+294;
bool r3805163 = r3805141 <= r3805162;
double r3805164 = sqrt(r3805141);
double r3805165 = r3805134 * r3805128;
double r3805166 = r3805147 * r3805123;
double r3805167 = r3805138 * r3805166;
double r3805168 = r3805167 * r3805147;
double r3805169 = fma(r3805165, r3805122, r3805168);
double r3805170 = r3805127 - r3805169;
double r3805171 = r3805123 * r3805170;
double r3805172 = r3805122 * r3805171;
double r3805173 = sqrt(r3805172);
double r3805174 = sqrt(r3805125);
double r3805175 = r3805173 * r3805174;
double r3805176 = r3805163 ? r3805164 : r3805175;
double r3805177 = r3805143 ? r3805161 : r3805176;
return r3805177;
}



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 (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*)))) < 0.0Initial program 57.1
Simplified40.4
rmApplied sqr-pow40.4
Applied associate-*r*38.1
rmApplied associate-*l*38.0
rmApplied div-inv38.0
Applied unpow-prod-down38.0
Applied associate-*r*38.4
if 0.0 < (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*)))) < 1.1837737124222734e+294Initial program 1.7
if 1.1837737124222734e+294 < (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*)))) Initial program 62.8
Simplified55.0
rmApplied sqr-pow55.0
Applied associate-*r*53.9
rmApplied associate-*l*54.1
rmApplied add-cube-cbrt54.1
rmApplied sqrt-prod54.2
Simplified53.9
Final simplification28.1
herbie shell --seed 2019170 +o rules:numerics
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))