\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 2.435100367453427 \cdot 10^{-204}:\\
\;\;\;\;{\left((n \cdot \left(\frac{\left(2 \cdot \left(\ell \cdot U\right)\right) \cdot \left(\ell \cdot -2 - \left(\frac{\ell}{Om} \cdot n\right) \cdot \left(U - U*\right)\right)}{Om}\right) + \left(U \cdot \left(\left(n \cdot t\right) \cdot 2\right)\right))_*\right)}^{\frac{1}{2}}\\
\mathbf{elif}\;t \le 3.00502928168256 \cdot 10^{-47}:\\
\;\;\;\;\sqrt{t \cdot \left(U \cdot \left(n \cdot 2\right)\right) + \left(n \cdot \left(2 \cdot U\right)\right) \cdot \left(\left(\ell \cdot -2 - n \cdot \left(\left(U - U*\right) \cdot \frac{\ell}{Om}\right)\right) \cdot \frac{\ell}{Om}\right)}\\
\mathbf{elif}\;t \le 4.3432694513312935 \cdot 10^{+85}:\\
\;\;\;\;{\left((n \cdot \left(\frac{\left(2 \cdot \left(\ell \cdot U\right)\right) \cdot \left(\ell \cdot -2 - \left(\frac{\ell}{Om} \cdot n\right) \cdot \left(U - U*\right)\right)}{Om}\right) + \left(U \cdot \left(\left(n \cdot t\right) \cdot 2\right)\right))_*\right)}^{\frac{1}{2}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{U \cdot \left(n \cdot 2\right)} \cdot \sqrt{\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot n\right) \cdot \left(U - U*\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r15180536 = 2.0;
double r15180537 = n;
double r15180538 = r15180536 * r15180537;
double r15180539 = U;
double r15180540 = r15180538 * r15180539;
double r15180541 = t;
double r15180542 = l;
double r15180543 = r15180542 * r15180542;
double r15180544 = Om;
double r15180545 = r15180543 / r15180544;
double r15180546 = r15180536 * r15180545;
double r15180547 = r15180541 - r15180546;
double r15180548 = r15180542 / r15180544;
double r15180549 = pow(r15180548, r15180536);
double r15180550 = r15180537 * r15180549;
double r15180551 = U_;
double r15180552 = r15180539 - r15180551;
double r15180553 = r15180550 * r15180552;
double r15180554 = r15180547 - r15180553;
double r15180555 = r15180540 * r15180554;
double r15180556 = sqrt(r15180555);
return r15180556;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r15180557 = t;
double r15180558 = 2.435100367453427e-204;
bool r15180559 = r15180557 <= r15180558;
double r15180560 = n;
double r15180561 = 2.0;
double r15180562 = l;
double r15180563 = U;
double r15180564 = r15180562 * r15180563;
double r15180565 = r15180561 * r15180564;
double r15180566 = -2.0;
double r15180567 = r15180562 * r15180566;
double r15180568 = Om;
double r15180569 = r15180562 / r15180568;
double r15180570 = r15180569 * r15180560;
double r15180571 = U_;
double r15180572 = r15180563 - r15180571;
double r15180573 = r15180570 * r15180572;
double r15180574 = r15180567 - r15180573;
double r15180575 = r15180565 * r15180574;
double r15180576 = r15180575 / r15180568;
double r15180577 = r15180560 * r15180557;
double r15180578 = r15180577 * r15180561;
double r15180579 = r15180563 * r15180578;
double r15180580 = fma(r15180560, r15180576, r15180579);
double r15180581 = 0.5;
double r15180582 = pow(r15180580, r15180581);
double r15180583 = 3.00502928168256e-47;
bool r15180584 = r15180557 <= r15180583;
double r15180585 = r15180560 * r15180561;
double r15180586 = r15180563 * r15180585;
double r15180587 = r15180557 * r15180586;
double r15180588 = r15180561 * r15180563;
double r15180589 = r15180560 * r15180588;
double r15180590 = r15180572 * r15180569;
double r15180591 = r15180560 * r15180590;
double r15180592 = r15180567 - r15180591;
double r15180593 = r15180592 * r15180569;
double r15180594 = r15180589 * r15180593;
double r15180595 = r15180587 + r15180594;
double r15180596 = sqrt(r15180595);
double r15180597 = 4.3432694513312935e+85;
bool r15180598 = r15180557 <= r15180597;
double r15180599 = sqrt(r15180586);
double r15180600 = r15180562 * r15180562;
double r15180601 = r15180600 / r15180568;
double r15180602 = r15180601 * r15180561;
double r15180603 = r15180557 - r15180602;
double r15180604 = pow(r15180569, r15180561);
double r15180605 = r15180604 * r15180560;
double r15180606 = r15180605 * r15180572;
double r15180607 = r15180603 - r15180606;
double r15180608 = sqrt(r15180607);
double r15180609 = r15180599 * r15180608;
double r15180610 = r15180598 ? r15180582 : r15180609;
double r15180611 = r15180584 ? r15180596 : r15180610;
double r15180612 = r15180559 ? r15180582 : r15180611;
return r15180612;
}



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 < 2.435100367453427e-204 or 3.00502928168256e-47 < t < 4.3432694513312935e+85Initial program 33.2
rmApplied sub-neg33.2
Applied associate--l+33.2
Applied distribute-rgt-in33.2
Simplified30.8
rmApplied associate-*r*30.8
rmApplied associate-*r/31.2
Applied associate-*l/30.8
Applied associate-*l/31.1
Applied associate-*r/31.1
Applied associate-*l/32.8
Applied sub-div32.8
Applied associate-*l/33.2
Simplified32.2
rmApplied pow132.2
Applied sqrt-pow132.2
Simplified30.9
if 2.435100367453427e-204 < t < 3.00502928168256e-47Initial program 31.7
rmApplied sub-neg31.7
Applied associate--l+31.7
Applied distribute-rgt-in31.7
Simplified29.1
rmApplied associate-*r*28.7
rmApplied associate-*l*29.1
Simplified28.4
if 4.3432694513312935e+85 < t Initial program 34.6
rmApplied sqrt-prod27.0
Final simplification29.8
herbie shell --seed 2019112 +o rules:numerics
(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*))))))