\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{\left(\left(t \cdot n + \left(-\left(n \cdot \frac{\ell}{Om}\right) \cdot \left(2 \cdot \ell - \left(\frac{\left(\ell \cdot n\right) \cdot U*}{Om} - \frac{U}{\frac{Om}{\ell \cdot n}}\right)\right)\right)\right) \cdot U\right) \cdot 2}\\
\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 9.477739406878279 \cdot 10^{+303}:\\
\;\;\;\;\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{\left(\left(\left(2 \cdot \ell - \left(n \cdot \left(U* - U\right)\right) \cdot \frac{\ell}{Om}\right) \cdot \left(-U\right)\right) \cdot \left(n \cdot \frac{\ell}{Om}\right) + U \cdot \left(t \cdot n\right)\right) \cdot 2}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r1726044 = 2.0;
double r1726045 = n;
double r1726046 = r1726044 * r1726045;
double r1726047 = U;
double r1726048 = r1726046 * r1726047;
double r1726049 = t;
double r1726050 = l;
double r1726051 = r1726050 * r1726050;
double r1726052 = Om;
double r1726053 = r1726051 / r1726052;
double r1726054 = r1726044 * r1726053;
double r1726055 = r1726049 - r1726054;
double r1726056 = r1726050 / r1726052;
double r1726057 = pow(r1726056, r1726044);
double r1726058 = r1726045 * r1726057;
double r1726059 = U_;
double r1726060 = r1726047 - r1726059;
double r1726061 = r1726058 * r1726060;
double r1726062 = r1726055 - r1726061;
double r1726063 = r1726048 * r1726062;
double r1726064 = sqrt(r1726063);
return r1726064;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r1726065 = 2.0;
double r1726066 = n;
double r1726067 = r1726065 * r1726066;
double r1726068 = U;
double r1726069 = r1726067 * r1726068;
double r1726070 = t;
double r1726071 = l;
double r1726072 = r1726071 * r1726071;
double r1726073 = Om;
double r1726074 = r1726072 / r1726073;
double r1726075 = r1726074 * r1726065;
double r1726076 = r1726070 - r1726075;
double r1726077 = r1726071 / r1726073;
double r1726078 = pow(r1726077, r1726065);
double r1726079 = r1726066 * r1726078;
double r1726080 = U_;
double r1726081 = r1726068 - r1726080;
double r1726082 = r1726079 * r1726081;
double r1726083 = r1726076 - r1726082;
double r1726084 = r1726069 * r1726083;
double r1726085 = 0.0;
bool r1726086 = r1726084 <= r1726085;
double r1726087 = r1726070 * r1726066;
double r1726088 = r1726066 * r1726077;
double r1726089 = r1726065 * r1726071;
double r1726090 = r1726071 * r1726066;
double r1726091 = r1726090 * r1726080;
double r1726092 = r1726091 / r1726073;
double r1726093 = r1726073 / r1726090;
double r1726094 = r1726068 / r1726093;
double r1726095 = r1726092 - r1726094;
double r1726096 = r1726089 - r1726095;
double r1726097 = r1726088 * r1726096;
double r1726098 = -r1726097;
double r1726099 = r1726087 + r1726098;
double r1726100 = r1726099 * r1726068;
double r1726101 = r1726100 * r1726065;
double r1726102 = sqrt(r1726101);
double r1726103 = 9.477739406878279e+303;
bool r1726104 = r1726084 <= r1726103;
double r1726105 = sqrt(r1726084);
double r1726106 = r1726080 - r1726068;
double r1726107 = r1726066 * r1726106;
double r1726108 = r1726107 * r1726077;
double r1726109 = r1726089 - r1726108;
double r1726110 = -r1726068;
double r1726111 = r1726109 * r1726110;
double r1726112 = r1726111 * r1726088;
double r1726113 = r1726068 * r1726087;
double r1726114 = r1726112 + r1726113;
double r1726115 = r1726114 * r1726065;
double r1726116 = sqrt(r1726115);
double r1726117 = r1726104 ? r1726105 : r1726116;
double r1726118 = r1726086 ? r1726102 : r1726117;
return r1726118;
}



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 (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) < 0.0Initial program 56.9
Simplified38.2
rmApplied sub-neg38.2
Applied distribute-lft-in38.2
rmApplied distribute-lft-neg-in38.2
Applied associate-*r*38.2
Taylor expanded around 0 38.3
Simplified38.3
if 0.0 < (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) < 9.477739406878279e+303Initial program 1.7
if 9.477739406878279e+303 < (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) Initial program 60.3
Simplified52.5
rmApplied sub-neg52.5
Applied distribute-lft-in52.5
rmApplied distribute-lft-neg-in52.5
Applied associate-*r*45.4
rmApplied distribute-rgt-in45.4
rmApplied associate-*l*43.1
Final simplification23.3
herbie shell --seed 2019162
(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*))))))