\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}\;\ell \leq -1.8141662603144044 \cdot 10^{+225}:\\
\;\;\;\;\sqrt{\left(n \cdot U\right) \cdot \left(\frac{n}{Om} \cdot \frac{U*}{Om} - \left(\frac{2}{Om} + U \cdot \frac{n}{Om \cdot Om}\right)\right)} \cdot \left(\sqrt{2} \cdot \left(-\ell\right)\right)\\
\mathbf{elif}\;\ell \leq 2.772988692385023 \cdot 10^{+135}:\\
\;\;\;\;\sqrt{U \cdot \left(t \cdot \left(n \cdot 2\right)\right) + U \cdot \left(\left(\left(n \cdot 2\right) \cdot \frac{\ell}{Om}\right) \cdot \left(\left(U* - U\right) \cdot \frac{\ell \cdot n}{Om} - \ell \cdot 2\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\ell \cdot \sqrt{2 \cdot \left(\frac{\frac{n \cdot n}{\frac{\frac{Om}{U}}{U*}}}{Om} - \frac{n \cdot n}{\frac{Om}{U} \cdot \frac{Om}{U}}\right) - 4 \cdot \left(U \cdot \frac{n}{Om}\right)}\\
\end{array}
(FPCore (n U t l Om U*) :precision binary64 (sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))
(FPCore (n U t l Om U*)
:precision binary64
(if (<= l -1.8141662603144044e+225)
(*
(sqrt
(*
(* n U)
(- (* (/ n Om) (/ U* Om)) (+ (/ 2.0 Om) (* U (/ n (* Om Om)))))))
(* (sqrt 2.0) (- l)))
(if (<= l 2.772988692385023e+135)
(sqrt
(+
(* U (* t (* n 2.0)))
(*
U
(* (* (* n 2.0) (/ l Om)) (- (* (- U* U) (/ (* l n) Om)) (* l 2.0))))))
(*
l
(sqrt
(-
(*
2.0
(-
(/ (/ (* n n) (/ (/ Om U) U*)) Om)
(/ (* n n) (* (/ Om U) (/ Om U)))))
(* 4.0 (* U (/ n Om)))))))))double code(double n, double U, double t, double l, double Om, double U_42_) {
return sqrt(((2.0 * n) * U) * ((t - (2.0 * ((l * l) / Om))) - ((n * pow((l / Om), 2.0)) * (U - U_42_))));
}
double code(double n, double U, double t, double l, double Om, double U_42_) {
double tmp;
if (l <= -1.8141662603144044e+225) {
tmp = sqrt((n * U) * (((n / Om) * (U_42_ / Om)) - ((2.0 / Om) + (U * (n / (Om * Om)))))) * (sqrt(2.0) * -l);
} else if (l <= 2.772988692385023e+135) {
tmp = sqrt((U * (t * (n * 2.0))) + (U * (((n * 2.0) * (l / Om)) * (((U_42_ - U) * ((l * n) / Om)) - (l * 2.0)))));
} else {
tmp = l * sqrt((2.0 * ((((n * n) / ((Om / U) / U_42_)) / Om) - ((n * n) / ((Om / U) * (Om / U))))) - (4.0 * (U * (n / Om))));
}
return tmp;
}



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 l < -1.8141662603144044e225Initial program 64.0
Simplified55.7
Taylor expanded around -inf 32.9
Simplified29.6
if -1.8141662603144044e225 < l < 2.77298869238502309e135Initial program 29.9
Simplified27.2
rmApplied sub-neg_binary64_41227.2
Applied distribute-rgt-in_binary64_36927.2
Applied distribute-rgt-in_binary64_36927.2
Simplified26.6
if 2.77298869238502309e135 < l Initial program 60.5
Simplified45.6
rmApplied sub-neg_binary64_41245.6
Applied distribute-rgt-in_binary64_36945.6
Applied distribute-rgt-in_binary64_36945.6
Simplified39.4
Taylor expanded around inf 43.8
Simplified36.9
Final simplification27.9
herbie shell --seed 2021210
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
:precision binary64
(sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))