\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}\;n \le -1.91270443068564746 \cdot 10^{-246}:\\
\;\;\;\;\sqrt{\left(\sqrt[3]{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)} \cdot \left(\sqrt[3]{2 \cdot n} \cdot \sqrt[3]{U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\right)\right) \cdot \sqrt[3]{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}}\\
\mathbf{elif}\;n \le 3.330205482825987 \cdot 10^{-310}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right)}\\
\mathbf{elif}\;n \le 1.68257617556966304 \cdot 10^{-213} \lor \neg \left(n \le 2.6216984634922021 \cdot 10^{-91}\right):\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}} \cdot \sqrt{\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r202600 = 2.0;
double r202601 = n;
double r202602 = r202600 * r202601;
double r202603 = U;
double r202604 = r202602 * r202603;
double r202605 = t;
double r202606 = l;
double r202607 = r202606 * r202606;
double r202608 = Om;
double r202609 = r202607 / r202608;
double r202610 = r202600 * r202609;
double r202611 = r202605 - r202610;
double r202612 = r202606 / r202608;
double r202613 = pow(r202612, r202600);
double r202614 = r202601 * r202613;
double r202615 = U_;
double r202616 = r202603 - r202615;
double r202617 = r202614 * r202616;
double r202618 = r202611 - r202617;
double r202619 = r202604 * r202618;
double r202620 = sqrt(r202619);
return r202620;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r202621 = n;
double r202622 = -1.9127044306856475e-246;
bool r202623 = r202621 <= r202622;
double r202624 = 2.0;
double r202625 = r202624 * r202621;
double r202626 = U;
double r202627 = t;
double r202628 = l;
double r202629 = Om;
double r202630 = r202628 / r202629;
double r202631 = r202628 * r202630;
double r202632 = r202624 * r202631;
double r202633 = r202627 - r202632;
double r202634 = pow(r202630, r202624);
double r202635 = r202621 * r202634;
double r202636 = U_;
double r202637 = r202626 - r202636;
double r202638 = r202635 * r202637;
double r202639 = r202633 - r202638;
double r202640 = r202626 * r202639;
double r202641 = r202625 * r202640;
double r202642 = cbrt(r202641);
double r202643 = cbrt(r202625);
double r202644 = cbrt(r202640);
double r202645 = r202643 * r202644;
double r202646 = r202642 * r202645;
double r202647 = r202646 * r202642;
double r202648 = sqrt(r202647);
double r202649 = 3.330205482826e-310;
bool r202650 = r202621 <= r202649;
double r202651 = r202625 * r202626;
double r202652 = r202651 * r202633;
double r202653 = sqrt(r202652);
double r202654 = 1.682576175569663e-213;
bool r202655 = r202621 <= r202654;
double r202656 = 2.621698463492202e-91;
bool r202657 = r202621 <= r202656;
double r202658 = !r202657;
bool r202659 = r202655 || r202658;
double r202660 = sqrt(r202625);
double r202661 = sqrt(r202640);
double r202662 = r202660 * r202661;
double r202663 = r202651 * r202639;
double r202664 = sqrt(r202663);
double r202665 = sqrt(r202664);
double r202666 = r202665 * r202665;
double r202667 = r202659 ? r202662 : r202666;
double r202668 = r202650 ? r202653 : r202667;
double r202669 = r202623 ? r202648 : r202668;
return r202669;
}



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 n < -1.9127044306856475e-246Initial program 34.3
rmApplied *-un-lft-identity34.3
Applied times-frac31.7
Simplified31.7
rmApplied associate-*l*31.8
rmApplied add-cube-cbrt32.1
rmApplied cbrt-prod32.1
if -1.9127044306856475e-246 < n < 3.330205482826e-310Initial program 40.8
rmApplied *-un-lft-identity40.8
Applied times-frac38.0
Simplified38.0
Taylor expanded around 0 37.2
if 3.330205482826e-310 < n < 1.682576175569663e-213 or 2.621698463492202e-91 < n Initial program 34.4
rmApplied *-un-lft-identity34.4
Applied times-frac31.9
Simplified31.9
rmApplied associate-*l*31.9
rmApplied sqrt-prod23.9
if 1.682576175569663e-213 < n < 2.621698463492202e-91Initial program 35.3
rmApplied *-un-lft-identity35.3
Applied times-frac32.9
Simplified32.9
rmApplied add-sqr-sqrt33.1
Final simplification29.4
herbie shell --seed 2019199
(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*))))))