\sqrt{\left(\left(2.0 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2.0 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2.0}\right) \cdot \left(U - U*\right)\right)}\begin{array}{l}
\mathbf{if}\;\left(\left(2.0 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2.0\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2.0}\right) \cdot \left(U - U*\right)\right) \le 0.0:\\
\;\;\;\;\sqrt{\left(2.0 \cdot \left(n \cdot \left(t - \mathsf{fma}\left(\frac{\ell}{Om}, 2.0 \cdot \ell, \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2.0}{2}\right)} \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2.0}{2}\right)}\right)\right) \cdot \left(U - U*\right)\right)\right)\right)\right) \cdot \sqrt[3]{U}} \cdot \left|\sqrt[3]{U}\right|\\
\mathbf{elif}\;\left(\left(2.0 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2.0\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2.0}\right) \cdot \left(U - U*\right)\right) \le 7.84774975188966 \cdot 10^{+306}:\\
\;\;\;\;\sqrt{\left(\left(2.0 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2.0\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2.0}\right) \cdot \left(U - U*\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(2.0 \cdot \left(n \cdot \left(t - \mathsf{fma}\left(\frac{\ell}{Om}, 2.0 \cdot \ell, \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2.0}{2}\right)} \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2.0}{2}\right)}\right)\right) \cdot \left(U - U*\right)\right)\right)\right)\right) \cdot \sqrt[3]{U}} \cdot \left|\sqrt[3]{U}\right|\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r3689144 = 2.0;
double r3689145 = n;
double r3689146 = r3689144 * r3689145;
double r3689147 = U;
double r3689148 = r3689146 * r3689147;
double r3689149 = t;
double r3689150 = l;
double r3689151 = r3689150 * r3689150;
double r3689152 = Om;
double r3689153 = r3689151 / r3689152;
double r3689154 = r3689144 * r3689153;
double r3689155 = r3689149 - r3689154;
double r3689156 = r3689150 / r3689152;
double r3689157 = pow(r3689156, r3689144);
double r3689158 = r3689145 * r3689157;
double r3689159 = U_;
double r3689160 = r3689147 - r3689159;
double r3689161 = r3689158 * r3689160;
double r3689162 = r3689155 - r3689161;
double r3689163 = r3689148 * r3689162;
double r3689164 = sqrt(r3689163);
return r3689164;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r3689165 = 2.0;
double r3689166 = n;
double r3689167 = r3689165 * r3689166;
double r3689168 = U;
double r3689169 = r3689167 * r3689168;
double r3689170 = t;
double r3689171 = l;
double r3689172 = r3689171 * r3689171;
double r3689173 = Om;
double r3689174 = r3689172 / r3689173;
double r3689175 = r3689174 * r3689165;
double r3689176 = r3689170 - r3689175;
double r3689177 = r3689171 / r3689173;
double r3689178 = pow(r3689177, r3689165);
double r3689179 = r3689166 * r3689178;
double r3689180 = U_;
double r3689181 = r3689168 - r3689180;
double r3689182 = r3689179 * r3689181;
double r3689183 = r3689176 - r3689182;
double r3689184 = r3689169 * r3689183;
double r3689185 = 0.0;
bool r3689186 = r3689184 <= r3689185;
double r3689187 = r3689165 * r3689171;
double r3689188 = 2.0;
double r3689189 = r3689165 / r3689188;
double r3689190 = pow(r3689177, r3689189);
double r3689191 = r3689166 * r3689190;
double r3689192 = r3689190 * r3689191;
double r3689193 = r3689192 * r3689181;
double r3689194 = fma(r3689177, r3689187, r3689193);
double r3689195 = r3689170 - r3689194;
double r3689196 = r3689166 * r3689195;
double r3689197 = r3689165 * r3689196;
double r3689198 = cbrt(r3689168);
double r3689199 = r3689197 * r3689198;
double r3689200 = sqrt(r3689199);
double r3689201 = fabs(r3689198);
double r3689202 = r3689200 * r3689201;
double r3689203 = 7.84774975188966e+306;
bool r3689204 = r3689184 <= r3689203;
double r3689205 = sqrt(r3689184);
double r3689206 = r3689204 ? r3689205 : r3689202;
double r3689207 = r3689186 ? r3689202 : r3689206;
return r3689207;
}



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.0 or 7.84774975188966e+306 < (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*)))) Initial program 61.6
Simplified50.6
rmApplied sqr-pow50.6
Applied associate-*r*48.8
rmApplied add-cube-cbrt49.0
Applied associate-*l*49.0
rmApplied sqrt-prod39.8
Simplified39.8
if 0.0 < (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*)))) < 7.84774975188966e+306Initial program 1.8
Final simplification22.5
herbie shell --seed 2019165 +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*))))))