\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}\;t \le 3.758856169816249447245048347322428480256 \cdot 10^{191}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{t - \mathsf{fma}\left(\frac{\ell}{\frac{Om}{\ell}}, 2, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r180133 = 2.0;
double r180134 = n;
double r180135 = r180133 * r180134;
double r180136 = U;
double r180137 = r180135 * r180136;
double r180138 = t;
double r180139 = l;
double r180140 = r180139 * r180139;
double r180141 = Om;
double r180142 = r180140 / r180141;
double r180143 = r180133 * r180142;
double r180144 = r180138 - r180143;
double r180145 = r180139 / r180141;
double r180146 = pow(r180145, r180133);
double r180147 = r180134 * r180146;
double r180148 = U_;
double r180149 = r180136 - r180148;
double r180150 = r180147 * r180149;
double r180151 = r180144 - r180150;
double r180152 = r180137 * r180151;
double r180153 = sqrt(r180152);
return r180153;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r180154 = t;
double r180155 = 3.7588561698162494e+191;
bool r180156 = r180154 <= r180155;
double r180157 = 2.0;
double r180158 = n;
double r180159 = r180157 * r180158;
double r180160 = U;
double r180161 = r180159 * r180160;
double r180162 = l;
double r180163 = Om;
double r180164 = r180163 / r180162;
double r180165 = r180162 / r180164;
double r180166 = r180157 * r180165;
double r180167 = r180154 - r180166;
double r180168 = r180162 / r180163;
double r180169 = 2.0;
double r180170 = r180157 / r180169;
double r180171 = pow(r180168, r180170);
double r180172 = r180158 * r180171;
double r180173 = U_;
double r180174 = r180160 - r180173;
double r180175 = r180174 * r180171;
double r180176 = r180172 * r180175;
double r180177 = r180167 - r180176;
double r180178 = r180161 * r180177;
double r180179 = sqrt(r180178);
double r180180 = sqrt(r180161);
double r180181 = r180169 * r180170;
double r180182 = pow(r180168, r180181);
double r180183 = r180158 * r180182;
double r180184 = r180183 * r180174;
double r180185 = fma(r180165, r180157, r180184);
double r180186 = r180154 - r180185;
double r180187 = sqrt(r180186);
double r180188 = r180180 * r180187;
double r180189 = r180156 ? r180179 : r180188;
return r180189;
}



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 t < 3.7588561698162494e+191Initial program 33.2
rmApplied associate-/l*30.4
rmApplied sqr-pow30.4
Applied associate-*r*29.6
rmApplied associate-*l*29.4
Simplified29.4
if 3.7588561698162494e+191 < t Initial program 37.3
rmApplied associate-/l*35.4
rmApplied sqr-pow35.4
Applied associate-*r*35.1
rmApplied sqrt-prod21.3
Simplified21.6
Final simplification28.6
herbie shell --seed 2019208 +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*))))))